ia:prolog:intro
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| ia:prolog:intro [2017/11/02 14:07] – [Problème] bruno | ia:prolog:intro [2018/11/09 11:50] (Version actuelle) – [Prise en main] bruno | ||
|---|---|---|---|
| Ligne 2: | Ligne 2: | ||
| ===== Supports de cour ===== | ===== Supports de cour ===== | ||
| {{ : | {{ : | ||
| + | |||
| + | [[https:// | ||
| ===== Travaux pratique en Prolog===== | ===== Travaux pratique en Prolog===== | ||
| Ligne 9: | Ligne 11: | ||
| ==== Prise en main ==== | ==== Prise en main ==== | ||
| {{ : | {{ : | ||
| + | |||
| + | Au programme: parties 1, 2 et 3. | ||
| ==== Problème ==== | ==== Problème ==== | ||
| Nous allons traiter un cas concret de planification de tâches appliqué à la robotique. | Nous allons traiter un cas concret de planification de tâches appliqué à la robotique. | ||
| - | === Énoncé | + | [[ia:prolog: |
| - | Une école dispense des cours dans des salles informatiques équipées d' | + | |
| - | + | ||
| - | L' | + | |
| - | + | ||
| - | L' | + | |
| - | + | ||
| - | Les créneaux de cours sont les suivants: | + | |
| - | + | ||
| - | * 7h00-8h00: libre (pas de cours) | + | |
| - | * 8h00-10h00; | + | |
| - | * 10h-10h30: pause (toutes les salles sont inoccupées); | + | |
| - | * 10h30-12h30; | + | |
| - | * 12h30-13h30: | + | |
| - | * 13h30-15h30; | + | |
| - | * 15h30: | + | |
| - | * 16h00-18h00; | + | |
| - | * 18h00-19h00: | + | |
| - | + | ||
| - | L' | + | |
| - | + | ||
| - | === Mise en pratique === | + | |
| - | Pour le moment, nous commencerons par considérer: | + | |
| - | - que le robot a besoin de 30 minutes pour s' | + | |
| - | - que l' | + | |
| - | + | ||
| - | Nous complexifierons les données en fin de TP. | + | |
| - | + | ||
| - | == 1) Description d'une solution == | + | |
| - | - Décrivez en prolog une structure permettant de représenter une solution. | + | |
| - | < | + | |
| - | Il y a plusieurs solutions bien entendu, voici celle que nous utiliserons pour le moment: | + | |
| - | <code prolog> | + | |
| - | plan([ | + | |
| - | cr([_, | + | |
| - | cr([_, | + | |
| - | cr([_, | + | |
| - | cr([_, | + | |
| - | cr([_, | + | |
| - | cr([_, | + | |
| - | cr([_, | + | |
| - | cr([_, | + | |
| - | cr([_, | + | |
| - | cr([_, | + | |
| - | cr([_, | + | |
| - | cr([_, | + | |
| - | cr([_, | + | |
| - | cr([_, | + | |
| - | cr([_, | + | |
| - | cr([_, | + | |
| - | cr([_, | + | |
| - | cr([_, | + | |
| - | cr([_, | + | |
| - | cr([_, | + | |
| - | cr([_, | + | |
| - | cr([_, | + | |
| - | cr([_, | + | |
| - | cr([_, | + | |
| - | ]). | + | |
| - | </ | + | |
| - | | + | |
| - | * **Q1.1** pourquoi la liste de la solution comprend 24 lignes ? | + | |
| - | * **Q1.2** pourquoi dans cr([liste], | + | |
| - | * **Q1.3** à quoi servent les valeurs de variable r1, r2,...,r24? | + | |
| - | + | ||
| - | </ | + | |
| - | == 2) Écriture du but et affichage == | + | |
| - | - Créez un but avec cette solution (que nous appellerons //but//). | + | |
| - | - Affichez la solution (sans contrainte pour le moment). | + | |
| - | < | + | |
| - | < | + | |
| - | | ?- but. | + | |
| - | [cr([_68, | + | |
| - | yes | + | |
| - | </ | + | |
| - | < | + | |
| - | <code prolog> | + | |
| - | but: | + | |
| - | write(P). | + | |
| - | </ | + | |
| - | Questions auxquelles vous devez pouvoir répondre: | + | |
| - | * **Q2.1** A quoi sert la règle //plan(P)// ? | + | |
| - | </ | + | |
| - | </ | + | |
| - | + | ||
| - | == 3) Amélioration | + | |
| - | - Améliorez le rendu pour obtenir uniquement un affichage sous forme de tableau 2D (voir exemple attendu plus bas). | + | |
| - | - Réalisez pour cela une règle print_plan(P) permettant d' | + | |
| - | + | ||
| - | Vous pourrez avoir besoin de définir d' | + | |
| - | + | ||
| - | **Résultat attendu**: | + | |
| - | + | ||
| - | <prolog> | + | |
| - | | ?- but. | + | |
| - | [_68, | + | |
| - | [_81, | + | |
| - | [_94, | + | |
| - | [_107, | + | |
| - | [_120, | + | |
| - | [_133, | + | |
| - | [_146, | + | |
| - | [_159, | + | |
| - | [_172, | + | |
| - | [_185, | + | |
| - | [_198, | + | |
| - | [_211, | + | |
| - | [_224, | + | |
| - | [_237, | + | |
| - | [_250, | + | |
| - | [_263, | + | |
| - | [_276, | + | |
| - | [_289, | + | |
| - | [_302, | + | |
| - | [_315, | + | |
| - | [_328, | + | |
| - | [_341, | + | |
| - | [_354, | + | |
| - | [_367, | + | |
| - | + | ||
| - | yes | + | |
| - | + | ||
| - | </ | + | |
ia/prolog/intro.1509631670.txt.gz · Dernière modification : 2017/11/02 14:07 de bruno