saw prezentacja

background image

Systemy

automatyczne

go

wnioskowania

Projekt

Grupa: 2
Sekcja: 2

Łukasz Heince
Paweł Wyrwas

background image

Historia

Kradzież ciasta”

Podczas ostatniego policyjnego dochodzenia, Główny Inspektor
Stone przesłuchiwał pięciu lokalnych przestępców w celu
zidentyfikowania, kto ukradł ciasto Pani Kowalskiej z jarmarku
świętojańskiego. Poniżej znajduje się podsumowanie ich zeznań:

1) Arek: to nie był Edek, to był Bolek.

2)Bolek: to nie był Czarek, to nie był Edek .
3)Czarek: to był Edek, to nie był Arek.
4)Darek: to był Czarek, to był Bolek.
5)Edek: to był Darek, to nie był Arek.

Było wiadome, że każdy z podejrzanych powiedział dokładnie
jedno kłamstwo. Napisz program, który wskaże kto ukradł
ciasto.

background image

Analiza wypowiedzi

• Arek:
Kłamstwo: „to był Bolek”
Prawda: „to nie był Edek”
• Bolek:
Kłamstwo: „to nie był Czarek”
Prawda: „to nie był Edek”

background image

Analiza wypowiedzi

cd.

• Czarek:
Kłamstwo: „to był Edek”
Prawda: „to nie był Arek”
• Darek:
Kłamstwo: „to był Bolek”
Prawda: „to był Czarek”
• Edek:
Kłamstwo: „to był Darek”
Prawda: „to nie był Arek”

background image

Analiza w prologu

tw1(Imie,0):-Imie="Edek",Imie="Bolek".
tw1(Imie,1):-Imie<>"Edek",Imie<>"Bolek".
tw2(Imie,0):-Imie="Czarek",Imie<>"Edek".
tw2(Imie,1):-Imie<>"Czarek",Imie="Edek".
tw3(Imie,0):-Imie<>"Edek",Imie<>"Arek".
tw3(Imie,1):-Imie="Edek",Imie="Arek".
tw4(Imie,0):-Imie<>"Czarek",Imie="Bolek".
tw4(Imie,1):-Imie="Czarek",Imie<>"Bolek".
tw5(Imie,0):-Imie<>"Darek",Imie<>"Arek".
tw5(Imie,1):-Imie="Darek",Imie="Arek".

background image

Kod programu

domains

Lista=Integer*

predicates

nondeterm varia_rep(Integer, Lista, Lista);
nondeterm delete(Integer,Lista,Lista)

tw1(String,Integer)
tw2(String,Integer)
tw3(String,Integer)
tw4(String,Integer)
tw5(String,Integer)

nondeterm element(Lista, Integer, Integer)
nondeterm main(String)
nondeterm sprawdz(String,Lista)
nondeterm osoba(String)

print(Lista)

goal

main(Imie).

background image

Kod programu cd.

clauses

main(Imie):-write("Zestawienie prawd i klamstw. 1 - pierwsza czesc wypowiedzi jest

prawdziwa, 0 - druga czesc wypowiedzi jest prawdziwa"),nl, osoba(Imie),

varia_rep(5, [0, 1], List),
sprawdz(Imie, List), print(List),nl,write("Zlodziejem jest: "),nl.

% lista osob

osoba("Arek"). osoba("Bolek"). osoba("Czarek"). osoba("Darek"). osoba("Edek").

% Wariacja z potwótrzeniami

varia_rep(0,_,[]).
varia_rep(N,L,[H|RVaria]) :- N>0, N1 = N-1, delete(H,L,_), varia_rep(N1,L,RVaria).

delete(X, [X|Xs], Xs).
delete(X, [Y|Ys], [Y|Rs]) :- delete(X, Ys, Rs).

element([H|_], 0, H).
element([_|T], N, Wynik) :- NN = N - 1, element(T, NN, Wynik).

background image

Kod programu cd.2

sprawdz(Imie,Perm):-
element(Perm,0,Wartosc1),tw1(Imie,Wartosc1),
element(Perm,1,Wartosc2),tw2(Imie,Wartosc2),
element(Perm,2,Wartosc3),tw3(Imie,Wartosc3),
element(Perm,3,Wartosc4),tw4(Imie,Wartosc4),
element(Perm,4,Wartosc5),tw5(Imie,Wartosc5).
-

%warunki : 0 gdy druga cześć jest prawdziwa ,1 gdy pierwsza cześć jest prawdziwa

tw1(Imie,0):-Imie="Edek",Imie="Bolek".
tw1(Imie,1):-Imie<>"Edek",Imie<>"Bolek".
tw2(Imie,0):-Imie="Czarek",Imie<>"Edek".
tw2(Imie,1):-Imie<>"Czarek",Imie="Edek".
tw3(Imie,0):-Imie<>"Edek",Imie<>"Arek".
tw3(Imie,1):-Imie="Edek",Imie="Arek".
tw4(Imie,0):-Imie<>"Czarek",Imie="Bolek".
tw4(Imie,1):-Imie="Czarek",Imie<>"Bolek".
tw5(Imie,0):-Imie<>"Darek",Imie<>"Arek".
tw5(Imie,1):-Imie="Darek",Imie="Arek".

print([]).
print([H|T]) :- write(H, " "), print(T).

background image

Dziękujemy !


Document Outline


Wyszukiwarka

Podobne podstrony:
SAW prezentacja (2)
prezentacja finanse ludnosci
prezentacja mikro Kubska 2
Religia Mezopotamii prezentacja
Prezentacja konsument ostateczna
Strategie marketingowe prezentacje wykład
motumbo www prezentacje org
lab5 prezentacja
Prezentacja 18
Materialy pomocnicze prezentacja maturalna
Prezentacja na seminarium
Lato prezentacja 3
Prezentacja1
Prezentacja 2 analiza akcji zadania dla studentow

więcej podobnych podstron