153 research outputs found

    Chemical Reaction Optimization: A tutorial

    Get PDF
    Chemical Reaction Optimization (CRO) is a recently established metaheuristics for optimization, inspired by the nature of chemical reactions. A chemical reaction is a natural process of transforming the unstable substances to the stable ones. In microscopic view, a chemical reaction starts with some unstable molecules with excessive energy. The molecules interact with each other through a sequence of elementary reactions. At the end, they are converted to those with minimum energy to support their existence. This property is embedded in CRO to solve optimization problems. CRO can be applied to tackle problems in both the discrete and continuous domains. We have successfully exploited CRO to solve a broad range of engineering problems, including the quadratic assignment problem, neural network training, multimodal continuous problems, etc. The simulation results demonstrate that CRO has superior performance when compared with other existing optimization algorithms. This tutorial aims to assist the readers in implementing CRO to solve their problems. It also serves as a technical overview of the current development of CRO and provides potential future research directions. © 2012 The Author(s).published_or_final_versionSpringer Open Choice, 25 May 201

    Bulk wheat transportation and storage problem of public distribution system

    Get PDF
    This research investigates the multi-period multi-modal bulk wheat transportation and storage problem in a two-stage supply chain network of Public Distribution System (PDS). The bulk transportation and storage can significantly curtail the transit and storage losses of food grains, which leads to substantial cost savings. A mixed integer non-linear programming model (MINLP) is developed after studying the Indian wheat supply chain scenario, where the objective is to minimize the transportation, storage and operational cost of the food grain incurred for efficient transfer of wheat from producing states to consuming states. The cost minimization of Indian food grain supply chain is a very complex and challenging problem because of the involvement of the many entities and their constraints such as seasonal procurement, limited scientific storages, varying demand, mode of transportation and vehicle capacity constraints. To address this complex and challenging problem of food grain supply chain, we have proposed the novel variant of Chemical Reaction Optimization (CRO) algorithm which combines the features of CRO and Tabu search (TS) and named it as a hybrid CROTS algorithm (Chemical reaction optimization combined with Tabu Search). The numerous problems with different sizes are solved using the proposed algorithm and obtained results have been compared with CRO. The comparative study reveals that the proposed CROTS algorithm offers a better solution in less computational time than CRO algorithm and the dominance of CROTS algorithm over the CRO algorithm is demonstrated through statistical analysis

    An MINLP model to support the movement and storage decisions of the Indian food grain supply chain

    Get PDF
    This paper addresses the novel three stage food grain distribution problem of Public Distribution System (PDS) in India which comprises of farmers, procurement centers, base silos and field silos. The Indian food grain supply chain consists of various activities such as procurement, storage, transportation and distribution of food grain. In order to curb transportation and storage losses of food grain, the Food Corporation of India (FCI) is moving towards the modernized bulk food grain supply chain system. This paper develops a Mixed Integer Non-Linear Programming (MINLP) model for planning the movement and storage of food grain from surplus states to deficit states considering the seasonal procurement, silo capacity, demand satisfaction and vehicle capacity constraints. The objective function of the model seeks to minimize the bulk food grain transportation, inventory holding, and operational cost. Therein, shipment cost contains the fixed and variable cost, inventory holding and operational cost considered at the procurement centers and base silos. The developed mathematical model is computationally complex in nature due to nonlinearity, the presence of numerous binary and integer variables along with a huge number of constraints, thus, it is very difficult to solve it using exact methods. Therefore, recently developed, Hybrid Particle-Chemical Reaction Optimization (HP-CRO) algorithm has been employed to solve the MINLP model. Different problem instances with growing complexities are solved using HP-CRO and the results are compared with basic Chemical Reaction Optimization (CRO) and Particle Swarm Optimization (PSO) algorithms. The results of computational experiments illustrate that the HP-CRO algorithm is competent enough to obtain the better quality solutions within reasonable computational time

    Grain silo location-allocation problem with dwell time for optimization of food grain supply chain network

    Get PDF
    In the last few decades, production and procurement of food grain in India have steadily increased, however, storage capacity has not increased proportionally. The government of India (GOI) is establishing the various capacitated silos across the country to bridge this storage capacity gap. This paper presents a novel integrated multi-objective, multi-modal and multiperiod mathematical model for grain silo location-allocation problem with Dwell time to support the decision-making process of GOI. Two conflicting objectives- minimization of total supply chain network cost and total lead time (transit and dwell time) are simultaneously optimized using two Pareto based multi-objective algorithms with calibrated parameters

    A Survey of Search-Based Refactoring for Software Maintenance

    Get PDF
    Abstract This survey reviews published materials related to the specific area of Search-Based Software Engineering that concerns software maintenance and, in particular, refactoring. The survey aims to give a comprehensive review of the use of search-based refactoring to maintain software. Fifty different papers have been selected from online databases to analyze and review the use of search-based refactoring in software engineering. The current state of the research is analyzed and patterns in the studies are investigated in order to assess gaps in the area and suggest opportunities for future research. The papers reviewed are tabulated in order to aid researchers in quickly referencing studies. The literature addresses different methods using search-based refactoring for software maintenance, as well as studies that investigate the optimization process and discuss components of the search. There are studies that analyze different software metrics, experiment with multi-objective techniques and propose refactoring tools for use. Analysis of the literature has indicated some opportunities for future research in the area. More experimentation of the techniques in an industrial environment and feedback from software developers is needed to support the approaches. Also, recent work with multi-objective techniques has shown that there are exciting possibilities for future research using these techniques with refactoring. This survey is beneficial as an introduction for any researchers aiming to work in the area of Search-Based Software Engineering with respect to software maintenance and will allow them to gain an understanding of the current landscape of the research and the insights gathered

    A Mono- and Multi-objective Approach for Recommending Software Refactoring

    Get PDF
    Les systèmes logiciels sont devenus de plus en plus répondus et importants dans notre société. Ainsi, il y a un besoin constant de logiciels de haute qualité. Pour améliorer la qualité de logiciels, l’une des techniques les plus utilisées est le refactoring qui sert à améliorer la structure d'un programme tout en préservant son comportement externe. Le refactoring promet, s'il est appliqué convenablement, à améliorer la compréhensibilité, la maintenabilité et l'extensibilité du logiciel tout en améliorant la productivité des programmeurs. En général, le refactoring pourra s’appliquer au niveau de spécification, conception ou code. Cette thèse porte sur l'automatisation de processus de recommandation de refactoring, au niveau code, s’appliquant en deux étapes principales: 1) la détection des fragments de code qui devraient être améliorés (e.g., les défauts de conception), et 2) l'identification des solutions de refactoring à appliquer. Pour la première étape, nous traduisons des régularités qui peuvent être trouvés dans des exemples de défauts de conception. Nous utilisons un algorithme génétique pour générer automatiquement des règles de détection à partir des exemples de défauts. Pour la deuxième étape, nous introduisons une approche se basant sur une recherche heuristique. Le processus consiste à trouver la séquence optimale d'opérations de refactoring permettant d'améliorer la qualité du logiciel en minimisant le nombre de défauts tout en priorisant les instances les plus critiques. De plus, nous explorons d'autres objectifs à optimiser: le nombre de changements requis pour appliquer la solution de refactoring, la préservation de la sémantique, et la consistance avec l’historique de changements. Ainsi, réduire le nombre de changements permets de garder autant que possible avec la conception initiale. La préservation de la sémantique assure que le programme restructuré est sémantiquement cohérent. De plus, nous utilisons l'historique de changement pour suggérer de nouveaux refactorings dans des contextes similaires. En outre, nous introduisons une approche multi-objective pour améliorer les attributs de qualité du logiciel (la flexibilité, la maintenabilité, etc.), fixer les « mauvaises » pratiques de conception (défauts de conception), tout en introduisant les « bonnes » pratiques de conception (patrons de conception).Software systems have become prevalent and important in our society. There is a constant need for high-quality software. Hence, to improve software quality, one of the most-used techniques is the refactoring which improves design structure while preserving the external behavior. Refactoring has promised, if applied well, to improve software readability, maintainability and extendibility while increasing the speed at which programmers can write and maintain their code. In general, refactoring can be performed in various levels such as the requirement, design, or code level. In this thesis, we mainly focus on the source code level where automated refactoring recommendation can be performed through two main steps: 1) detection of code fragments that need to be improved/fixed (e.g., code-smells), and 2) identification of refactoring solutions to achieve this goal. For the code-smells identification step, we translate regularities that can be found in such code-smell examples into detection rules. To this end, we use genetic programming to automatically generate detection rules from examples of code-smells. For the refactoring identification step, a search-based approach is used. The process aims at finding the optimal sequence of refactoring operations that improve software quality by minimizing the number of detected code-smells while prioritizing the most critical ones. In addition, we explore other objectives to optimize using a multi-objective approach: the code changes needed to apply refactorings, semantics preservation, and the consistency with development change history. Hence, reducing code changes allows us to keep as much as possible the initial design. On the other hand, semantics preservation insures that the refactored program is semantically coherent, and that it models correctly the domain-semantics. Indeed, we use knowledge from historical code change to suggest new refactorings in similar contexts. Furthermore, we introduce a novel multi-objective approach to improve software quality attributes (i.e., flexibility, maintainability, etc.), fix “bad” design practices (i.e., code-smells) while promoting “good” design practices (i.e., design patterns)

    Grain silo location-allocation problem with dwell time for optimization of food grain supply chain network.

    Get PDF
    In the last few decades, production and procurement of food grain in India have steadily increased, however, storage capacity has not increased proportionally. The government of India (GOI) is establishing the various capacitated silos across the country to bridge this storage capacity gap. This paper presents a novel integrated multi-objective, multi-modal and multi-period mathematical model for grain silo location-allocation problem with Dwell time to support the decision-making process of GOI. Two conflicting objectives-minimization of total supply chain network cost and total lead time (transit and dwell time) are simultaneously optimized using two Pareto based multi-objective algorithms with calibrated parameters

    An Empirical Evaluation of Evolutionary Algorithms for Unit Test Suite Generation

    Get PDF
    Context: Evolutionary algorithms have been shown to be e ective at generating unit test suites optimised for code coverage. While many speci c aspects of these algorithms have been evaluated in detail (e.g., test length and di erent kinds of techniques aimed at improving performance, like seeding), the in uence of the choice of evolutionary algorithm has to date seen less attention in the literature. Objective: Since it is theoretically impossible to design an algorithm that is the best on all possible problems, a common approach in software engineering problems is to rst try the most common algorithm, a Genetic Algorithm, and only afterwards try to re ne it or compare it with other algorithms to see if any of them is more suited for the addressed problem. The objective of this paper is to perform this analysis, in order to shed light on the in uence of the search algorithm applied for unit test generation. Method: We empirically evaluate thirteen di erent evolutionary algorithms and two random approaches on a selection of non-trivial open source classes. All algorithms are implemented in the EvoSuite test generation tool, which includes recent optimisations such as the use of an archive during the search and optimisation for multiple coverage criteria. Results: Our study shows that the use of a test archive makes evolutionary algorithms clearly better than random testing, and it con rms that the DynaMOSA many-objective search algorithm is the most e ective algorithm for unit test generation. Conclusions: Our results show that the choice of algorithm can have a substantial in uence on the performance of whole test suite optimisation. Although we can make a recommendation on which algorithm to use in practice, no algorithm is clearly superior in all cases, suggesting future work on improved search algorithms for unit test generatio
    • …
    corecore