• Aucun résultat trouvé

Arborescence et satisabilité

N/A
N/A
Protected

Academic year: 2022

Partager "Arborescence et satisabilité"

Copied!
2
0
0

Texte intégral

(1)

TD 2 Arborescence et satisabilité Option Info MP

Arborescence et satisabilité TD 2

On dénit le type expression pour représenter des expressions logiques contenant des constantes, des variables logiques et des opérateurs logiques : Et, Ou, Non,⇒ , ⇔, Xor et Nor.

type constante = Vrai | Faux;;

type expression =

| Const of constante

| Var of string

| Et of expression * expression

| Ou of expression * expression

| Non of expression

| Implique of expression * expression

| Equiv of expression * expression

| Xor of expression * expression (* le ou exclusif *)

;;

On peut ainsi considérer l'expression :

let expr1 = Implique(Var "a",Equiv(Const Vrai,Var "b"));;

Exercice 1 : Écrire une fonction transforme qui transforme toute expression du type précé- dent en une expression ne contenant que les opérateurs logiques : Et, Ou et Non.

transforme : expression -> expression

Exercice 2 : Écrire une fonction simplifiequi simplie une expression de contenant comme opérateurs que Et, Ou et Non.

simplifie : expression -> expression

Exercice 3 : Écrire la fonction liste_varqui prend en argument une expression, et renvoie la liste des variables dans l'expression, sans répétition.

liste_var : expression -> string list

Exercice 4 : Ecrire la fonction eval_affect qui prend en argument une expression et une aectation, qui est une liste de couples variable, valeur. La fonction renvoie alors la valeur associée à cette aectation.

eval_affect : expression -> (string * bool) list -> bool Exemple :

eval_affect (transforme expr1) [("a" , true) ; ("b" , false)];;

- : bool = false Exercice 5 :

1. Écrire la fonction distribue qui prend en argument un élément et une liste de liste et distribue l'élément à toutes les listes.

distribue : 'a -> 'a list list -> 'a list list

sebjaumaths.free.fr page 1 Lycée St Exupéry

(2)

TD 2 Arborescence et satisabilité Option Info MP

Exemple :

distribue 12 [ [1;5;6];[3;1] ; []];;

- : int list list = [[12; 1; 5; 6]; [12; 3; 1]; [12]]

2. Écrire la fonctionaffectation_listequi prend en argument une liste et renvoie la liste des couples correspondants aux aectations.

affectation_liste : 'a list -> ('a * bool) list list Exemple :

affectation_liste ["a" ; "b" ];;

- : (string * bool) list list =

[[("a", true); ("b", true)]; [("a", true); ("b", false)];

[("a", false); ("b", true)]; [("a", false); ("b", false)]]

3. En déduire la fonction affectation qui prend en argument une expression logique, et renvoie la liste des aectations pour les variables de l'expression.

affectation : expression -> (string * bool) list list Exemple :

affectation expr1;;

- : (string * bool) list list =

[[("a", true); ("b", true)]; [("a", true); ("b", false)];

[("a", false); ("b", true)]; [("a", false); ("b", false)]]

Exercice 6 : Écrire la fonction est_une_tautologie qui en argument une expression lo- gique, et renvoie le booléen correspondant au fait que l'expression est une tautologie.

est_une_tautologie : expression -> bool

Exemple : ((r ⇒ s)∧(s ⇒ t)) ⇒ (r ⇒ t) est une tautologie (principe de transitivité de l'implication).

tauto : expression =

Implique (Et (Implique (Var "r", Var "s"), Implique (Var "s", Var "t")), Implique (Var "r", Var "t"))

est_une_tautologie tauto ;;

- : bool = true

Exercice 7 : Écrire la fonction liste_satisfiablequi en argument une expression logique, et renvoie la liste des aections pour lesquelles l'expression est satisfaite.

liste_satisfiable : expression -> (string * bool) list list

Exercice 8 : Trois étudiants déjeunent ensemble à midi : Amine, Bertrand, Claire. Les habi- tudes font que :

ˆ si Amine prend un dessert, Bertrand aussi ;

ˆ soit Bertrand, soit Claire prennent un dessert, mais pas les deux ;

ˆ Amine ou Claire prend un dessert ;

ˆ si Claire prend un dessert, Amine aussi.

Trouve la combinaison satisfaisant à la problématique.

sebjaumaths.free.fr page 2 Lycée St Exupéry

Références

Documents relatifs

Salé a longtemps été une ville très populaire, arc- boutée autour de sa médina historique, accueillant une population de petits fonctionnaires faisant la navette, des

Construire en utilisant les instruments de géométrie les points suivants:. S’, l’image de S par la translation qui transforme V

Répondre aux petits problèmes suivants en utilisant cette définition.. Démontrer

et ...est

Au cours du freinage, l'énergie cinétique du véhicule est essentiellement transformée en énergie thermique au niveau des freins du véhicule (frottements)... 2)

[r]

• Des animaux sont transportés involontairement dans un nouveau milieu qu’ils envahissent, car ils n’y ont aucun prédateur. • Ils vont remplacer ou faire disparaître les

Un programme est là pour dénicher et développer leurs forces cachées : le “projet pour la découverte des talents exceptionnels” placé sous la direction du professeur Kenryu