TD de Prolog et programmation par contraintes n 4 (Correction)

Documents pareils
Corrigé du baccalauréat S Asie 21 juin 2010

L AIDE AUX ATELIERS D ARTISTES :

SAV ET RÉPARATION. Savoir-faire.

6 ème. Rallye mathématique de la Sarthe 2013/ ère épreuve de qualification : Problèmes Jeudi 21 novembre 2013

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Les droites (d 1 ) et (d 2 ) sont sécantes en A Le point A est le point d intersection des 2 droites

!" #" $ %& '# $ %& !!""!!#" $ % &

SYSTEME D EXPLOITATION : MS-DOS

Étude des formes de pratiques de la gymnastique sportive enseignées en EPS à l école primaire

Sylvain Meille. Étude du comportement mécanique du plâtre pris en relation avec sa microstructure.

+, -. / 0 1! " #! $ % % %! &' ( &))*

3 : «L amitié éternelle» 4 : «L amour» 5 à 11 : Le Dossier 12 : Loisirs 13 : Fin d année en beauté

>> TECHNIQUES DE COMPTABILITÉ ET DE GESTION 410.B0

ILT. Interfacultair Instituut voor Levende Talen. Actes de communication. Serge Verlinde Evelyn Goris. Katholieke Universiteit Leuven

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

!" #$#% #"& ' ( &)(*"% * $*' )#""*(+#%(' $#),")- '(*+.%#"'#/* "'") $'

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

1. GENERALITES OBJET DU MARCHE DUREE DU MARCHE REGLEMENTATION SECURITE ASTREINTE ET GESTION DES

BACCALAUREAT GENERAL MATHÉMATIQUES

Votre succès notre spécialité!

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses

Activités numériques [13 Points]

SOGC Junior Members Committee. Online Elective Catalogue

Université Paris-Dauphine DUMI2E 1ère année, Applications

RECAPITULATIF PLANS Pour quelle école?

Ordonnancement temps réel

Jeux de caracte res et encodage (par Michel Michaud 2014)

Exemple 4.4. Continuons l exemple précédent. Maintenant on travaille sur les quaternions et on a alors les décompositions

PROGRAMME AEC COMPTABILITÉ FINANCIÈRE INFORMATISÉE

INFORMATIONS DIVERSES

Les intermédiaires privés dans les finances royales espagnoles sous Philippe V et Ferdinand VI

' ' ' ' ' ' ' ' ' !!!!!!!!!!! !!!!!

Le seul ami de Batman

Programmation Par Contraintes

Série BS Réducteur compact roue et vis sans fin

Corrigé des TD 1 à 5

Chapitre 4 : Le transistor Bipolaire

Exercices de géométrie

Structures algébriques

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

UNIVERSITE IBN ZOHR Faculté des sciences Agadir. Filière SMA & SMI. Semestre 1. Module : Algèbre 1

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Manutentions manuelles Statistique nationale / Ile de France 1992

Dérivées d ordres supérieurs. Application à l étude d extrema.

Cours TD TP EC UE EC UE CC Mixte Introduction aux sciences de. 3 Environnement. 4 l'administration et de. Anglais 28 2

Année Universitaire ère année de Master Droit Mention Droit Privé 1 er semestre. 1 er SEMESTRE 8 matières CM TD COEFF ECTS.

Documentation SecurBdF

Premiers exercices d Algèbre. Anne-Marie Simon

LES DÉTERMINANTS DE MATRICES

AC AB. A B C x 1. x + 1. d où. Avec un calcul vu au lycée, on démontre que cette solution admet deux solutions dont une seule nous intéresse : x =

Problèmes sur le chapitre 5

TENDANCES TENDANCES EMBALLAGES MASTER CLASS PARFUMS D ORSAY PARIS. Marie HUET Directrice Générale General Director

Le théorème de Thalès et sa réciproque

= constante et cette constante est a.

Peut-on perdre sa dignité?

Diane-Gabrielle Tremblay (Dir.) Maryse Larivière

! " # $%& )* + ) %*,%* $-.* %% / *6- % 3445 ) + ) % %7* * )+ %) % # * 7 % ). " %%+ 7 ) 2 * ) 879%: 0!'* *';< $: ();<

E-REPUTATION ET IDENTITE

Développement de lois et de structures de réglages destinées à la téléopération avec retour d effort

FIMA, 7 juillet 2005

! " # $ #% &!" # $ %"& ' ' $ (

Introduction à la Programmation par Contraintes (PPC) Ruslan Sadykov LIX, École Polytechnique

Fonctions de plusieurs variables

Participation étudiante

Devoir 2 avec une figure en annexe, à renvoyer complétée. Corrigés d exercices sections 3 à 6. Liste des exos recommandés :

Journées Télécom-UPS «Le numérique pour tous» David A. Madore. 29 mai 2015

CONJUGUÉ D'UN POINT PAR RAPPORT À UN TRIANGLE

UE Programmation Impérative Licence 2ème Année

Le son [v] Découpe et colle les images dans la bonne colonne. Prénom : Date : J entends [vi] J entends [va] J entends [vo]

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

1ère partie Nadine Cullot. Bases de données déductives. Bases de données déductives Introduction et Motivation

Continuité et dérivabilité d une fonction

Chapitre 4 : Exclusion mutuelle

Présentation Bpifrance Prêt Numérique Juin 2015

Optimisation Discrète

Port de Saint Laurent du Var - Barème des redevances Année /10

TD 2 Chapitre 4 : Support des Services et Serveurs. Objectifs : Maîtriser l'exploitation des tables de routage dynamique.

Sujet 4: Programmation stochastique propriétés de fonction de recours

Cryptographie et fonctions à sens unique

«Trop de chats en refuge : Aidons-les!»

Microsoft Excel : tables de données

GUIDE DE PRISE EN MAIN ISIS PROTEUS V7

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

Quelques algorithmes simples dont l analyse n est pas si simple

Les joints Standards COMPOSANTS LEANTEK ET UTILISATIONS. Tous nos joints standards sont disponibles en version ESD. Vis de fixation : S1-S4

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.

CHAPITRE 2 : Structure électronique des molécules

Quatrième partie IV. Test. Test 15 février / 71

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Durée de L épreuve : 2 heures. Barème : Exercice n 4 : 1 ) 1 point 2 ) 2 points 3 ) 1 point

Cours d Analyse. Fonctions de plusieurs variables

1 Première section: La construction générale

Chapitre 5 : Flot maximal dans un graphe

L évaluation des enseignements par les étudiant- e- s analysée sous l angle du genre

Problème 1 : applications du plan affine

Infrastructure à Clé Publique (PKI Public Key Infrastructure)

Ouverture d un pavillon médical : Mesures mises en œuvre pour la mise en eau et suivi bactériologique

Créer le schéma relationnel d une base de données ACCESS

Transcription:

H ) Université Paris 7 - M1 Année 2006-2007 TD de Prolog et programmation par contraintes n 4 (Correction) Exercice 1 [Carrés latins] Un carré latin est une matrice n n qui contient les nombres de 1 à n 2, disposés de telle façon que, pour chaque ligne et chaque colonne de la matrice, la somme des nombres de la ligne ou de la colonne en question donne le même résultat. Par exemple, voici un carré latin de taille 3: 8 3 4 1 5 9 6 7 2 Le but de cet exercice est d implementer un algorithme générer et tester pour engendrer les carrés latins. Une configuration est une liste de n 2 éléments, qui contient une permutation des entiers de 1 à n 2. Les n premiers éléments de la liste réprésentent la première ligne de la matrice, les éléments du n+1-ème au (2 n)-ième la deuxième ligne et ainsi de suite. Donc, la matrice ci-dessus est réprésentée par la liste. #"%$' 1. Définir un prédicat! qui réussit ssi $ est la liste ( *)+)!), 2. $ 0"21' 2. Définir un prédicat -,./ qui réussit ssi la liste 1 est une permutation de la liste $. #"=<> 3. Définir un prédicat 34.*5!!6+7!89;:2, qui réussit ssi < est la somme des éléments d une ligne d un carré latin de taille (il s agit évidemment de n importe quelle ligne, ou colonne; la division entière s écrit?!?, infixe) Définir les prédicats: @,3%.!.'!6+7:%! $/! 0"=B; $ A A 'A qui réussit ssi la sommme des éléments de la -ème ligne de la configuration d un carré latin de taille (c.à.d. des éléments (N (I 1)) + 1,...,N I de la liste ) est. $/ #"2B;, 'A, l analogue pour la somme des éléments de la -ème colonne. @,3%.!.'!6C3!7+3+D $ H Une définition de @,3%.+.E!6+7:4, et @3%.+.E+6C3+7!3! se trouve dans?!e@,?5!f;c!c+:8!?@3%.+.e@ 4. Définir un prédicat 9*@%96!7:%,*@G $/!!H qui réussit ssi est une configuration pour un carré latin de taille, tel que la somme des éléments sur chaque ligne de la matrice réprésentée par est. On supposera que est effectivement une configuration. 5. Définir un prédicat 9*@496C3!7+3!*@G $, analogue au précedent. 6. Définir un prédicat C8!+6!7+89':%, 0"2$; qui réussit si est (la réprésentation d ) un carré latin de taille. 7. Définir une requête pour trouver toutes les configurations qui représentent des carrés latins de taille 3. Quel est leur nombre? 8. Pour les carrés latins de taille 4, l approche générer et tester montre ses limites. Pourquoi? Définir un prédicat C8++6!7!89':%6 pour trouver les carrés latins de taille 4, plus $; efficace. -7. 1

Correction :! #" $ $% $ '(*),+- /.0,1.2 '(*),+- 34 #"/3,5.076 ( ) 3%".0 '(*),+ 64 89 $% 3 : +,+ ;,+- 3 #"26 (*) 3 </34 '(*),+ 64 = >+ ;@?A B,B >+ ;@?A CD FE= #"2>,+ ;@?A F-HG%8 ( ) + ;* ( 4ḦC4BG4E ( ) + ; ( $4 C4CD* ( ) + ; ( $4 C4I*,I=J" ( ) + ;* ( C! /?,K;,+L ' ( 4 346 =J"/6 (*) 3 <! 3 <@3M0. NNPO4 ) ( ) ) ( ) ) ( ) /?*?%+L$>;+/? + ; FQ-FQ! /?*?%+L$>;+/? + ; CD B34H = #"/R (*) 3%".0 /?*?%+L$>;+/? + ; R FS,!H (*) S*M*CT +? ( +? (? ( '( +- FQ '( +- C34FU,= #"/R (*) 3%".0V+ '( +- F HR4JU ) /?*?%+L '( : +- F34W.%H%F" ) 2?*?%+L/>;+2? ( + ; ) H34 ) /?*?%+L '( : +- F34H6 H%F"$+ ',(? ( +- H34JU!HR (*) 6%",.% ) /?? +L '( : +- JU3 R = ) /?*?%+L, ' + F H3 H64J"2R ( ) 6%".0V+ '(? ( +- F HR4JU! ) 2?*?%+L, @ ' $,+L XY #U3 = ) /?*?%+L, ' +L* XY CH3 C%! #" ' +$ : Z4 HR%!BR[$3T ) /?*?%+L, ' +L* XY CH3 %! #" ' +$ : Z4 HR%!BR5 \ 3 ]+ '(? ( +- C 3JU,8 ) /?*?%+L, ' +L* XY JU-3J^,8H (*) CM,^ : ) : : : ) : : '( + L* _ F 3 `%=J" '( +L $XY H3 H34` '( +L* XY F 3 FQH` = '( +L* XY F 3 64H` = #" /?*? +L '(,+ 36 H`!R (*) 6%".0 '( +L* XY F 3R H`%= ' ) ' ' ' ) ' ' + L* _ F34H` = #"*@ $*+L XY 33 H` +L XY F34Q-H`% +L XY F34H6 H`%F" 2?*?%+L $+= FH3 64B`%8HR ( ) 6%".01 +L XY H34BR4H` ;*;,+L ' ( 4 3 0. =J"2 W?K;+L ' $ ( 346! : +$+ ;+- 3!>+ ;@?A H0. 8 ',( : + ) L* _ 0.%H34H6%01 $ ' $+ ) L _ F.036 \\\*\\\\\*\\\\\*\\\*\*\*\\\ \\*\*\*\,a R b%c26 c@s d! #" $ $% $ '(*),+- /.0,1.2 '(*),+- 34,3 #"23,5.076 (*) 3 ",.0 '(*) +- 64 : +,+ ;,+- 3 #"26 (*) 3 </34 '(*),+ 64 = >+ ;@?A CC = 2

>+ ;@?A CD FE= #"2>,+ ;@?A F-HG%8 ( ) + ;* ( 4ḦC4BG4E ( ) + ; ( $4 C4CD* ( ) + ; ( $4 C4I*,I=J" ( ) + ;* ( C! /?,K;,+L ' ( 4 346 =J"/6 (*) 3 <! 3 <@3M0. NNPO4?%+/?,K+ ; C CBL J" *?%+/?,K+ ; C L * J"#? +/?K+ ; C! + ' +,+ ; C4CD = #" + ' +,+ ; C4ID,IB^ J"@+$ ' +,+ ; C4-J^,= : K ' ' : K ' : K ' '( +L$> ))( +- /.%H6 6F^F"1? +2?,K+ ;- 6!F+@ + + ; Ḧ64J^, '( +L$> ))( +- 3 H6 CA*,C H #"W35.%HC[ 6R (*) 6%"/C4J^ ( ) 3%".0 '( +L$> ))( +- #^HR 4H = '( : +L$> ))( K ' +- 3 H6 CA* 4DC #"W35.% '( : +L@>, ))*( K ' +- 34B64 /Z ( YL '( : +- F34H = #"2 /?,K;+L ' ( 34B6%8 '( : +L$> ))( K ' +- 3 H6 H0.%H0.! '( : +L$> ))( K ' +- 3 H6 8. O-H,O0 '( : +L$> ))( K ' +- 3 H6,O-H0 >+ ;@?A F0.00.!H>,+ ;$? O*O8B>,+ ;$?T F-0H>,+ ;@?A! %.0OHR8. 8 R0.0HR,O8 RO4H% +? ( +? (? ( '( +- FQ = '( +- C34,C-JU,=J"/R (*) 3%",.0V+ ',( + F R44JU,= ) /?*?%+L, ' + F H3 H64J"2R ( ) 6%".0V+ '(? ( +- F HR4JU! ) 2?*?%+L, @ ' $,+L XY #U3 = ) /?*?%+L, ' +L* XY CH3 C%! #" ' +$ : Z4 HR%!BR[$3T ) /?*?%+L, ' +L* XY CH3 %! #" ' +$ : Z4 HR%!BR5 \ 3 ]+ '(? ( +- C 3JU,8 ) /?*?%+L, ' +L* XY JU-3J^,8H (*) CM,^ ' ) ' ' ' ) ' ' + L* _ F34H` = #"*@ $*+L XY 33 H` +L XY F34Q-H`% +L XY F34H6 H`%F" 2?*?%+L $+= FH3 64B`%8HR ( ) 6%".01 +L XY H34BR4H` ;*;,+L ' ( L %=J"W /?K;+L ' ( 6%0 : +$,+ ;,+=! /Z ( YL '( : +- F4H 81 ' $*,+ ) L _ 4B6%= N,< 1.W.2. 2.2.2O-2.. 2.2Q--- 4-O2. < N 3

Exercice 2 [Le jeu des 16 allumettes] Configuration initiale: Règle du jeu: les deux joueurs, chacun à son tour, prélèvent une quantité (non nulle) d allumettes d une (et une seule) rangée. Fin du jeu: le joueur qui prélève la dernière allumette a perdu. 1. choisir une représentation des configurations du jeu. 2. définir un prédicat.e3 D 3 ':%6!3F!;C 3 E:4*6 *@49':%89;:3 qui implémente la règle du jeu. ) 3. définir un prédicat *8! 3 E:%!F!89':3, tel que le but *8!0C a succes si et seulement si il existe une stratégie gagnante à partir de la configuration C. Voici par exemple 3 configurations gagnantes: 4. vérifier que la configuration initiale du jeu est perdante. 5. définir un prédicat +F 3 ':%,F+89':3 qui permet à l utilisateur de jouer contre le programme, comme premier joueur et à partir de la configuration donnée. Le programme joue une stratégie optimale (c est à dir que, dès que le programme joue sur une configuration gagnante, le programme gagne). Correction : N,< ( ' : ( $ + (. ),+ /Z ( ( ( : X;, ( +P+ X '(*), ( (,+ ; ( ] '' ( ( ( 1.%*TJ< N N,< ' +P?% )) + >, ))( K ( '( )( $ X >;,+ (, X,+ >, ) (V'?%, /Z (, : ( $ ; X* X,+,+,< N N,< ' X ( ' + )( /Z ( ++ ' >; (?%?% )) 4J< N ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )?% Q? 2.?% FO?% -?% %=?%?% =?% Q? 2.?% FO?% -?% %=?%?% Q? 2.?% FO?% -?% %=?% 4Q? 42.?% 4FO?%?% Q? 2.?% FO?% JOQ? FO2.?% /.0Q?% +- C4HI4FEb C HI4FE,= #"1? ( ) b48=?% +- C4HI4FEb C HI44b= #"1? ( ) JE8=?% +- C4HI4FEb C FEb= #"1? ( ) I48=?% +- 1.0HI4FEb BQ-HI4FEb= 4

>+ ; 1.0QFQFQ >+ ; HQW.0FQFQ >+ ; HQQ2.0FQ >+ ; HQQFQ2.W : : +- HQ-FQFQQ* = : : +- F = #"1?% +- F! >+ ; F >+ ; F J" : : + F + Y* C4I #"1?%,+- C HI%!>+ ; - I%! : ' : ( :?% ;,+L ',( +- FQJ"W?% ;,+L ',( +- 3%J" ; +-!B6 (*) 3 ",.0?% $ ;,+L '( += 6 =?% ;,+L$>, ) C I4E-Hb! #"#? $ ;+L ',( : += C 8D?% * ;+L '( : + I%8? *;,+L '( :,+- FE0? $ *;,+*L ',( :,+-Ḧb% K X : +- C4HI% #" ; ( + + X,+ '' + ;, $ : +!H ' ;,+* - C%0 ; (,+- 1 /?K ( + #!B ' ;,+ - I N,< /Z : +- X;;,+ H, : +*+- /?K ( +$4,+ ) X ' *< N /Z $ +- B = /Z $ +- C W.03,I =J"2I (*) C%"/3 /Z $ +- C H643,C =J" 6,5.0 ( ) 6%".0 /Z +- F R 34!,+ ; ( ( +- C4I FE=J" /Z @ : + CI E!? + FE, ) ) ) /?*?% - BFQ /?*?% - 6 3 #" 2??% = F!3 (*) M 6 (, ' +- F #" ) 2??% 3%073\,[.! X ($'(*) + X; F #"?% *;,+L$> ) F! ( ' +- " 5Ḧ ' ; (,+= ( 0H ' + Y ( % K, X : +- C HI%0,+ ; ( ( +- C4I FE?% $ ;,+L@> ) JE!H,+ Y* JE3+ Y* %! X ($'(*) + X; 3+ Y = 5