Giter Club home page Giter Club logo

dpll's Introduction

Mini-projet 1 : solveur DPLL récursif

Objectif du mini-projet

Le but du mini-projet est d'implémenter un solveur DPLL récursif en OCaml. Vous devez compléter pour cela le code dans le fichier dpll.ml :

  • la fonction simplifie : int -> int list list -> int list list
  • la fonction unitaire : int list list -> int
  • la fonction pur : int list list -> int
  • la fonction solveur_dpll_rec : int list list -> int list -> int list option

Ces types et les commentaires dans dpll.ml sont indicatifs. D'autres choix peuvent être pertinents ; par exemple, unitaire et pur pourraient aussi être de type int list list -> int option. Aussi, les définitions let foo ...' peuvent être transformées en let rec foo ...' ou inversement.

Vous devez documenter votre code en remplissant le fichier RENDU. Dans ce fichier, vous trouverez des questions précises sur votre implémentation. Vos réponses à ces questions constitueront une partie importante de votre note. Un mini-projet sans fichier RENDU rempli ne recevra pas de note.

Tester son mini-projet

Outre les exemples de test inclus dans dpll.ml (exemple_3_12, exemple_7_2, exemple_7_4, exemple_7_8, systeme, coloriage), vous pouvez utiliser le Makefile en appelant

make

pour compiler un exécutable natif et le tester sur des fichiers au format DIMACS. Vous trouverez des exemples de fichiers à l'adresse

https://www.irif.fr/~schmitz/teach/2021_lo5/dimacs/

Par exemple,

./dpll chemin/vers/sudoku-4x4.cnf

devrait répondre

SAT -111 -112 113 -114 -121 -122 -123 124 -131 132 -133 -134 141 -142 -143 -144 -211 212 -213 -214 221 -222 -223 -224 -231 -232 -233 234 -241 -242 243 -244 311 -312 -313 -314 -321 322 -323 -324 -331 -332 333 -334 -341 -342 -343 344 -411 -412 -413 414 -421 -422 423 -424 431 -432 -433 -434 -441 442 -443 -444 0

Si vous faites des affichages pour vos propres tests, il faudra penser à commenter ces tests pour que votre programme réponde exactement comme indiqué juste ci-dessus.

Rendre son mini-projet

  • date limite : 29 octobre 2021, 23h59
  • sur la page Moodle du cours https://moodle.u-paris.fr/course/view.php?id=1657
  • sous la forme d'une archive XX-nom1-nom2.zip où XX' est le numéro de binôme déclaré à la page https://moodle.u-paris.fr/mod/choicegroup/view.php?id=82687 et nom1' et `nom2' sont les noms de famille des deux membres du binôme, contenant l'arborescence suivante : XX-nom1-nom2/dpll.ml XX-nom1-nom2/dimacs.ml XX-nom1-nom2/Makefile XX-nom1-nom2/RENDU

dpll's People

Contributors

baptiste-fourmont avatar olverackermann avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.