20 research outputs found

    A Survey of Genetic Improvement Search Spaces

    Get PDF
    Genetic Improvement (GI) uses automated search to improve existing software. Most GI work has focused on empirical studies that successfully apply GI to improve software's running time, fix bugs, add new features, etc. There has been little research into why GI has been so successful. For example, genetic programming has been the most commonly applied search algorithm in GI. Is genetic programming the best choice for GI? Initial attempts to answer this question have explored GI's mutation search space. This paper summarises the work published on this question to date

    How Fast Can We Play Tetris Greedily With Rectangular Pieces?

    Get PDF
    Consider a variant of Tetris played on a board of width ww and infinite height, where the pieces are axis-aligned rectangles of arbitrary integer dimensions, the pieces can only be moved before letting them drop, and a row does not disappear once it is full. Suppose we want to follow a greedy strategy: let each rectangle fall where it will end up the lowest given the current state of the board. To do so, we want a data structure which can always suggest a greedy move. In other words, we want a data structure which maintains a set of O(n)O(n) rectangles, supports queries which return where to drop the rectangle, and updates which insert a rectangle dropped at a certain position and return the height of the highest point in the updated set of rectangles. We show via a reduction to the Multiphase problem [P\u{a}tra\c{s}cu, 2010] that on a board of width w=Θ(n)w=\Theta(n), if the OMv conjecture [Henzinger et al., 2015] is true, then both operations cannot be supported in time O(n1/2−ϔ)O(n^{1/2-\epsilon}) simultaneously. The reduction also implies polynomial bounds from the 3-SUM conjecture and the APSP conjecture. On the other hand, we show that there is a data structure supporting both operations in O(n1/2log⁥3/2n)O(n^{1/2}\log^{3/2}n) time on boards of width nO(1)n^{O(1)}, matching the lower bound up to a no(1)n^{o(1)} factor.Comment: Correction of typos and other minor correction

    Using phylogenetic analysis to enhance genetic improvement

    Get PDF
    Genetic code improvement systems (GI) start from an existing piece of program code and search for alternative versions with better performance according to a metric of interest. The search space of source code is a large, rough fitness landscape which can be extremely difficult to navigate. Most approaches to enhancing search capability in this domain involve either novelty search, where low-fitness areas are remembered and avoided, or formal analysis which attempts to find high-utility parameterizations for the GI process. In this paper we propose the use of phylogenetic analysis over genetic history to understand how different mutations and crossovers affect the fitness of a population over time for a particular problem; we use the results of that analysis to tune a GI process during its operation to enhance its ability to locate better program candidates. Using phylogenetic analysis on 600 runs of a genetic improver targeting a hash function, we demonstrate how the results of this analysis yield tuned mutation types over the course of a GI process (dynamically and continually set according to individual's ancestors' ranks within the population) to give hash functions with over 20% improved fitness compared to a baseline GI process

    Automated Machine Learning for Multi-Label Classification

    Get PDF

    A Distributed Hydrological Modelling System to Support Hydrological Production in Northern Environments under Current and Changing Climate Conditions

    Get PDF
    The overarching goal of this project was to implement a distributed hydrological modelling system to support hydroelectric production in Yukon under current and changing climate conditions. Building from previous collaboration between YU and YEC, the project has increased the capacity for short and mid-term inflow forecasts for the Whitehorse (including Marsh Lake), Aishihik and Mayo Facilities and assess potential change in flow volume and extreme events due to climate change in terms of severity, timing and frequency.ReportThis report, including any associated maps, tables and figures (the “Information”) conveys general comments and observation only. The Information is provided by the Institut national de la recherche scientifique Eau Terre Environnement (INRS-ETE) on an “AS IS” basis without any warranty or representation, express or implied, as to its accuracy or completeness. Any reliance you place upon the information contained here is your sole responsibility and strictly at your own risk. In no event will the INRS-ETE be liable for any loss or damage whatsoever, including without limitation, indirect or consequential loss or damage, arising from reliance upon the Information.Final Report presented to: Yukon Energ

    Approches avancées pour la planification et l'ordonnancement en contexte dynamique

    Get PDF
    Cette thĂšse prĂ©sente trois approches pour aider les entreprises dans la planification dans un contexte dynamique. Chaque approche aide Ă  diffĂ©rents niveaux de la planification (dĂ©cisions stratĂ©giques Ă  long terme, tactique Ă  moyen terme, dĂ©cision opĂ©rationnelle Ă  court terme ou mĂȘme au moment de l'exĂ©cution). AprĂšs la gĂ©nĂ©ration d'un plan, il est possible que des Ă©vĂ©nements rendent le plan inutilisable. L'entreprise doit alors gĂ©nĂ©rer un autre plan suivant ces nouvelles informations. Il est donc important pour une entreprise de pouvoir s'adapter rapidement aux changements et d'ĂȘtre plus agile. Les entreprises peuvent utiliser des systĂšmes d'aide Ă  la dĂ©cision permettant de les aider Ă  prendre de meilleures dĂ©cisions pour leur planification. Ces outils, bien qu'ils soient performants pour rĂ©soudre un problĂšme, sont souvent non adaptĂ©s au contexte dynamique des entreprises. Cette thĂšse prĂ©sente trois approches permettant d'adapter les plans rapidement suivant l'Ă©volution des problĂšmes. La premiĂšre approche est pour le niveau tactique de la planification. Le plan tactique considĂšre un certain horizon de planification (ex. : 52 semaines). La solution trouvĂ©e pour cet horizon devient obsolĂšte aprĂšs un certain temps, car plusieurs Ă©lĂ©ments du problĂšme ont changĂ©. Il serait avantageux pour une entreprise de toujours tenir Ă  jour le plan chaque fois qu'il y a une nouvelle information. Par contre, gĂ©nĂ©rer un nouveau plan demande beaucoup de temps. L'approche que nous proposons est de tenir Ă  jour le plan, mais en s'aidant des dĂ©cisions prises prĂ©cĂ©demment. Nous avons testĂ© cette approche sur le problĂšme d'optimiser la position des outils pour les machines Ă  commande numĂ©rique avec tourelles. Nous avons conçu un programme Ă  nombres entiers pour rĂ©soudre le problĂšme. AprĂšs avoir trouvĂ© la position optimale des outils pour chaque produit usinĂ©, il est possible qu'un nouveau produit s'ajoute Ă  la liste des produits Ă  usiner. Il y a un grand coĂ»t en temps de production Ă  devoir modifier la position des outils. Nous devons donc trouver la position des outils pour le nouveau produit sans changer la position des outils pour les autres produits pour Ă©viter de perdre trop de temps. Le modĂšle conçu pour rĂ©soudre le problĂšme comporte une fonction objectif permettant d'ĂȘtre rĂ©utilisĂ© lors de l'ajout d'un nouveau produit. Il est alors possible de voir l'Ă©volution de la solution chaque fois qu'on ajoute un nouveau produit. À chaque ajout d'un nouveau produit, nous pouvons Ă©valuer s'il est avantageux de changer la position des outils pour tous les produits. La deuxiĂšme approche est pour le niveau opĂ©rationnel de la planification. Le planificateur peut s'aider d'un programme d'optimisation pour trouver un plan rĂ©alisable et optimal Ă  son problĂšme. Cependant, au niveau opĂ©rationnel, il peut arriver divers imprĂ©vus rendant le plan dĂ©suet. Par exemple, une commande de matĂ©riel peut arriver en retard ce qui crĂ©e un dĂ©lai avant de pouvoir fabriquer un certain produit. Il faut donc trouver une alternative au plan initiale pour pallier cet imprĂ©vu. Il peut ĂȘtre difficile et mĂȘme impossible pour un humain de changer le plan tout en respectant les contraintes du problĂšme et l'optimalitĂ© du plan initial. Le planificateur peut exĂ©cuter une nouvelle fois le programme d'optimisation pour prendre en considĂ©ration cet imprĂ©vu, mais cela demande un certain temps dont le planificateur n'a pas pour prendre la dĂ©cision. L'approche proposĂ©e est d'utiliser un systĂšme Ă  initiative partagĂ©e. Ce systĂšme permet de changer une solution retournĂ©e par un programme mixte Ă  nombres entiers tout en conservant l'optimalitĂ© de la solution. Le systĂšme gĂ©nĂšre plusieurs solutions pour pouvoir rapidement retourner une solution suivant une modification Ă  la solution par le planificateur. Pour gĂ©nĂ©rer les solutions rapidement, le systĂšme repose sur une technique personnalisĂ©e basĂ©e sur le noyau de la matrice de contraintes. La troisiĂšme approche est pour le niveau stratĂ©gique de la planification. Les dĂ©cisions au niveau stratĂ©gique sont pour le long terme. Par exemple, une entreprise manufacturiĂšre doit dĂ©cider quelles ressources achetĂ©es pour amĂ©liorer sa productivitĂ©. L'approche proposĂ©e est de suggĂ©rer des choix au planificateur lors de la gĂ©nĂ©ration des plans au niveau opĂ©rationnel ou tactique. L'entreprise peut alors prendre des choix plus rapidement sans devoir mettre beaucoup d'efforts d'analyse. Cette approche est testĂ©e sur un problĂšme d'ordonnancement qui se fait au niveau de la planification opĂ©rationnelle. Suivant la gĂ©nĂ©ration du plan Ă  l'aide de la programmation par contraintes, il est possible de suggĂ©rer des ressources Ă  acheter pour amĂ©liorer la solution. Cette approche utilise l'apprentissage automatique pour prĂ©dire l'impact sur la solution d'apporter certains changements comme par exemple d'acheter une nouvelle ressource. L'idĂ©e est de s'entraĂźner sur les instances du problĂšme passĂ©es pour faire des suggestions sur l'instance du problĂšme courant.This thesis presents three approaches to help companies pla in a dynamic context. Each approach helps at different levels of planning: strategic decisions for long-term, tactics decisions for medium-term, operational decisions for short-term or even at the time of execution. After the generation of a plan, it is possible that the plan becomes unusable following an unforeseen event. The company must then generate another plan based on this new information. It is therefore important for a company to be able to adapt quickly to changes and to be more agile. Companies can use decision support systems to help them make better decisions for their planning. These tools are effective in solving a problem, but are often not adapted to the dynamic context of companies. This thesis presents three approaches to make it possible to adapt the plans quickly following the evolution of the problems. The first approach is for the tactical level of planning. The tactical plan considers a certain planning horizon (ex.: 52 weeks). The solution found for this horizon becomes obsolete after some time, because several elements of the problem have changed. It would be advantageous for a business to always keep the plan up to date whenever there is new information. However, it would take a lot of time. Our approach is to keep the plan up to date, but with the help of decisions made previously. We tested this approach on the problem of optimizing the position of the tools for CNC machines with turrets. We designed an integer program to solve the problem. After finding the optimal tool position for each product to be machined, a new product may be added to the list of products to be machined. There is a great time cost in having to change the position of the tools. We must therefore find the position of the tools for the new product without changing the position of the tools for the other products. The template designed to solve the problem has an objective function that can be reused when adding a new product. It is then possible to see the evolution of the solution when a new product is added. The second approach is for the operational level of planning. The planner can use an optimization program to find a feasible and optimal plan for his/her problem. However, there can be various unforeseen events that make the plan obsolete. For example, a material order may arrive late which creates a delay before being able to manufacture a product. We must therefore find an alternative to the initial plan to overcome this unforeseen event. It can be difficult and even impossible for a human to change the plan while respecting the constraints of the problem as well as the optimality of the plan. The planner may run the optimization program again to take this unforeseen into consideration, but it may take too long. The proposed approach is to use a mixed initiative system making it possible to change a solution returned by an integer program while maintaining the optimality of the solution. The system generates several solutions to be able to quickly return a solution following a modification by the planner. The system is based on a custom technique based on the kernel of the constraint matrix. The third approach is for the strategic level of planning. Decisions at the strategic level are for the long term. For example, a manufacturing company must decide which tools to purchase to improve their productivity. The proposed approach is to suggest choices to the planner when generating plans at the operational level. The business can make choices faster without having to put in a lot of analytical effort. This approach is tested on a scheduling problem located at the operational planning level. This approach uses machine learning to predict the impact on the solution of making certain changes such as purchasing a new resource. The idea is to practice on past problem instances to make suggestions on the current problem instance

    Using MapReduce Streaming for Distributed Life Simulation on the Cloud

    Get PDF
    Distributed software simulations are indispensable in the study of large-scale life models but often require the use of technically complex lower-level distributed computing frameworks, such as MPI. We propose to overcome the complexity challenge by applying the emerging MapReduce (MR) model to distributed life simulations and by running such simulations on the cloud. Technically, we design optimized MR streaming algorithms for discrete and continuous versions of Conway’s life according to a general MR streaming pattern. We chose life because it is simple enough as a testbed for MR’s applicability to a-life simulations and general enough to make our results applicable to various lattice-based a-life models. We implement and empirically evaluate our algorithms’ performance on Amazon’s Elastic MR cloud. Our experiments demonstrate that a single MR optimization technique called strip partitioning can reduce the execution time of continuous life simulations by 64%. To the best of our knowledge, we are the first to propose and evaluate MR streaming algorithms for lattice-based simulations. Our algorithms can serve as prototypes in the development of novel MR simulation algorithms for large-scale lattice-based a-life models.https://digitalcommons.chapman.edu/scs_books/1014/thumbnail.jp

    Contribution à l'analyse des séquences de protéines similarité, clustering et alignement

    Get PDF
    La prédiction des fonctions biologiques des protéines est primordiale en biologie cellulaire. On peut comprendre facilement tout l'enjeu de pouvoir différencier efficacement les protéines par leurs fonctions, quand on sait que ceci peut rendre possible la réparation des protéines anormales causants des maladies, ou du moins corriger ou améliorer leurs fonctions. Les méthodes expérimentales, basées sur la structure tridimensionnelle des protéines sont les plus fiables pour la prédiction des fonctions biologiques des protéines. Néanmoins, elles sont souvent coûteuses en temps et en ressources, et ne permettent pas de traiter de grands nombres de protéines. Il existe toutefois des algorithmes qui permettent aux biologistes d'arriver à de bons résultats de prédictions en utilisant des moyens beaucoup moins coûteux. Le plus souvent, ces algorithmes sont basés sur la similarité, le clustering, et l'alignement. Cependant, les algorithmes qui sont basés sur la similarité et le clustering utilisent souvent l'alignement des séquences et ne sont donc pas efficaces sur les protéines non alignables. Et lorsqu'ils ne sont pas basés sur l 'alignement, ces algorithmes utilisent souvent des approches qui ne tiennent pas compte de l'aspect biologique des séquences de protéines. D'autre part, l'efficacité des algorithmes d'alignements dépend souvent de la nature structurelle des protéines, ce qui rend difficile le choix de l'algorithme à utiliser quand la structure est inconnue. Par ailleurs, les algorithmes d'alignement ignorent les divergences entre les séquences à aligner, ce qui contraint souvent les biologistes à traiter manuellement les séquences à aligner, une tùche qui n'est pas toujours possible en pratique. Dans cette thÚse nous présentons un ensemble de nouveaux algorithmes que nous avons conçus pour l'analyse des séquences de protéines. Dans le premier chapitre, nous présentons CLUSS, le premier algorithme de clustering capable de traiter des séquences de protéines non-alignables. Dans le deuxiÚme chapitre, nous présentons CLUSS2 une version améliorée de CLUSS, capable de traiter de plus grands ensembles de protéines avec plus de de fonctions biologiques. Dans le troisiÚme chapitre, nous présentons SCS, une nouvelle mesure de similarité capable de traiter efficacement non seulement les séquences de protéines mais aussi plusieurs types de séquences catégoriques. Dans le dernier chapitre, nous présentons ALIGNER, un algorithme d'alignement, efficace sur les séquences de protéines indépendamment de leurs types de structures. De plus, ALIGNER est capable de détecter automatiquement, parmi les protéines à aligner, les groupes de protéines dont l'alignement peut révéler d'importantes propriétés biochimiques structurelles et fonctionnelles, et cela sans faire appel à l'utilisateur
    corecore