La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Chapitre 5: Modélisation simple

Présentations similaires


Présentation au sujet: "Chapitre 5: Modélisation simple"— Transcription de la présentation:

1 Chapitre 5: Modélisation simple
Where we examine various modelling abilities of CLP languages

2 Modélisation simple Modélisation Choix de modélisation Itération
Optimisation

3 Modélisation Choisir les variables qui seront utilisées représente les paramètres du problème (cela peut être raisonnable ou difficile) Modéliser les relations idéales entre ces variables utilisant les contraintes primitives disponibles dans le domaine

4 Modélisation - Exemple
Un voyageur veut traverser une rivière infestée de requins aussi vite que possible. Réfléchissant à la route la plus rapide est nager en ligne droite et être entrainé en aval largeur de la rivière: W vitesse de la rivière: S ensemble de positions: P vitesse de nage: R R P S W

5 Modélisation - Exemple
Raison: dans le temps, le nageur nage la largeur de la rivière, il flotte en aval la distance donnée par la rivière. Modéliser: river(W, S, R, P) :- T = W/R, P = S*T. Supposons qu'il nage à 1.5m/s, la vitesse de la rivière est de 1 m/s et sa largeur est de 24m. river(24, 1, 1.5, P). L'unique réponse: P = 16

6 Modélisation – Exemple (suite)
Si sa vitesse de nage est entre 1 et 1.3 m/s et qu'il n'a que 20m de position, que peut-il faire? 1 <= R, R <= 1.3, P <= 20, river(24,1,R,P). Modélisation basée sur la flexibilité des contraintes!

7 Choix de modélisation De multiples règles permettent la modélisation des relations qu'impliquent les choix E.g. Les tables de données utilisant différents faits. father(jim,edward). father(jim,maggy). father(edward,peter). father(edward,helen). father(edward,kitty). father(bill,fi). mother(maggy,fi). mother(fi,lillian).

8 Choix - Exemples La requête father(edward,X) trouve les fils de Edward. Réponse: 𝑋=𝑝𝑒𝑡𝑒𝑟, 𝑋=ℎ𝑒𝑙𝑒𝑛, 𝑋=𝑘𝑖𝑡𝑡𝑦 La requête mother(X,fi) trouve la mère de Fi. Réponse: 𝑋=𝑚𝑎𝑔𝑔𝑦

9 Choix - Exemples On peut définir d'autres prédicats
parent(X,Y) :- father(X,Y). parent(X,Y) :- mother(X,Y). sibling(X,Y) :- parent(Z,X), parent(Z,Y), X != Y. cousin(X,Y) :- parent(Z,X), sibling(Z,T), parent(T,Y). La requête cousin(peter, X) a l'unique réponse X = fi

10 Choix plus difficiles A call option gives the holder the right to buy 100 shares at a fixed price E. A put option gives the holder the right to sell 100 shares at a fixed price E pay off of an option is determined by cost C and current share price S e.g. call cost $200 exercise $300 stock price $2, don’t exercise payoff = -$200 stock price $7, exercise payoff = $200

11 Options Trading call C=200, E = 300 put C=100, E = 300
Butterfly strike: buy call at 500 and 100 sell 2 puts at 300

12 Fonctions de modélisation
𝑐𝑎𝑙𝑙 𝑝𝑎𝑦𝑜𝑓𝑓 (𝑆,𝐶,𝐸 = −𝐶 si0≤𝑆≤ 𝐸 𝑆−𝐸−𝐶 si𝑆≥ 𝐸 100 Modéliser une fonction avec n arguments comme un prédicat avec n+1 arguments. Les tests sont des contraintes et le résultat est une équation. buy_call_payoff(S,C,E,P) :- 0 <= S, S <= E/100, P = -C. S >= E/100, P = 100*S - E - C.

13 Options de modélisation
Ajouter un argument de plus: B=1 (acheter), B = -1 (vendre) call_option(B,S,C,E,P) :- 0 <= S, S <= E/100, P = -C * B. S >= E/100, P = (100*S - E - C)*B. La requête (the original call option question) call_option(1, 7, 200, 300, P) a la réponse P = 200

14 Utilisation du modèle Définis la relation dans le graphe précédent
butterfly(S, P1 + 2*P2 + P3) :- Buy = 1, Sell = -1, call_option(Buy, S, 100, 500, P1), call_option(Sell, S, 200, 300, P2), call_option(Buy, S, 400, 100, P3). Définis la relation dans le graphe précédent P >= 0, butterfly(S,P). a deux réponses 𝑃=100𝑆−200Ù2≤𝑆Ù𝑆≤3 𝑃=−100𝑆+400Ù3≤𝑆Ù𝑆≤4

15 Modélisation d'itération
Le modèle naturel peut être une itération de paramètres Les langages CLP n'ont pas de constructions itératives directes comme (for, while) mais ont la récursion.

16 Itération - Exemple Hypothèque: principal P, taux d'intérêt I, paiement R et balance B sur les périodes T Intérêt simple: 𝐵=𝑃+𝑃×𝐼−𝑅 Relation pour 3 périodes: 𝑃 1 =𝑃+𝑃×𝐼−𝑅∧ 𝑃 2 = 𝑃 1 + 𝑃 1 ×𝐼−𝑅∧ 𝑃 3 = 𝑃 2 + 𝑃 2 ×𝐼−𝑅∧ 𝐵= 𝑃 3 Le nombre de contraintes dépend de la variable T

17 Raisonner récursivement
0 périodes: B = P Sinon nouveau princ. P + P*I - R et nouveau temps T-1 mortgage(P,T,I,R,B) :- T = 0, B = P. (M1) mortgage(P,T,I,R,B) :- T >= 1, NP = P + P * I - R, NT = T - 1, (M2) mortgage(NP,NT,I,R,B).

18 Dérivation - Exemple 𝑚𝑜𝑟𝑡𝑔𝑎𝑔𝑒(𝑃,3,𝐼,𝑅,𝐵)∣𝑡𝑟𝑢𝑒 ↓𝑀2 𝑚𝑜𝑟𝑡𝑔𝑎𝑔𝑒( 𝑃 1 ,2,𝐼,𝑅,𝐵)∣ 𝑃 1 =𝑃+𝑃×𝐼−𝑅 ↓𝑀2 𝑚𝑜𝑟𝑡𝑔𝑎𝑔𝑒( 𝑃 2 ,1,𝐼,𝑅,𝐵)∣ 𝑃 1 =𝑃+𝑃×𝐼−𝑅∧ 𝑃 2 = 𝑃 1 + 𝑃 1 ×𝐼−𝑅 ↓𝑀2 𝑚𝑜𝑟𝑡𝑔𝑎𝑔𝑒( 𝑃 3 ,0,𝐼,𝑅,𝐵)∣ 𝑃 1 =𝑃+𝑃×𝐼−𝑅∧ 𝑃 2 = 𝑃 1 + 𝑃 1 ×𝐼−𝑅∧ 𝑃 3 = 𝑃 2 + 𝑃 2 ×𝐼−𝑅〉 ↓𝑀1 []∣ 𝑃 1 =𝑃+𝑃×𝐼−𝑅∧ 𝑃 2 = 𝑃 1 + 𝑃 1 ×𝐼−𝑅∧ 𝑃 3 = 𝑃 2 + 𝑃 2 ×𝐼−𝑅∧𝐵= 𝑃 3 〉

19 Traduire l'itération Les programmeurs CLP débutants devraient avoir des difficultés à définir les relations récursives. Donner une définition procédurale Traduire l'itération en récursion Traduire les tests et les affectations en contraintes

20 Traduction - Exemple Pseudo code C pour le problème d'hypothèque
float mg1(float P, int I, float I, float R) { while (T >= 1) { P = P + P * I - R; T = T - 1; } return P; Chaque variable ne prend qu'une seule valeur mg(P, T, I, R, B) :- T >= 1, NP = P + P * I - R, NT = T - 1, mg(NP, NT, I, R, B). mg(P, T, I, R, B) :- T = 0, (note extra) B = P. Remplacer les tests et les affectations par des contraintes Supprimer la boucle en utilisant la récursion Remplacer la fonction avec une procédure répondant par référence

21 Pourquoi des contraintes et pas du C?
Les deux programmes peuvent répondre à la requête mortgage(500, 3, 10/100, 150, B). Mais le programme CLP peut résoudre mortgage(P, 3, 10/100, 150, 0). Et beaucoup d'autres requêtes mortgage(P, 3, 10/100, R, B). 𝑃= 𝑃= 𝐵 𝑅

22 Optimisation Certains programmes nécessitent une « meilleure » solution Minimisation litérale: minimize(G,E) Les réponses sont les réponses de la requête G qui minimise l'expression E

23 Optimisation - Exemples
p(X,Y) := X = 1. p(X,Y) :- Y = 1. X >= 0, Y >= 0, minimize(p(X,Y), X+Y) Réponses: X = 1 /\ Y = 0 and X = 0 /\ Y = 1 X >= 0, X >= Y, minimize(true, X-Y) Réponses: X >= 0 /\ X = Y minimize(butterfly(S,P), -P) Réponse: S = 3 /\ P = 100

24 Évaluation de l'optimisation
Une évaluation v est une solution à un état si c'est une solution à des réponses de l'état étape de dérivation de la minimisation: <G1 | C1> to <G2 | C2> where G1 = L1,L2,...,Lm L1 est minimize(G,E) Il existe une solution v de <G | C1> avec v(E) = m et pour toute autre solution w, m <= w(E) G2 is G,L2,...,Lm et C2 est C1 /\ E = m sinon G2 est [] et C2 est false

25 Optimisation - Exemple
X >= 0, minimize(X >= Y, X-Y) 𝑋≥0,minimize(𝑋≥𝑌,𝑋−𝑌)∣𝑡𝑟𝑢𝑒 ↓ minimize(𝑋≥𝑌,𝑋−𝑌)∣𝑋≥0 ↓ 𝑋≥𝑌∣𝑋≥0∧𝑋−𝑌=0 ↓ ]∣𝑋≥0∧𝑋−𝑌=0∧𝑋≥𝑌 𝑋≥𝑌∣𝑋≥0 ↓ ]∣𝑋≥0∧𝑋≥𝑌 La valeur minimum de X- Y est 0 e.g. Simplifié 𝑋≥0∧𝑋=𝑌 𝑋→3,𝑌→3

26 Optimisation L'optimisation n'est pas obligatoirement sur la requête
straddle(S,C1+C2,E,P1+P2) :- Buy = 1, call_option(Buy, S, C1, E, P1), put_option(Buy, S, Cs, E, P2). best_straddle(C,E,P) :- minimize(straddle(S,C,E,P),-P).

27 Modélisation simple - Résumé
Convertion de problèmes de contraintes en contraintes du domaine Le choix est modélisé avec différentes règles Les fonctions sont modélisées comme des prédicats avec un argument de plus. L'itération est modélisée en utilisant la récursion L'optimisation nécéssite un nouveau type de literal


Télécharger ppt "Chapitre 5: Modélisation simple"

Présentations similaires


Annonces Google