background image

 

1

Systemy ekspertowe 

Ć

wiczenie laboratoryjne 2 

 

Budowa aplikacji  pozwalaj

ą

cej na wybór wariantu lokaty oszcz

ę

dno

ś

ci z wykorzystaniem 

Cake 

 
Program b

ę

dzie doradzał jak ulokowa

ć

 oszcz

ę

dno

ś

ci (lokata w banku, obligacje, akcje, 

fundusz powierniczy, nieruchomo

ś

ci).  

Decyzja o sposobie inwestowania zale

Ŝ

y od typu klienta oraz stanu maj

ą

tkowego.  

Typ klienta okre

ś

limy na podstawie kwoty do zainwestowania i wieku.

 

 

Typ klienta 

Wiek 

Kwota 

do 35 lat 

do 30000 

powy

Ŝ

ej 35  

do 30000 

do 35 lat 

powy

Ŝ

ej 30000 

powy

Ŝ

ej 35  

powy

Ŝ

ej 30000 

 
Stan maj

ą

tkowy oceniany jest na podstawie dochodu na osob

ę

 i poziomu spłaty 

dotychczasowych kredytów.  
Ostateczna decyzja o ulokowaniu oszcz

ę

dno

ś

ci b

ę

dzie równie

Ŝ

 zale

Ŝ

ała od skłonno

ś

ci 

klienta do podejmowania ryzyka. 

 

1.  Budowa drzewa decyzyjnego obrazuj

ą

cego problem 

2.  Okre

ś

lenie atrybutów i ich warto

ś

ci 

3.  Projektowanie struktury aplikacji w systemie Cake 

z menu Plik wybra

ć

 Nowy, zaznaczy

ć

 Aplikacja b

ę

dzie zawiera

ć

 

ź

ródła wiedzy 

4.  Okno wła

ś

ciwo

ś

ci aplikacji – Zakładka OPIS 

nazwa aplikacji

ć

wiczenie_2 

Przycisk Zmiana nazwy pliku: poda

ć

 now

ą

 nazw

ę

 pliku (np. imi

ę

_nazwisko_

ć

w2

opis aplikacji: Przykładowa aplikacja do wyboru lokaty oszcz

ę

dno

ś

ci 

5.  Okno wła

ś

ciwo

ś

ci aplikacji – Zakładka 

Ź

RÓDŁA 

Doda

ć

 

ź

ródło wiedzy – przycisk Dodaj/Dodaj nowe 

ź

ródło 

Nowe 

ź

ródło wiedzy b

ę

dzieeksperck

ą

 baz

ą

 wiedzy 

Posiada

ć

 b

ę

dzie nazw

ę

stan_maj

ą

tkowy_?         (? – nr kolejny grupy np. 1) 

Zostanie zapisane w pliku:  stan_maj

ą

tkowy_? 

Przycisk Dalej 

W podobny sposób doda

ć

 pozostałe dwa 

Ŝ

ródła 

o nazwie: typ_klienta_?,  zapisane w pliku:  typ_klienta_? 

o nazwie: inwestycje_?, zapisane w pliku: inwestycje_? 

6. 

Na zakładce FASETY (okno wła

ś

ciwo

ś

ci aplikacji) utworzy

ć

 atrybut globalny (przycisk 

Dodaj) wybieraj

ą

c typ warto

ś

ci:  val oneof – symboliczny

 

Okno Edycji wła

ś

ciwo

ś

ci atrybutu:  

        -   Zakładka Ogólne 

• 

nazwa atrybutu: inwestycje 

background image

 

• 

Faseta Ask=True: zaznaczy

ć

 

• 

Faseta Single=Yes: zaznaczy

ć

 

• 

Atrybut decyzyjny: zaznaczy

ć

 

• 

przycisk Dopisz 

ź

ródło do listy: wybra

ć

 z listy 

ź

ródło wiedzy inwestycje 

 
        Je

Ŝ

eli aplikacja posiada 

ź

ródła wiedzy, dla atrybutów o charakterze globalnym okre

ś

la si

ę

 ich 

"zakres widoczno

ś

ci", czyli list

ę

 

ź

ródeł, w których mog

ą

 wyst

ę

powa

ć

 odwołania do danego 

atrybutu. Atrybut lokata b

ę

dzie „widoczny” w 

ź

ródle wiedzy o nazwie inwestycje. 

 

 

Rys. 1. Okno wła

ś

ciwo

ś

ci atrybutu Inwestycje: Zakładka Ogólne 

 

   -   Zakładka Warto

ś

ci – doda

ć

 po kolei warto

ś

ci (przycisk Dodaj

• 

Nazwa warto

ś

ci: lokata w banku (akceptacja poprzez Wyj

ś

cie

• 

Nazwa warto

ś

ci: akcje  

• 

Nazwa warto

ś

ci: obligacje 

• 

Nazwa warto

ś

ci: fundusz powierniczy 

• 

Nazwa warto

ś

ci: nieruchomo

ś

ci 

               -   Zaakceptowanie zmian i zamkni

ę

cie okna Edycji wła

ś

ciwo

ś

ci atrybutu poprzez 

             

przycisk Wyj

ś

cie 

 

    

 

Rys. 2. Warto

ś

ci atrybutu Inwestycje 

 

7.  Na zakładce FASETY (okno wła

ś

ciwo

ś

ci aplikacji) doda

ć

 pozostałe atrybuty wybieraj

ą

typ warto

ś

ci:  val oneof – symboliczny 

Okno Edycji wła

ś

ciwo

ś

ci atrybutu stan_maj

ą

tkowy:  

background image

 

3

        -   Zakładka Ogólne 

• 

nazwa atrybutu: stan_maj

ą

tkowy 

• 

Faseta Ask=True: zaznaczy

ć

 

• 

Faseta Single=Yes: zaznaczy

ć

 

• 

Atrybut decyzyjny: zaznaczy

ć

 

• 

przycisk Dopisz 

ź

ródło do listy: wybra

ć

 z listy 

ź

ródło wiedzy  

         stan_maj

ą

tkowy i inwestycje 

-   Zakładka Warto

ś

ci – doda

ć

 po kolei warto

ś

ci (przycisk Dodaj

• 

Nazwa warto

ś

ci: dobry 

• 

Nazwa warto

ś

ci: zły 

 

Okno Edycji wła

ś

ciwo

ś

ci atrybutu typ_klienta:  

        -   Zakładka Ogólne 

• 

nazwa atrybutu: typ_klienta 

• 

Faseta Ask=True: zaznaczy

ć

 

• 

Faseta Single=Yes: zaznaczy

ć

 

• 

Atrybut decyzyjny: zaznaczy

ć

 

• 

przycisk Dopisz 

ź

ródło do listy: wybra

ć

 z listy 

ź

ródło wiedzy  

         typ_klienta i inwestycje 

-   Zakładka Warto

ś

ci – doda

ć

 po kolei warto

ś

ci  

• 

Nazwa warto

ś

ci: A 

• 

Nazwa warto

ś

ci: B 

• 

Nazwa warto

ś

ci: C 

• 

Nazwa warto

ś

ci: D 

Okno Edycji wła

ś

ciwo

ś

ci atrybutu ryzyko:  

        -   Zakładka Ogólne 

• 

nazwa atrybutu: ryzyko 

• 

Faseta Ask=True: zaznaczy

ć

 

• 

Faseta Single=Yes: zaznaczy

ć

 

• 

Atrybut decyzyjny: pozostawi

ć

 nie zaznaczone 

• 

faseta Query: CZY KLIENT LUBI PODEJMOWA

Ć

 RYZYKO: 

Faseta query umo

Ŝ

liwia zdefiniowanie przez u

Ŝ

ytkownika tre

ś

ci zapyta

ń

 w odniesieniu do 

wybranych atrybutów lub w odniesieniu do wybranych warto

ś

ci atrybutu.

 

• 

przycisk Dopisz 

ź

ródło do listy: wybra

ć

 z listy 

ź

ródło wiedzy  

         inwestycje 

-   Zakładka Warto

ś

ci – doda

ć

 po kolei warto

ś

ci  

• 

Nazwa warto

ś

ci: tak 

• 

Nazwa warto

ś

ci: nie 

Okno Edycji wła

ś

ciwo

ś

ci atrybutu dochód_na_osob

ę

:  

        -   Zakładka Ogólne 

• 

nazwa atrybutu: dochód_na_osob

ę

 

• 

Faseta Ask=True: zaznaczy

ć

 

• 

Faseta Single=Yes: zaznaczy

ć

 

• 

Atrybut decyzyjny: pozostawi

ć

 nie zaznaczone 

• 

faseta Query

OKRE

Ś

L DOCHÓD NA OSOB

Ę

:

 

• 

przycisk Dopisz 

ź

ródło do listy: wybra

ć

 z listy 

ź

ródło wiedzy  

         stan_maj

ą

tkowy 

-   Zakładka Warto

ś

ci – doda

ć

 po kolei warto

ś

ci 

background image

 

• 

Nazwa warto

ś

ci: poni

Ŝ

ej_

ś

redniej_krajowej 

• 

Nazwa warto

ś

ci: powy

Ŝ

ej_

ś

redniej_krajowej 

Okno Edycji wła

ś

ciwo

ś

ci atrybutu dotychczasowe_kredyty:  

        -   Zakładka Ogólne 

• 

nazwa atrybutu: dotychczasowe_kredyty 

• 

Faseta Ask=True: zaznaczy

ć

 

• 

Faseta Single=Yes: zaznaczy

ć

 

• 

Atrybut decyzyjny: pozostawi

ć

 nie zaznaczone 

• 

faseta Query

PODAJ POZIOM SPŁATY DOTYCHCZASOWYCH  

 

         

KREDYTÓW:

 

• 

przycisk Dopisz 

ź

ródło do listy: wybra

ć

 z listy 

ź

ródło wiedzy  

         stan_maj

ą

tkowy 

-   Zakładka Warto

ś

ci – doda

ć

 po kolei warto

ś

ci  

• 

Nazwa warto

ś

ci: spłacone 

• 

Nazwa warto

ś

ci: niespłacone 

 

8.  Na zakładce Fasety w oknie wła

ś

ciwo

ś

ci aplikacji doda

ć

 po kolei dwa atrybuty (przycisk 

Dodaj) wybieraj

ą

c typ warto

ś

ci: ranges – z przedziałami dozwolonymi 

Okno Edycji wła

ś

ciwo

ś

ci atrybutu wiek_klienta

         -   Zakładka Ogólne 

• 

Nazwa atrybutu: wiek_klienta 

• 

Faseta Ask=True: zaznaczy

ć

 

• 

Faseta Single=Yes: zaznaczy

ć

 

• 

Atrybut decyzyjny: pozostawi

ć

 puste 

• 

faseta Query

PODAJ WIEK KLIENTA:

 

• 

przycisk Dopisz 

ź

ródło do listy: wybra

ć

 z listy 

ź

ródło wiedzy  

 

typ_klienta 

       -   Zakładka Przedziały– doda

ć

 przedział (przycisk Dodaj): 

• 

Od warto

ś

ci: 18 

• 

Do warto

ś

ci: 70

 

Okno Edycji wła

ś

ciwo

ś

ci atrybutu kwota_do_zainwestowania

         -   Zakładka Ogólne 

• 

Nazwa atrybutu: kwota_do_zainwestowania 

• 

Faseta Ask=Yes: zaznaczy

ć

 

• 

Faseta Single=Yes: zaznaczy

ć

 

• 

Atrybut decyzyjny: pozostawi

ć

 puste 

• 

faseta Query

PODAJ KWOT

Ę

 DO ZAINWESTOWANIA:

 

         

KREDYTÓW:

 

• 

przycisk Dopisz 

ź

ródło do listy: wybra

ć

 z listy 

ź

ródło wiedzy  

 

typ_klienta 

       -   Zakładka Przedziały– doda

ć

 przedział (przycisk Dodaj): 

• 

Od warto

ś

ci: 3000 

• 

Do warto

ś

ci: 200000 

 

background image

 

5

 

Rys. 3. Atrybuty w oknie wła

ś

ciwo

ś

ci aplikacji (zakładka Fasety) 

 

9.  Wyedytowa

ć

 

ź

ródło wiedzy inwestycje (okno wła

ś

ciwo

ś

ci aplikacji – Zakładka 

Ź

ródła/przycisk Zmie

ń

) i na zakładce REGUŁY (w oknie wła

ś

ciwo

ś

ci eksperckiego 

ź

ródła 

wiedzy) wprowadzi

ć

 po kolei nast

ę

puj

ą

ce reguły (przycisk Dodaj):  

Reguła nr 1: 

• 

Konkluzja

inwestycje = „akcje”

  

(przycisk Wstaw/przycisk Atrybut/wybór atrybutu i warto

ś

ci z listy/akceptacja   

      poprzez przycisk OK

• 

Lista warunków

typ_klienta = "A", ryzyko = "tak"

 

(warunki dodajemy po kolei poprzez przycisk Dodaj/ Nowym warunkiem 

b

ę

dzie trójka Obiekt-Atrybut-Warto

ść

/przycisk Atrybut/wybór atrybutu i 

warto

ś

ci z listy) 

W podobny sposób doda

ć

 pozostałe reguły: 

2.  inwestycje = "obligacje" if  typ_klienta = "A", ryzyko = "nie" 

3.  inwestycje = "fundusz powierniczy" if typ_klienta = "B", ryzyko = "tak" 

4.  inwestycje = "lokata w banku" if typ_klienta = "B", ryzyko = "nie" 

5.  inwestycje = "akcje" if typ_klienta = "C", stan_maj

ą

tkowy = "dobry", ryzyko = 

"tak" 

6.  inwestycje = "fundusz powierniczy" if  typ_klienta = "C",  stan_maj

ą

tkowy = 

"dobry", ryzyko = "nie" 

7.  inwestycje = "fundusz powierniczy" if  typ_klienta = "C", stan_maj

ą

tkowy = 

"zły" 

8. 

inwestycje = "akcje" if typ_klienta = "D", stan_maj

ą

tkowy = "dobry", ryzyko = 

"tak"

 

9.  inwestycje = "nieruchomo

ś

ci" if typ_klienta = "D", stan_maj

ą

tkowy = 

"dobry", ryzyko = "nie" 

10.  inwestycje = "fundusz powierniczy" if typ_klienta = "D", stan_maj

ą

tkowy = 

"zły" 

background image

 

 

Rys. 4. Reguły w eksperckim 

ź

ródle wiedzy 

  

10. Wyedytowa

ć

 

ź

ródło wiedzy stan_maj

ą

tkowy i na zakładce REGUŁY wprowadzi

ć

 po kolei 

nast

ę

puj

ą

ce reguły:  

1. 

stan_maj

ą

tkowy = „dobry”

 if 

dochód_na_osob

ę

 = "powy

Ŝ

ej 

ś

redniej 

krajowej", dotychczasowe_kredyty = "spłacone" 

2. 

stan_maj

ą

tkowy = "zły" if  dochód_na_osob

ę

 = "powy

Ŝ

ej 

ś

redniej 

krajowej", dotychczasowe_kredyty = "niespłacone" 

3. 

stan_maj

ą

tkowy = "zły" if  dochód_na_osob

ę

 = "poni

Ŝ

ej 

ś

redniej 

krajowej"

 

11. Wyedytowa

ć

 

ź

ródło wiedzy typ_klienta (okno wła

ś

ciwo

ś

ci aplikacji – Zakładka 

Ź

ródła/przycisk Zmie

ń

) i na zakładce REGUŁY (w oknie wła

ś

ciwo

ś

ci eksperckiego 

ź

ródła 

wiedzy) wprowadzi

ć

 reguły (przycisk Dodaj):  

Reguła nr 1: 

typ klienta = „A”

 if 

wiek_klienta = X, X < 35, 

kwota_do_zainwestowania 

= Y, Y < 30000

 

Sposób wprowadzania warunku 

wiek_klienta = X

 w oknie wła

ś

ciwo

ś

ci reguły: 

a)  przycisk Dodaj 
b)  nowym warunkiem b

ę

dzie trójka Obiekt-Atrybut-Warto

ść

 

c)  przycisk Atrybut 
d)  wybór atrybutu z listy – wiek_klienta 
e)  okno Edycji warto

ś

ci numerycznej: bez wpisywania warto

ś

ci Anulowa

ć

 

f)  okno Relacje: wybra

ć

 znak równo

ś

ci „=” 

g)  przycisk Zmienna: wprowadzi

ć

 nazw

ę

 nowej zmiennej X 

h)  akceptacja poprzez przycisk OK 

Sposób wprowadzania warunku 

X < 35 

w oknie wła

ś

ciwo

ś

ci reguły: 

a)  przycisk Dodaj 
b)  nowym warunkiem b

ę

dzie wyra

Ŝ

enie relacyjne 

i)  lewy argument – przycisk Zmienna: wybra

ć

 nazw

ę

 zmiennej X 

c)  prawy argument – przycisk z kalkulatorem: wpisa

ć

 liczb

ę

 (np. 35) 

d)  wybra

ć

 znak „<” z dost

ę

pnych przycisków opcji 

e)  akceptacja poprzez przycisk OK 

background image

 

7

 
Sposób wprowadzania warunku 

kwota_do_zainwestowania 

= Y

 w oknie wła

ś

ciwo

ś

ci reguły: 

j)  przycisk Dodaj 
k)  nowym warunkiem b

ę

dzie trójka Obiekt-Atrybut-Warto

ść

 

l)  przycisk Atrybut 
m)  wybór atrybutu i warto

ś

ci z listy – kwota_do_zainwestowania 

n)  okno Edycji warto

ś

ci numerycznej: bez wpisywania warto

ś

ci Anulowa

ć

 

o)  okno Relacje: wybra

ć

 znak równo

ś

ci „=” 

p)  przycisk Zmienna: wprowadzi

ć

 nazw

ę

 nowej zmiennej Y 

q)  akceptacja poprzez przycisk OK. 

Sposób wprowadzania warunku 

Y < 30000 

w oknie wła

ś

ciwo

ś

ci reguły: 

f)  przycisk Dodaj 
g)  nowym warunkiem b

ę

dzie wyra

Ŝ

enie relacyjne 

r)  lewy argument – przycisk Zmienna: wybra

ć

 nazw

ę

 zmiennej Y 

h)  prawy argument – przycisk z kalkulatorem: wpisa

ć

 liczb

ę

 (np. 30000) 

i)  wybra

ć

 znak „<” z dost

ę

pnych przycisków opcji 

j)  akceptacja poprzez przycisk OK 

 

W podobny sposób doda

ć

 pozostałe reguły: 

2. 

typ_klienta = "B" if wiek_klienta = X, X>35, kwota_do_zainwestowania = Y, Y<30000 

3. 

typ_klienta = "C" if  wiek_klienta = X, X<35, kwota_do_zainwestowania = Y, Y>30000 

4. 

typ_klienta = "D" if wiek_klienta = X, X>35, kwota_do_zainwestowania = Y, Y>30000

 

 
12. Modyfikacja bloku steruj

ą

cego 

na zakładce PROGRAM w oknie wła

ś

ciwo

ś

ci aplikacji wybra

ć

 przycisk Edycja 

bloku sterowania 

z listy rozwijalnej wybra

ć

 – Okno aplikacji, winieta, p

ę

tla główna i 

zaakceptowa

ć

 przyciskiem Zastosuj 

poprawi

ć

 kod bloku steruj

ą

cego według przykładu poni

Ŝ

ej  i zapisa

ć

 

przyciskiem z dyskietk

ą

 

sprowadzanie poprawno

ś

ci wprowadzanego kodu – przycisk błyskawicy

 

 

int Odp; 

char S1, S2, S3; 

run; 

createAppWindow; 

 

 

S1 := "LOKATA_OSZCZ

Ę

DNO

Ś

CI"; 

 

S2 := "DEMONSTRACYJNY SYSTEM DO WYBORU LOKATY OSZCZ

Ę

DNO

Ś

CI"; 

 

S3 := "POLITECHNIKA 

Ś

WI

Ę

TOKRZYSKA"; 

vignette( S1, S2, S3 ); 

 

menu "Wybór lokaty oszcz

ę

dno

ś

ci" 

1. "Wybór lokaty oszcz

ę

dno

ś

ci" 

2. "Wyj

ś

cie" 

case 1: 

background image

 

 

solutionWin ( no); 

 

 

Odp := 1; 

 

while( Odp == 1 ) 

 

 

begin   

                        setSysText( problem, "Ocena stanu maj

ą

tkowego" ); 

       

 

solve( stan_maj

ą

tkowy_?, "stan_maj

ą

tkowy = OCENA_STANU_MAJ

Ą

TKOWEGO" ); 

        

 

 

 

                        setSysText( problem, "Ocena typu klienta" ); 

        

 

solve( typ_klienta_?, "typ_klienta = WYBÓR_TYPU_KLIENTA" ); 

        

 

 

 

                        solutionWin( yes ); 

                        setSysText( problem, "Wybór lokaty oszcz

ę

dno

ś

ci" ); 

                        solve(inwestycje_?, "inwestycje  = DECYZJA_LOKATY_OSZCZ

Ę

DNOSCI" ); 

 

 

 

 

 

 

confirmBox( 0, 0, "Kontynuowa

ć

 konsultacje?", "Naci

ś

nij 'OK' je

ś

li tak, 'ANULUJ' je

ś

li 

nie", Odp ); 

delNewFacts; 

        

 

solutionWin( no ); 

 

 

 

end; 

                

solutionWin( yes ); 

                 

case 2: 

exit; 

end;                         

end 

 

 

13. Zamkn

ąć

 okno edycji bloku sterowania 

14. W oknie wła

ś

ciwo

ś

ci aplikacji przej

ść

 do zakładki Opis i wybra

ć

 Podgl

ą

d tekstu 

ź

ródłowego  

opcja Zapisz ze 

ź

ródłami wiedzy odznaczona! 

wybra

ć

 przycisk z dyskietk

ą

 i poda

ć

 now

ą

 nazw

ę

 pliku (np. 

imi

ę

_nazwisko_

ć

w2_wersja2)  i zapisa

ć

 

15. Edytowa

ć

 po kolei ka

Ŝ

de 

ź

ródło (przycisk Zmie

ń

) i wybra

ć

 Podgl

ą

d tekstu 

ź

ródłowego 

wybra

ć

 przycisk z dyskietk

ą

 i poda

ć

 now

ą

 nazw

ę

 

ź

ródła (np. 

imi

ę

_nazwisko_nazwa_

Ŝ

ródła_wersja2) i zapisa

ć

 

16. Sprawdzi

ć

 działanie aplikacji w PC-Shell