Une école dispense des cours dans des salles informatiques équipées d'ordinateurs.
L'objectif est qu'avant chaque cours, tous les ordinateurs soient allumés et qu'une bouteille d'eau soit disponible pour l'enseignant.
L'école dispose d'un robot capable d'allumer un ordinateur s'il est éteint, et d'apporter une bouteille d'eau dans une salle.
Les créneaux de cours sont les suivants:
L'objectif est de fournir un planning au robot permettant d'allumer avant chaque cours les machines et de fournir une bouteille d'eau.
Pour le moment, nous commencerons par considérer:
Nous complexifierons les données en fin de TP.
<spoiler|Structure d'une solution> Il y a plusieurs solutions bien entendu, voici celle que nous utiliserons pour le moment:
plan([ cr([_,_,_,_,_],r1), cr([_,_,_,_,_],r2), cr([_,_,_,_,_],r3), cr([_,_,_,_,_],r4), cr([_,_,_,_,_],r5), cr([_,_,_,_,_],r6), cr([_,_,_,_,_],r7), cr([_,_,_,_,_],r8), cr([_,_,_,_,_],r9), cr([_,_,_,_,_],r10), cr([_,_,_,_,_],r11), cr([_,_,_,_,_],r12), cr([_,_,_,_,_],r13), cr([_,_,_,_,_],r14), cr([_,_,_,_,_],r15), cr([_,_,_,_,_],r16), cr([_,_,_,_,_],r17), cr([_,_,_,_,_],r18), cr([_,_,_,_,_],r19), cr([_,_,_,_,_],r20), cr([_,_,_,_,_],r21), cr([_,_,_,_,_],r22), cr([_,_,_,_,_],r23), cr([_,_,_,_,_],r24) ]).
Questions auxquelles vous devez pouvoir répondre:
</spoiler>
<spoiler|Résultat attendu>
| ?- but. [cr([_68,_70,_72,_74,_76],r1),cr([_81,_83,_85,_87,_89],r2),cr([_94,_96,_98,_100,_102],r3),cr([_107,_109,_111,_113,_115],r4),cr([_120,_122,_124,_126,_128],r5),cr([_133,_135,_137,_139,_141],r6),cr([_146,_148,_150,_152,_154],r7),cr([_159,_161,_163,_165,_167],r8),cr([_172,_174,_176,_178,_180],r9),cr([_185,_187,_189,_191,_193],r10),cr([_198,_200,_202,_204,_206],r11),cr([_211,_213,_215,_217,_219],r12),cr([_224,_226,_228,_230,_232],r13),cr([_237,_239,_241,_243,_245],r14),cr([_250,_252,_254,_256,_258],r15),cr([_263,_265,_267,_269,_271],r16),cr([_276,_278,_280,_282,_284],r17),cr([_289,_291,_293,_295,_297],r18),cr([_302,_304,_306,_308,_310],r19),cr([_315,_317,_319,_321,_323],r20),cr([_328,_330,_332,_334,_336],r21),cr([_341,_343,_345,_347,_349],r22),cr([_354,_356,_358,_360,_362],r23),cr([_367,_369,_371,_373,_375],r24)] yes
<spoiler| Code du but et affichage>
but:-plan(P), write(P).
Questions auxquelles vous devez pouvoir répondre:
</spoiler> </spoiler>
Vous pourrez avoir besoin de définir d'autres règles pour obtenir le résultat attendu!
Résultat attendu:
| ?- but. [_68,_70,_72,_74,_76] [_81,_83,_85,_87,_89] [_94,_96,_98,_100,_102] [_107,_109,_111,_113,_115] [_120,_122,_124,_126,_128] [_133,_135,_137,_139,_141] [_146,_148,_150,_152,_154] [_159,_161,_163,_165,_167] [_172,_174,_176,_178,_180] [_185,_187,_189,_191,_193] [_198,_200,_202,_204,_206] [_211,_213,_215,_217,_219] [_224,_226,_228,_230,_232] [_237,_239,_241,_243,_245] [_250,_252,_254,_256,_258] [_263,_265,_267,_269,_271] [_276,_278,_280,_282,_284] [_289,_291,_293,_295,_297] [_302,_304,_306,_308,_310] [_315,_317,_319,_321,_323] [_328,_330,_332,_334,_336] [_341,_343,_345,_347,_349] [_354,_356,_358,_360,_362] [_367,_369,_371,_373,_375] yes