voici ces les données de problème
Nous traitons Le problème de l'estimation du prix d'un appartement. Pour simplifier, nous supposons que l'appartement est caractérisé par :
la superficie,
le nombre des pièces,
le nombre de balcons,
l'existence d'un parking.
Nous ne disposons pas de règles ou de méthode permettant d'estimer le prix d'un appartement donnée. Par contre, nous disposons de la base de cas suivante :
cas1
l'appartement cas1 a une superficie de 70 m2, est composé de trois pièces, un balcon et dispose d'un parking et coûte 600 KF.
cas2
l'appartement cas2 a une superficie de 50 m2, est composé de deux pièces, et dispose d'un parking et coûte 500 KF.
cas3
l'appartement cas3 a une superficie de 95 m2, est composé de cinq pièces, deux balcons et dispose d'un parking et coûte 900 KF.
De plus, l'agent immobilier, étant gentil, nous a donnés les informations suivantes qui pour lui, ne peuvent être qu'approximatives :
Un balcon de plus augmente le prix de l'appartement de 15 KF.
Le parking augmente le prix d'un appartement de 15 KF.
A première vue, disons qu'il faut compter à peu près 120 KF si vous voulez une pièce de plus (en supposant qu'une pièces correspond à 15 m2 de superficie en moyenne).
Pour le même nombre de pièces, un mètre carré de plus coûte 8 KF.
2 Modélisation d'un système RàPC simple
Exercice 1 Modéliser un cas en utilisant la logique du 1er ordre. Quelle est la partie problème et la partie solution.
Exercice 2 Donner une fonction de mesure de similarité possible entre deux cas.
Exercice 3 En supposant qu'on utilise un modèle de mémoire plate, et que le coût de l'opération de similarité entre deux valeurs du même attribut est CO et que le coût de comparaison entre deux valeurs de similarité est CS . Donner le coût du processus de la remémoration CM en supposant qu'on ne remémore que le meilleur cas et que la base de cas contient N cas.
Exercice 4 Modéliser la connaissance de l'adaptation en utilisant la logique du premier ordre.
Exercice 5 En supposant que le coût du déclenchement d'une règle d'adaptation est égale à CA. Donner le coût maximal du processus d'adaptation.
Exercice 6 Supposons qu'on cherche à estimer le prix d'un appartement ayant une superficie de 80 m2, contenant 4 pièces, avec un balcon, et dispose d'un parking. Faire le calcul du prix estimé.
Exercice 7 Répéter l'exercice 6 en tenant compte de l'hypothèse suivante : le système remémore les deux meilleurs cas et la solution proposée est la moyenne pondérée par les similarités des deux solutions adaptées.
3 Implémentation en Prolog
Implémenter en Prolog le système RàPC d'estimation du coût d'un appartement avec l'hypothèse de la remémoration d'un seul cas chaque cycle. Le système doit contenir les phases : remémoration, adaptation, révision et mémorisation. La révision de la solution se fait par un expert qui serait d'accord ou non avec la solution proposée et qui précise la valeur dans le cas de désaccord.
Et voici le code en Prolog mais ça arrive pas à bien modéliser le problème car je travaille avec le prolog 2.0 mais vous pouvez m'aider en donnant une solution en prolog SWI:
et merci en avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 /*appartement(X,Y):-problem(X),solution(Y). %Superficie, Nbr piece, balcon, parking. problem([X,Y,Z,T]):-float(X),integer(Y), integer(Z),bol(T). bol(0). bol(1). solution(Y):-float(Y).*/ sim([X,Y,Z,T],[X1,Y1,Z1,T1],S):-W1 is 1- ((abs(X1-X))/100), W2 is 1- ((abs(Y1-Y))/4), W3 is 1- ((abs(Z1-Z))/1), W4 is 1- ((abs(T1-T))/2), S is W1+W2+W3+W4. for(X,Y):-X,Y,fail. for(X,Y). rem(X):- for(appartement(P,S),(sim(X,P,Sim),s(_,_,Asim), Sim>Asim,retract(s(_,_,_)),assert(s(P,S,Sim)))). rememore(X,P,S,Sim):-assert(s(p,s,-1)),rem(X), retract(s(P,S,Sim)). init:- assert(appartement([70,3,1,1],600)), assert(appartement([50,2,0,1],500)), assert(appartement([95,5,2,1],900)). memorise(P,S):-assert(appartement(P,S)). rapc(X,S2):-rememore(X,P,S,Sim),adapt(P,S,X,S1),write('le prix est '), write(S1),nl, revise(S1,S2),memorise(X,S2). adaptB([X,Y,Z,T],S,[X1,Y1,Z1,T1],S1):- W is (Z1-Z)*15, S1 is S+W. adaptP([X,Y,Z,T],S,[X1,Y1,Z1,T1],S1):- W is (T1-T)*15, S1 is S+W. adaptPs([X,Y,Z,T],S,[X1,Y1,Z1,T1],S1):- W is (Y1-Y)*120, S1 is S+W. adaptS([X,Y,Z,T],S,[X1,Y1,Z1,T1],S1):- W is (X1-X)*8, S1 is S+W. adapt([X,Y,Z,T],S,[X1,Y1,Z1,T1],S1):- adaptB([X,Y,Z,T],S,[X1,Y1,Z1,T1],W1), adaptP([X,Y,Z,T],W1,[X1,Y1,Z1,T1],W2), adaptPs([X,Y,Z,T],W2,[X1,Y1,Z1,T1],W3), NS is ((Y1-Y)*15)+X, adaptS([NS,Y,Z,T],W3,[X1,Y1,Z1,T1],S1). reponse(X) :-write('etes vous d accord avec la solution'), nl, read(X). revise(S1,S1):-reponse(o),!. revise(S1,S2):-write('entrer la valeur désirée du prix'),nl, read(S2).
Partager