11 research outputs found

    Decomposition Based Search - A theoretical and experimental evaluation

    Full text link
    In this paper we present and evaluate a search strategy called Decomposition Based Search (DBS) which is based on two steps: subproblem generation and subproblem solution. The generation of subproblems is done through value ranking and domain splitting. Subdomains are explored so as to generate, according to the heuristic chosen, promising subproblems first. We show that two well known search strategies, Limited Discrepancy Search (LDS) and Iterative Broadening (IB), can be seen as special cases of DBS. First we present a tuning of DBS that visits the same search nodes as IB, but avoids restarts. Then we compare both theoretically and computationally DBS and LDS using the same heuristic. We prove that DBS has a higher probability of being successful than LDS on a comparable number of nodes, under realistic assumptions. Experiments on a constraint satisfaction problem and an optimization problem show that DBS is indeed very effective if compared to LDS.Comment: 16 pages, 8 figures. LIA Technical Report LIA00203, University of Bologna, 200

    Monadic constraint programming

    Get PDF
    A constraint programming system combines two essential components: a constraint solver and a search engine. The constraint solver reasons about satisfiability of conjunctions of constraints, and the search engine controls the search for solutions by iteratively exploring a disjunctive search tree defined by the constraint program. In this paper we give a monadic definition of constraint programming in which the solver is defined as a monad threaded through the monadic search tree. We are then able to define search and search strategies as first-class objects that can themselves be built or extended by composable search transformers. Search transformers give a powerful and unifying approach to viewing search in constraint programming, and the resulting constraint programming system is first class and extremely flexible

    AN EMPIRICAL STUDY OF DIFFERENT BRANCHING STRATEGIES FOR CONSTRAINT SATISFACTION PROBLEMS

    Get PDF
    Many real life problems can be formulated as constraint satisfaction problems (CSPs). Backtracking search algorithms are usually employed to solve CSPs and in backtracking search the choice of branching strategies can be critical since they specify how a search algorithm can instantiate a variable and how a problem can be reduced into subproblems; that is, they define a search tree. In spite of the apparent importance of the branching strategy, there have been only a few empirical studies about different branching strategies and they all have been tested exclusively for numerical constraints. In this thesis, we employ the three most commonly used branching strategies in solving finite domain CSPs. These branching strategies are described as follows: first, a branching strategy with strong commitment assigns its variables in the early stage of the search as in k-Way branching; second, 2-Way branching guides a search by branching one side with assigning a variable and the other with eliminating the assigned value; third, the domain splitting strategy, based on the least commitment principle, branches by dividing a variable's domain rather than by assigning a single value to a variable. In our experiments, we compared the efficiency of different branching strategies in terms of their execution times and the number of choice points in solving finite domain CSPs. Interestingly, our experiments provide evidence that the choice of branching strategy for finite domain problems does not matter much in most cases--provided we are using an effective variable ordering heuristic--as domain splitting and 2-Way branching end up simulating k-Way branching. However, for an optimization problem with large domain size, the branching strategy with the least commitment principle can be more efficient than the other strategies. This empirical study will hopefully interest other practitioners to take different branching schemes into consideration in designing heuristics

    Verification of the Performance Properties of Embedded Streaming Applications via Constraint-Based Scheduling

    Get PDF
    RÉSUMÉ Les capacités et, en conséquence, la complexité de la conception de systèmes embarqués ont énormément augmenté ces dernières années, surfant sur la vague de la loi de Moore. Au contraire, le temps de mise en marché a diminué, ce qui oblige les concepteurs à faire face à certains défis, ce qui les poussent à adopter de nouvelles méthodes de conception pour accroître leur productivité. En réponse à ces nouvelles pressions, les systèmes modernes ont évolué vers des technologies multiprocesseurs sur puce. De nouvelles architectures sont apparues dans le multitraitement sur puce afin d'utiliser les énormes progrès des technologies de fabrication. Les systèmes multiprocesseurs sur puce (MPSoCs) ont été adoptés comme plates-formes appropriées pour l'exécution d'applications embarquées complexes. Pour réduire le coût de la plate-forme matérielle, les applications partagent des ressources, ce qui peut entraîner des interférences dans le temps entre les applications dues à des conflits dans la demande des ressources. Les caractéristiques d'un SoC typique imposent de grands défis sur la vérification SoC à deux égards. Tout d'abord, la grande échelle de l'intégration du matériel mène à des interactions matériel-matériel sophistiquées. Puisqu’un SoC a de multiples composants, les interactions entre ceux-ci pourraient donner lieu à des propriétés émergentes qui ne sont pas présentes dans un seul composant. En second lieu, l'introduction de logiciels dans le comportement du matériel mène à des interactions matériel-logiciel sophistiqué. Puisqu’un SoC a au moins un processeur, le logiciel constitue une nouvelle dimension des comportements du SoC et donc apporte une nouvelle dimension à la vérification. Cela rend la vérification d'une tâche difficile, en particulier pour les applications de communication et de multimédia. Cela est dû à des contraintes non-fonctionnelles des modules matériel et logiciel, tels que la vitesse du processeur, la taille de la mémoire tampon, le budget de l'énergie, la politique de planification, et la combinaison de multiples applications. Cette thèse préconise la programmation par contraintes (CP) comme un outil puissant pour la vérification des mesures de performance de MPSoCs. Dans ce travail, nous avons considéré des applications de diffusion sur l'architecture cible d’un système-sur-puce (MPSoC) multi-processeur comme un problème d'ordonnancement à base de contraintes. Nous l’avons testé séparément et en interaction avec d'autres types d'applications. L'idée est de créer un scénario au niveau du système qui prend en compte le flux de travail au niveau du système par rapport aux ressources du système et des exigences de performance, à savoir les délais de la tâche, le temps de réponse, le CPU et l’utilisation de la mémoire, ainsi que la taille de la mémoire tampon. Plus précisément, nous examinons si le comportement des différentes interactions entre les composants du système d'exécution des tâches différentes peut être efficacement exprimé comme un problème d'ordonnancement à base de contraintes sur l'espace des entrées possibles du système, afin de déterminer si nous pouvons traiter des cas similaires d'échec en utilisant ce modèle. Résoudre ce problème consiste à trouver une meilleure façon d’inspecter le système en cours de vérification dans une phase de conception qui arrive très tôt et dans un délai beaucoup plus raisonnable. Notre approche proposée a été testée avec diverses applications, différents flux d'entrée et des architectures différentes. Nous avons construit notre modèle en prenant en considération les architectures existantes sur le marché, des applications choisies qui sont en courante et comparé les résultats de notre modèle avec les résultats provenant de l'exécution des applications réelles sur le système. Les résultats montrent que la méthode permet de déterminer les conditions de défaillance du système dans une fraction du temps nécessaire à la vérification par simulation. Il donne à l’ingénieur d’essai la possibilité d'explorer l'espace de conception et d'en déduire la meilleure politique. Il contribue également à choisir une architecture appropriée pour des applications en cours d'exécution.----------ABSTRACT The abilities and, accordingly, the design complexity of embedded systems have expanded enormously in recent years, riding the wave of Moore’s law. On the contrary, time to market has shrunk, forcing challenges onto designers who in turn, seek to adopt new design methods to increase their productivity. As a response to these new pressures, modern-day systems have moved towards on-chip multiprocessing technologies. New architectures have emerged in on-chip multiprocessing in order to utilize the tremendous advances of fabrication technology. Multiprocessor Systems on a Chip (MPSoCs) were adopted as suitable platforms for executing complex embedded applications. To reduce the cost of the hardware platform, applications share resources, which may result in inter-application timing interference due to resource request conflicts. The features of a typical SoC impose great challenges on SoC verification in two respects. First, the large scale of hardware integration leads to sophisticated hardware-hardware interactions. Since a SoC has multiple components, the interactions between them could give rise to emerging properties that are not present in any single component. Second, the introduction of software into hardware behaviour leads to sophisticated hardware-software interactions. Since an SoC has at least one processor, software forms a new dimension of the SoC’s behaviours and hence brings a new dimension to verification. This makes verification a challenging task, in particular for communication and multimedia applications. This is due to the non-functional constraints of hardware and software modules, such as processor speed, buffer size, energy budget, and scheduling policy, and the combination of multiple applications. This thesis advocates Constraint Programming (CP) as a powerful tool for the verification of performance metrics of MPSoCs. In this work, we mapped streaming applications onto a target Multi-Processor System-on-Chip (MPSoC) architecture as a constraint-based scheduling problem. We tested it separately and in interaction with other application types. The idea is to create a system-level scenario that takes into account the system level work-flow with respect to System resources and performance requirements, namely task deadlines, response time, CPU and memory usage, and buffer size. Specifically, we investigate whether the behaviour of different interactions among system components executing different tasks can be effectively re-expressed as a constraint-based scheduling problem over the space of possible inputs to the system, finding if we can address similar cases of failure using this model. Solving this problem means finding a better way to investigate and verify the System under verification in a very early design stage and in a much more reasonable time. Our proposed approach was tested with various applications, different input streams and different architectures. We built our model for existing architectures on the market running chosen applications and compared our model results with the results coming from running the actual applications on the system. Results show that the methodology is able to identify system failure conditions in a fraction of the time needed by simulation-based verification. It gives the Test Engineer the ability to explore the design space and deduce the best policy. It also helps choose a proper architecture for the applications running

    Problème de transport avec contraintes d'horaires

    Get PDF
    L’industrie forestière est un secteur extrêmement important pour plusieurs pays dont le Canada. En 2007, ce secteur offrait de l’emploi à environ 1 million de personnes (directement et indirectement)à travers le pays et a contribué par 23.4milliardsaˋlabalancecommercialenationale.Plusieursprobleˋmeslieˊsaˋcetteindustriesontdenatured’aideaˋladeˊcision.Ilssedivisentgeˊneˊralemententroiscateˊgories:strateˊgique,tactiqueetopeˊrationnelle.Toutaulongdecettetheˋse,nousnoussommesinteˊresseˊaˋcettedernieˋrecateˊgorieetpluspreˊciseˊmentauprobleˋmedutransportforestieravechoraire.Danslalitteˊraturedudomaine,cettequestionafaitl’objetdeplusieurstravaux.Denotrepart,nousavonsadapteˊleprobleˋmeaucontextecanadienenprenantencomptelescontraintesdesynchronisationentreleschargeusesetlescamions.Cescontraintesdesynchronisationtraduisentlefaitqueleschargeusesenfore^tnepeuventpassupporterd’autresopeˊrationsenceslieux,aˋpartlechargement,vulagrandesuperficiedessitesforestierscanadiens.Ainsi,ileˊtaitprimordialdeminimiserlesattentesdeschargeusesetdescamions,pourreˊduirelescou^tsdetransport.Danslepremierarticledecetravail,nousavonstraiteˊleprobleˋmejournalierouˋnousavonssupposeˊquelesreque^tesdetransportsontconnuesaˋl’avance.Unemeˊthodehybridemettantenoeuvrelaprogrammationparcontraintesetlaprogrammationlineˊaireennombresentiersaeˊteˊadopteˊe,desortequecettedernieˋremodeˊliselaviicirculationdescamionscommeunprobleˋmedeflotaˋcou^tminimumdansunreˊseau,alorsqueprogrammationparcontraintess’occupedel’ordonnancementdesta^ches,unefoislacirculationesteˊtablie.−−−−−−−−−−ABSTRACTTheforestindustryisanimportanteconomicsectorforseveralcountriesincludingCanada.In2007,thisindustryemployedabout1millionpeople(directlyandindirectly),andcontributed23.4 milliards à la balance commerciale nationale. Plusieurs problèmes liés à cette industrie sont de nature d’aide à la décision. Ils se divisent généralement en trois catégories : stratégique, tactique et opérationnelle. Tout au long de cette thèse, nous nous sommes intéressé à cette dernière catégorie et plus précisément au problème du transport forestier avec horaire. Dans la littérature du domaine, cette question a fait l’objet de plusieurs travaux. De notre part, nous avons adapté le problème au contexte canadien en prenant en compte les contraintes de synchronisation entre les chargeuses et les camions. Ces contraintes de synchronisation traduisent le fait que les chargeuses en forêt ne peuvent pas supporter d’autres opérations en ces lieux, à part le chargement, vu la grande superficie des sites forestiers canadiens. Ainsi, il était primordial de minimiser les attentes des chargeuses et des camions, pour réduire les coûts de transport. Dans le premier article de ce travail, nous avons traité le problème journalier où nous avons supposé que les requêtes de transport sont connues à l’avance. Une méthode hybride mettant en oeuvre la programmation par contraintes et la programmation linéaire en nombres entiers a été adoptée, de sorte que cette dernière modélise la vii circulation des camions comme un problème de flot à coût minimum dans un réseau, alors que programmation par contraintes s’occupe de l’ordonnancement des tâches, une fois la circulation est établie.----------ABSTRACT The forest industry is an important economic sector for several countries including Canada. In 2007, this industry employed about 1 million people (directly and indirectly),and contributed 23.4 billion to Canada’s trade balance. The operations research problems related to this sector are divided into three categories: strategic, tactical and operational. In this thesis, we are interested in the later category and more precisely in the log-truck scheduling problem. Many papers in the literature have addressed this issue, and our contribution has been to address the problem to the Canadian context, taking into account the synchronization constraints between loarders and trucks. These constraints reflect the fact that forest-loaders cannot support other operations in forests except loading, since in Canada, we have large areas.In the first article of this thesis, we presented the daily problem where we have assumed that requests are known in advance. We proposed a hybrid approach involving a linear model to deal with the routing part of the problem and a constraint programming model to deal the scheduling part. Both of these models are combined through the exchange of global cardinality constraints. In the second article, we discussed the weekly problem where inventories at wood mills are taken into consideration in order to allow wood mills to work in a just in x time mode. For this purpose, we have developed a two-phase method

    Programming constraint services

    Get PDF
    This thesis presents design, application, implementation, and evaluation of computation spaces as abstractions for programming constraint services at a high level. Spaces are seamlessly integrated into a concurrent programming language and make constraintbased computations compatible with concurrency through encapsulation. Spaces are applied to search and combinators as essential constraint services. State-of-the-art and new search engines such as visual interactive search and parallel search are covered. Search is expressive and concurrency-compatible by using copying rather than trailing. Search is space and time efficient by using recomputation. Composable combinators, also known as deep-guard combinators, stress the control facilities and concurrency integration of spaces. The implementation of spaces comes as an orthogonal extension to the implementation of the underlying programming language. The resulting implementation is shown to be competitive with existing constraint programming systems.Diese Dissertation beschreibt Entwurf, Verwendung, Implementierung und Evaluierung von Computation Spaces für die Programmierung von Constraintdiensten. Spaces werden in eine nebenläufige Programmiersprache integriert. Sie fungieren als Kapseln für Berechnungen mit Constraints. Dadurch wird die Kompatibilität zu nebenläufigen Berechnungen gewährleistet. Suche und Kombinatoren sind zentrale Constraintdienste, die mit Spaces programmiert werden. Es werden sowohl übliche, als auch vollkommen neue Suchmaschinen, wie zum Beispiel interaktive Suche und parallele Suche, vorgestellt. Durch Kopieren wird Suche ausdrucksstark und kompatibel mit Nebenläufigkeit. Durch Wiederberechnung wird Suche effizient hinsichtlich Speicherbedarf und Laufzeit. Kombinatoren, die ineinander geschachtelt werden können (so genannte deep-guard Kombinatoren), verdeutlichen die Kontrollmöglichkeiten von Spaces. Die Implementierung von Spaces erfolgt als orthogonale Erweiterung einer Implementierung für die zugrundeliegende Programmiersprache. Das Ergebnis ist konkurrenzfähig zu existierenden Constraintprogrammiersystemen
    corecore