Towards More Efficient Parallel SAT Solving
Total Page:16
File Type:pdf, Size:1020Kb
Towards more efficient parallel SAT solving Ludovic Le Frioux To cite this version: Ludovic Le Frioux. Towards more efficient parallel SAT solving. Distributed, Parallel, and Cluster Computing [cs.DC]. Sorbonne Université, 2019. English. NNT : 2019SORUS209. tel-03030122 HAL Id: tel-03030122 https://tel.archives-ouvertes.fr/tel-03030122 Submitted on 29 Nov 2020 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. i Thesis submitted to obtain the degree of doctor of philosophy from Sorbonne Université École doctorale EDITE de Paris (ED130) Informatique, Télécommunication et Électronique Laboratoire de Recherche et Développement d’EPITA (LRDE) Laboratoire d’Informatique de Paris 6 (LIP6) Towards more efficient parallel SAT solving – Vers une parallélisation efficace de la résolution du problème de satisfaisabilité Ludovic LE FRIOUX Presented on July 3, 2019 in front of a jury composed of: Reviewers: - Michaël KRAJECKI, Professor at Université de Reims, CReSTIC - Laurent SIMON, Professor at Université de Bordeaux, LaBRI, CNRS Examiners: - Daniel LE BERRE, Professor at Université d’Artois, CRIL, CNRS - Bertrand LE CUN, Senior Software Engineer at Google Inc. - Clémence MAGNIEN, Research Director at CNRS, LIP6, CNRS Under the supervision of: - Souheib BAARIR, Associate Professor at Université Paris Nanterre, LIP6, CNRS - Fabrice KORDON, Professor at Sorbonne Université, LIP6, CNRS - Julien SOPENA, Associate Professor at Sorbonne Université, LIP6, CNRS, INRIA Contents Remerciements5 Résumé long en français7 Abstract 15 1 Introduction 17 1.1 Towards an Efficient Parallelisation....................... 18 1.2 Contributions .................................. 19 1.3 Manuscript Structure .............................. 20 2 The Boolean Satisfiability Problem 23 2.1 Propositional Logic............................... 24 2.2 The Success Story of SAT............................ 32 2.3 Some Examples of Applications ........................ 37 2.4 Summary and Discussion............................ 44 3 Complete Sequential SAT Solving 45 3.1 Principles of the Basic Resolution Algorithm.................. 46 3.2 Principles of Optimized Resolution....................... 48 3.3 Conflict Analysis ................................ 48 3.4 Branching Heuristics .............................. 51 3.5 Optimising the Exploration........................... 52 3.6 Preprocessing/Inprocessing........................... 53 3.7 Application on an Example........................... 55 3.8 Summary and Discussion............................ 57 4 Parallel SAT Solving 59 4.1 About Parallel Environments.......................... 60 4.2 Divide-and-Conquer............................... 62 4.3 Portfolio..................................... 67 4.4 Hybrid Strategies ................................ 69 4.5 Learnt Clause Exchanges............................ 71 4.6 Summary and Discussion............................ 73 5 Framework for Parallel SAT Solving 75 5.1 Architecture of the Framework......................... 77 3 5.2 Implementing Existing Strategies........................ 82 5.3 Modularity Evaluation ............................. 83 5.4 Performance Evaluation............................. 85 5.5 Assessment of Painless in the SAT Competition.............. 89 5.6 Conclusion ................................... 93 6 Implementing Efficient Divide-and-Conquer 95 6.1 Implementation of a Divide-and-Conquer ................... 96 6.2 Implemented Heuristics............................. 98 6.3 Evaluation of the Divide-and-Conquer Component .............. 99 6.4 Conclusion and Discussion........................... 103 7 Exploiting the Modularity of SAT Instances for Information Sharing 105 7.1 From SAT Instances to Graphs......................... 106 7.2 Community-based Approach.......................... 109 7.3 Related Works.................................. 110 7.4 Generating “Good” Clauses........................... 111 7.5 “Good” Preprocessing for Sequential SAT Solving . 113 7.6 “Good” Inprocessing for Parallel SAT Solving . 115 7.7 Conclusion and Discussion........................... 116 8 Conclusion and Future Works 117 8.1 Perspectives................................... 118 List of Figures 120 Bibliography 123 4 Remerciements Cette partie a pour but de remercier toutes les personnes qui m’ont aidé de près ou de plus loin à accomplir ce travail. Par aider je veux dire qu’elles ont compté dans la réussite de ma mission, et que d’une manière ou d’une autre elles m’ont inspiré positivement et m’ont permis d’arriver jusqu’ici. Je tiens à dire que même si vous n’êtes pas dans ces remerciements il ne faut pas vous for- maliser, il fallait bien rédiger cette partie et c’est toujours difficile de ne pas oublier quelqu’un :) En premier lieu j’aimerais remercier Michaël Krajecki et Laurent Simon d’avoir accepté le rôle de rapporteur de ma thèse. Je remercie également tous les membres de mon jury d’avoir accepté de participer à celui-ci : Bertrand Le Cun, Daniel Le Berre et Clémence Magnien. Je voudrais remercier mes encadrants de thèse : Soheib Baarir, Fabrice Kordon et Julien Sopena. Ils m’ont accompagné durant toute cette thèse et si j’en suis là aujourd’hui c’est bien grâce à eux. Je souhaite remercier Emmanuelle Encrenaz et Laure Petrucci d’avoir fait parti de mon comité de suivi, qui m’a permis de prendre plus de recul sur mes travaux. J’ai été initié à l’informatique et découvert la recherche grâce à eux, il est donc normal de les remercier ici : Arnaud Blanchard, Brahim Derdouri et Ghiles Mostafaoui. Je voudrais également remercier Maxime Lorrillère, Sébastien Monnet et Julien Sopena pour les nombreux stages et projets dans lesquels ils m’ont encadré. J’ai beaucoup appris auprès de vous. Je remercie tous mes collègues qui m’ont permis d’évoluer dans un cadre de travail plus qu’agréable aussi bien au LRDE qu’au LIP6 : Luciana Arantes, Daniela Becker, Béatrice Bérard, Marjorie Bournat, Nicolas Boutry, Antoine Blin, Jean-Baptiste Bréjon, Edwin Car- linet, Damien Carver, Joseph Chazalon, Maximilien Colange, Akim Demaille, Clément Dé- moulins, Alexandre Duret-Lutz, Claude Dutheillet, Jonathan Fabrizio, Arnaud Favier, Thierry Géraud, Redha Gouicem, Saalik Hatia, Le Duy Huynh, Francis Laniel, Jonathan Lejeune, Maxime Lorillère, Olivier Marin, Quentin Meunier, Laure Millet, Sébastien Monnet, Jim Newton, Minh Ôn Vu˜ Ngo.c, Elodie Puybareau, Léo Rannou, Etienne Renault, Olivier Ricou, Julie Rivet, Michaël Roynard, Pierre Sens, Jonathan Sid-Otmane, Guillaume Tochon, Ilyas Toulmit, Yann Thierry-Mieg, Didier Verna, Gauthier Voron et Zhou Zhao. Merci à vous ! Petite mention particulière à mes co-bureau SAT : Hakan Metin et Vincent Vallade. 5 J’aimerais aussi remercier plusieurs personnes qui m’ont permis d’enrichir ma connaissance dans différents domaines. Concernant la logique merci à Adrien Deloro, Nouredine Lamrani et Romain Sieuzac. Merci à Stratis Limnios et Léo Rannou d’avoir partagé avec moi votre expertise sur la théorie des graphes. Je souhaite également remercier mes amis de la fac Massinissa Bahous, Jean-Christophe Cazes, Mathieu Doz, Julie Garnier, Nouredine Lamrani, Stratis Limnios, Léo Rannou, Jonathan Sid-Otmane et Oskar Viljasaar. Petite mention particulière à mon parrain : Wandrille Domin. Je remercie également mes amis du Parisis : Guillaume Barthélemy (Stu), Lucas Bertou (Babe), Matthieu Dumas (Bouddha), Valentine Dupart (La petite D), Antoine Guillet (Toinou), Remy Hespel (Teddy), Matthieu Kemdji (VB), Vincent Mertens (Saucisse), Charles Moussier (Rico), Cyril Petel (Pestel), Lucas Riggi (Rigui) et Tanguy Rossato (Joj). Merci à ma famille d’avoir toujours été là avec moi : Maman, Papa, Gaëtan et Romuald. Enfin je voudrais particulièrement remercier Camille pour son soutien quotidien, mais surtout pour tous les bons moments que l’on partage ensemble depuis une dizaine d’années. Merci aussi de m’avoir inscrit en licence d’informatique, ce n’était pas une si mauvaise idée ,p 6 Résumé long en français Mots clés : parallélisation, satisfaisabilité booléenne, portfolio, diviser pour régner, échange de clauses CONTEXTE : LE PROBLÈME DE SATISFAISABILITÉ ET SA RÉSOLUTION Cette thèse traite de la résolution du problème de satisfaisabilité booléenne (SAT). Pour un ensemble de contraintes données (sous forme d’une formule propositielle), la résolution de SAT consiste à dire s’il existe une affectation des variables qui permet de satisfaire toutes les contraintes (i.e., la formule est alors satisfaisable ou SAT) ou il n’y a aucune manière de satisfaire toutes les contraintes (i.e., la formule est insatisfaisable ou UNSAT). Par exemple, considérons le problème consistant à construire un emploi du temps pour une université. Cet emploi du temps doit prendre en considération : les contraintes des professeurs, les différents types de salles (e.g., amphithéâtres, laboratoires de langues, salles informatiques), les choix des différents cours qu’ont fait les étudiants, etc. Ce problème devient très vite compliqué et ingérable, par un simple individu, lorsque le nombre de contraintes augmente. Ce genre de problèmes