files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " #...

48

Transcript of files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " #...

Page 1: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

V�clav Ra�ansk�

Um�l� inteligence

Z�pisy z p�edn��ky zpracoval�

Jan �er�k

��� kv�tna �

� w��������� ������������������ !"#$%&'()*+,-./0yA1Obsah

� Opakov�n� jazyka Prolog ���� Fibonacciho ��sla � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� T��d�c� algoritmy � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

����� Bublinkov� t��dn� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ������ Quicksort � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

�� Pr�ce se seznamy � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Smaz�n� prvku ze seznamu � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Vlo en� prvku do seznamu � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� Permutace � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

��� Probl�m osmi dam � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ������ �e�en� �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ������ �e�en� �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� �e�en� �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

� Grafy ���� Bin�rn� strom � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

����� P�id�v�n� do bin�rn�ho stromu � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ������ Odeb�r�n� z bin�rn�ho stromu � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Vkl�d�n��odeb�r�n� do�z bin�rn�ho stromu � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ������ Tisk bin�rn�ho stromu � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��

��� Reprezentace graf� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� Cesty v grafech � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Kostra grafu � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��

Page 2: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

� OBSAH

� Prohled�v�n� stavov�ho prostoru ���� Prohled�v�n� stavov�ho stromu � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��� Prohled�v�n� do hloubky � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� Prohled�v�n� do ���ky � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��� Nalezen� nejlep�� cesty � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� Rozvrh pr�ce procesor� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� Pucl��ek � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� AND�OR stromy � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��

���� Hanoisk� v e � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ������ Cesta mezi msty � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� AND�OR strom � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ������ Pozn�mka o priorit�ch oper�tor� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

�� AND�OR prohled�v�n� do hloubky � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� AND�OR prohled�v�n� do hloubky s ocenn�m � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Demonstrace AND�OR prohled�v�n� s ocenn�m � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Datov� reprezentace AND�OR stromu � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ������ Vlastn� program � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ������ Hled�n� cesty mezi msty � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��

�� Algoritmy soupe��c�ho prohled�v�n� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ������ Minimax � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ������ Alfa�Beta procedura � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��

� Expertn� syst�my ����� Pattern�directed programming � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� Struktura expertn�ho syst�mu � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��� Dop�edn� a zptn� �etzen� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

���� Druhy pravidel � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� Dop�edn� a zptn� �etzen� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��� Ukl�d�n� dat v expertn�ch syst�mech � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

Zptn� �etzen� ����� Naivn� expertn� syst�m � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

����� Ukl�d�n� dat � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ������ Dotazy u ivateli � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� V�cehodnotov� odpovdi � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

��� Jednoduch� �shell� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��� Faktor jistoty � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

���� Kombinov�n� faktoru jistoty � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Uchov�v�n� dat � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� Zdrojov� text � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Super shell � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

��� Trasov�n� expertn�ho syst�mu � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� Zp�sob z�sk�n� z�vru � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� Zd�vodnn� z�sk�n� z�vru � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

� Dop�edn� �etzen� ����� Principy � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Ilustrativn� p��klad s rozestavov�n�m n�bytku � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� Expertn� syst�m s dop�edn�m �etzen�m � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� Generov�n� kon�iktn�ch pravidel � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��

����� Kon�iktn� pravidla a jejich vznik � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ������� LEX metoda � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����� MEA metoda � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��

��� R�mce � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ������� Co jsou to r�mce � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��

Page 3: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

SEZNAM OBR�ZK�

����� Prohl� en� r�mc� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ������ P�id�v�n� r�mc� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ������� P��klad znalostn� b�ze v r�mc�ch � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��

Seznam obr�zk�

� Princip algoritmu Quicksort � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� P��klad rozestavn� dam na �achovnici � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � Transformace sou�adnic na �achovnici � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� Princip odstra�ov�n� prvku z bin�rn�ho stromu � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� Princip vkl�d�n� do bin�rn�ho stromu � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� P��klad v�stupu programu show � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��� P��klad neorientovan�ho grafu � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��� P��klad orientovan�ho grafu � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��� Strom prohled�v�n� do ���ky � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� Princip chov�n� predik�tu expand � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� Precedence �loh � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� Rozvr en� pr�ce procesor� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��� C�lov� situace hry Pucl��ek � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� Pokuty ve h�e Pucl��ek � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� Tuto situaci Best Search zvl�dne v pti taz�ch � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� AND�OR strom hanoisk�ch v � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� Mapa mst � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� P��klad AND�OR stromu � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� Trivi�ln� prohled�v�n� AND�OR stromu� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� Demonstrace AND�OR prohled�v�n� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� F�b��� � F�c��� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� F�b� � � � F�c� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��� F�b��� � ��F�c� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� AND�OR strom po AND�OR prohled�v�n� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� P��klad listu AND�OR stromu � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� P��klad OR�uzlu AND�OR stromu � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� P��klad AND�uzlu AND�OR stromu � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� P��klad roz�e�en�ho listu AND�OR stromu � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� P��klad roz�e�en�ho OR�uzlu AND�OR stromu � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��� P��klad roz�e�en�ho AND�uzlu AND�OR stromu � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��� Za��znut� Alfa�Beta procedurou � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� Motivace k pattern�directed programming � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � Diagram uplat�ov�n� modul� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� Struktura expertn�ho syst�mu � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� P��klad struktury �r�mc�� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

Page 4: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

� �� OPAKOV�N� JAZYKA PROLOG

� Opakov�n� jazyka Prolog

��� Fibonacciho ��sla

Zde uv�d�me dv varianty� jak se na probl�m Fibonacciho ��sel d�vat� Prvn� z nich je klasick� p��stup logick�hoprogramov�n�� t�j� p��stup formulov�n� probl�mu�

f�X�X� X����f�X�Y� X� is X�� X� is X�� f�X��Y��� f�X��Y��� Y is Y� Y��

Tento program po��t� Fibonacciho ��sla� ov�em slo itost� s jakou pracuje� je exponenci�ln�� Nyn� si uve me t� program� s jist�m f�glem� kter� sn� � slo itost na�eho programu na slo itost line�rn��

f�X�X� X����f�X�Y� X� is X�� X� is X�� f�X��Y��� f�X��Y��� Y is Y� Y��

asserta�f�X�Y���

��� T��d�c� algoritmy

� � � Bublinkov� t��dn�

Prvn� ze t��d�c�ch algoritm�� kter� si uvedeme je bublinkov� t��dn�� Nen� na nm v�bec nic n�ro�n�ho!

bubblesort�List�Sorted� swap�List�List�����bubblesort�List��Sorted��bubblesort�Sorted�Sorted��swap��X�Y�Rest���Y�X�Rest�� X�Y�swap��Z�Rest���Z�Rest��� swap�Rest�Rest���

� � � Quicksort

Princip algoritmu Quicksort ukazuje obr�zek �� Tedy zaps�no v Prologu!

"��������������#

delete$�%�X&�

"������������#

split$�%

� � � � � �

�������

PPPPPPq

"����# sort "�������# sort

"����# "�������#� �

append� add �

"��������������#

PPPPPPq

�������

Obr�zek �! Princip algoritmu Quicksort

quicksort��������quicksort��X�Tail��Sorted� split�X�Tail�Small�Big��quicksort�Small�SortedSmall��

quicksort�Big�SortedBig��append�SortedSmall��X�SortedBig���

split�X�����������split�X��Y�Tail���Y�Small��Big� X�Y���split�X�Tail�Small�Big��split�X��Y�Tail��Small��Y�Big�� split�X�Tail�Small�Big��

Page 5: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

��� Pr�ce se seznamy �

�� Pr�ce se seznamy

� � � Smaz�n� prvku ze seznamu

Smaz�n� prvku ze seznamu se provede tak� pokud vymaz�van� prvek X nen� v hlav seznamu� hlava se odstran� apokra�uje se na zbytku seznamu� Je�li prvek X v hlav seznamu� odstran� se a program kon�� �spchem�

del�X��X�Tail��Tail��del�X��Y�Tail���Y�Tail��� del�X�Tail�Tail���

� � � Vlo�en� prvku do seznamu

Pro vkl�d�n� prvku do seznamu si uvedeme dva predik�ty� Predik�t insert je konstruov�n jako logick� d�sledekexistence predik�tu del a vztahu mezi operacemi vkl�d�n� a vyb�r�n� do�ze seznamu�

insert�X�List�List�� del�X�List��List��

Predik�t insert� je pou iteln� v praxi�

insert��X�List��X�List���

� � � Permutace

Predik�ty perm� a perm� generuj� permutace P z prvk� seznamu L pomoc� predik�t� insert a del�

perm���������perm���X�L��P� perm��L�L���insert�X�L��P��perm���������perm��L��X�P�� del�X�L�L���perm��L��P��

�� Probl�m osmi dam

V tomto odstavci se pod�v�me na probl�m osmi dam� Tento probl�m lze formulovat nap��klad takto� Rozestavjte po�achovnici � dam tak� aby se �dn� dv vz�jemn neohro ovaly�

Pro �e�en� tohoto probl�mu si vybereme jako datovou strukturu osmiprvkov� seznam� reprezentuj�c� osm dam�Ka d� prvek seznamu m� tvar A�B� kde A je horizont�ln� a B vertik�ln� sou�adnice polohy d�my na �achovnici� Nap��situaci na obr� � zobraz�me seznamem!

���������������������������������

� � � �e�en� � �

Toto �e�en� je konstruov�no �od boku�� Predik�t template vygeneruje na�i datovou strukturu� v n� je splnno� ev ka d�m sloupci stoj� pr�v jedna d�ma� Predik�t solution potom generuje v�echna mo n� rozestavn� dam� kdy jeka d� ve sv�m sloupci sama� a pomoc� predik�tu noatack kontroluje� zda se nkter� dv d�my neohro uj��

solution�����solution��X�Y�Others�� solution�Others�� member�Y��������������������

noattack�X�Y�Others��noattack�������noattack�X�Y��X��Y��Others�� Y���Y�� Y�Y���X�X� Y�Y���XX��

noattack�X�Y�Others��template����Y����Y����Y����Y����Y����Y����Y����Y����

Toto �e�en� probl�mu negeneruje v�echny mo n� permutace ��dk�� tedy v�echny mo n� pozice v�ech dam v r�mcijejich sloupc�� Predik�t solution um�st� v dy i�tou d�mu $pro i � �� � � � � �% tak� aby neohro ovala �dnou z dosudrozm�stn�ch�

Page 6: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

� �� OPAKOV�N� JAZYKA PROLOG

�Obr�zek �! P��klad rozestavn� dam na �achovnici

� � � �e�en� � �

Datovou strukturou pou itou v tomto �e�en� je seznam osmi vertik�ln�ch sou�adnic� proto e se p�edpokl�d�� e ka d�z dam le � ve sv�m vlastn�m sloupci� t�j� �Y��Y��Y��Y��Y��Y��Y��Y���

solution�Queens� perm�������������������Queens��safe�Queens��safe�����safe��Queen�Others�� safe�Others��noattack�Queen�Others����noattack���������noattack�Y��Y��YList��Xdist� Y�Y���Xdist� YY����Xdist� Dist� is Xdist ��

noattack�Y�YList�Dist���

Toto �e�en� je hor��� nebo' jsou generov�ny v�echny mo n� polohy dam ve sv�ch sloupc�ch� Predik�t perm v dyvygeneruje novou permutaci ��dk� a predik�t safe vyzkou��� zda je to p��pustn� rozestavn��

� � � �e�en� � �

V tomto �e�en� pou ijeme nikoli sou�adnice x a y $sloupec���dek%� ale tzv� sou�adnice diagon�ly u a v� Tedy na�achovnici aplikujeme transformaci sou�adnic!

u � x� v

v � x� v

Tedy intervaly Dx � ������ a Dy � ������ p�ejdou do Du � ������� a Dv � ������ N�zorn to ukazuje obr�zek �Text programu bude tedy vypadat takto!

solution�YList� sol�YList�������������������������������������������������������������������������������������������������������������

sol�������Dy�Du�Dv��sol��Y�YList���X�Dx���Dy�Du�Dv� del�Y�Dy�Dy���U is XY�del�U�Du�Du���V is X Y�

del�V�Dv�Dv��� sol�YList�Dx��Dy��Du��Dv���

Page 7: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

��� Problm osmi dam �

� �

��

�� �

���������������

���

���

���������������

���

���

Obr�zek ! Transformace sou�adnic na �achovnici

Tento algoritmus je z uveden�ch algoritm� nejlep��� Nutno ov�em poznamenat� e predik�t del mus� skon�itne�spchem $fail%� pokud nen� nalezen hledan� prvek�

Page 8: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

� � GRAFY

� Grafy

��� Bin�rn� strom

V t�to kapitole si uvedeme nkolik algoritm�� prov�dj�c�ch z�kladn� operace nad bin�rn�mi stromy�

� � � P�id�v�n� do bin�rn�ho stromu

addleaf�nil�X�t�nil�X�nil���addleaf�t�Left�X�Right��X�t�Left�X�Right���addleaf�t�Left�Root�Right��X�t�Left��Root�Right�� Root�X�addleaf�Left�X�Left���addleaf�t�Left�Root�Right��X�t�Left�Root�Right��� Root�X�addleaf�Right�X�Right���

Anal�zu programu nech�me na laskav�m �ten��i� Nutno v�ak podotknout� e predik�t na odstrann� prvku z bi�n�rn�ho stromu nelze de(novat!

del�D�X�D�� addleaf�D��X�D��

� � � Odeb�r�n� z bin�rn�ho stromu

Princip �p�estavby� bin�rn�ho stromu p�i odstra�ov�n� ko�ene ukazuje obr�zek ��

AAA�

�� A

AA�

��

�������

��R

AAA�

�� A

AA�

��

���

��R

AAA�

�� A

AA�

��

�������

��R

X

L R L RY

L R

Y� �

Obr�zek �! Princip odstra�ov�n� prvku z bin�rn�ho stromu

Zb�v� tedy uk�zat zdrojov� text�

delleaf�t�nil�X�Right��X�Right��delleaf�t�Left�X�nil��X�Left��delleaf�t�Left�X�Right��X�t�Left�Y�Right��� delmin�Right�Y�Right���delleaf�t�Left�Root�Right��X�t�Left��Root�Right�� X�Root�delleaf�Left�X�Left���delleaf�t�Left�Root�Right��X�t�Left�Root�Right��� X�Root�delleaf�Right�X�Right���delmin�t�nil�Y�R��Y�R��delmin�t�Left�Root�Right��Y�t�Left��Root�Right�� delmin�Left�Y�Left���

� � � Vkl�d�n��odeb�r�n� do�z bin�rn�ho stromu

Princip algoritmu� kter� zde uv�d�me� ukazuje obr�zek ��

add�D�X�D�� addroot�D�X�D���add�t�L�Y�R��X�t�L��Y�R�� gt�Y�X��add�L�X�L���add�t�L�Y�R��X�t�L�Y�R��� gt�X�Y��add�R�X�R���addroot�nil�X�t�nil�X�nil���addroot�t�L�X�R��X�t�L�X�R���addroot�t�L�Y�R��X�t�L��X�t�L��Y�R��� gt�Y�X��addroot�L�X�t�L��X�L����addroot�t�L�Y�R��X�t�t�L�Y�R���X�R��� gt�X�Y��addroot�R�X�t�R��X�R����

Page 9: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

�� Bin�rn� strom �

AAA�

��

AAA�

�� A

AA�

��

L�

L� R

���Y

���X

QQQQQs

���R

AAA�

�� A

AA�

��

L R�

���Y

���R

����

����

AAA�

��R�

���X

QQQQQs

X � Y X � Y

AAA�

�� A

AA�

��

L R

���Y

���R

���� �

��

Obr�zek �! Princip vkl�d�n� do bin�rn�ho stromu

Page 10: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

�� � GRAFY

De(nici predik�tu gt ponech�v�me na kone�n�m u ivateli� Uveden� program p�edpokl�d�� e gt�X�Y� uspje�pokud je vrchol X �vt��� ne vrchol Y�

Poznamenejme� e tento program funguje i �obr�cen��) jin�mi slovy� lze bez probl�m� zapsat program pro od�stra�ov�n� prvku z bin�rn�ho stromu!

del�D�X�D�� add�D��X�D��

� � � Tisk bin�rn�ho stromu

V tomto odstavci si uvedeme program na tisk stromu� Bude fungovat tak� e p�evede datovou strukturu stromu nap��

t�t�t�nil���nil����t�nil���nil�

����t�t�nil���t�nil���nil�

����t�nil���nil�

��

do tvaru� kter� je uveden na obr� ��

��

��

��

Obr�zek �! P��klad v�stupu programu show

�Salon�ampon a kondicion�r v jednom� Two in one�

Page 11: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

� Reprezentace graf� ��

Program tedy bude vypadat takto!

show�T� show��T����show��nil����show��t�L�X�R��Indent� Ind� is Indent ��show��R�Ind���tab�Indent��

write�X��nl�show��L�Ind���

��� Reprezentace graf�

Nkter� zp�soby reprezentace graf� v Prologu!

�� graph��a�b�c�d���e�a�b��e�b�d��e�b�c��e�c�d���� Tato reprezentace zn�zor�uje neorientovan� graf jakopredik�t graph�V�E�� kde V je seznam vrchol� grafu a E je seznam hran grafu� Ka d� hrana je tvaru e�V��V���kde V� a V� jsou vrcholy grafu) viz obr� ��

�� digraph��s�t�u�v���a�s�t����a�t�v����a�t�u����a�u�t����a�v�u����� zn�zor�uje orientovan� graf tak�jako usp� dvojici seznam� vrchol� a hran� kter� jsou tvaru a�Po��te�n�V�Koncov�V�CenaHrany�) viz obr� ��

� Takov� orientovan� graf je ulo en v programov� datab�zi jako posloupnost fakt� a jednoho pravidla!

e�g��a�b��e�g��b�c��e�g��b�d��e�g��c�d��e�X�A�B� e�X�B�A��

� ��� ��� ��� ��a

b

c

d

��

��

��

Obr�zek �! P��klad neorientovan�ho grafu

� ��� ��� ��� ��s

t

v

u

��� �

�R

����

� �

��

Obr�zek �! P��klad orientovan�ho grafu

�� Cesty v grafech

Zde si uvedeme nkolik algoritm� pro vyhled�v�n� cest v grafech� U ka d�ho bude uvedeno� kter� druh reprezentacegrafu pou �v��

Jako prvn� si uvedeme program� kter� najde njakou cestu v neorientovan�m grafu� Program lze spustit dotazem path�A�Z�G�P�� Program path v grafu G najde z vrcholu A do vrcholu Z cestu P� Program p�edpokl�d�� e graf Gbude reprezentov�n ve tvaru ��

Page 12: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

�� � GRAFY

path�A�Z�Graph�Path� path��A��Z��Graph�Path��path��A��A�Path������A�Path���path��A��Y�Path���Graph�Path� adjacent�X�Y�Graph��not member�X�Path���

path��A��X�Y�Path���Graph�Path��adjacent�X�Y�graph�Nodes�Edges�� member�e�X�Y��Edges�!member�e�Y�X��Edges��

Druh� algoritmus je obdoba p�ede�l�ho� Hled�me libovolnou cestu z jednoho vrcholu do druh�ho a jej� cenu v ohod�nocen�m neorientovan�m grafu� Po adovan� reprezentace grafu plyne z tvaru predik�tu adjacent� Po �prav tohotopredik�tu lze program transformovat na libovolnou reprezentaci ohodnocen�ho $ne%orientovan�ho grafu�

path�A�Z�Graph�Path�Cost� path��A��Z����Graph�Path�Cost��path��A��A�Path���Cost��Graph��A�Path���Cost���path��A��Y�Path���Cost��Graph�Path�Cost� adjacent�X�Y�CostXY�Graph��

not member�X�Path���Cost� is Cost� CostXY�path��A��X�Y�Path���Cost��Graph�Path�Cost��

adjacent�X�Y�CostXY�Graph� member�XY�CostXY�Graph�!member�YX�CostXY�Graph��

�� Kostra grafu

Dal��m d�le it�m grafov�m algoritmem je konstrukce kostry grafu� Proto si jej zde tak� uvedeme�

stree�Graph�Tree� member�Edge�Graph��spread��Edge��Tree�Graph��spread�Tree��Tree�Graph� addedge�Tree��Tree��Graph��spread�Tree��Tree�Graph��spread�Tree�Tree�Graph� not addedge�Tree���Graph��addedge�Tree��AB�Tree��Graph� adjacent�A�B�Graph��node�A�Tree��

not node�B�Tree��adjacent�A�B�Graph� member�AB�Graph�!member�BA�Graph��node�A�Graph� adjacent�A���Graph��

Page 13: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

� Prohled�v�n� stavov�ho prostoru

Prohled�v�n� stavov�ho prostoru je jednou z nejz�kladnj��ch metod Uml� inteligence� S t�mto p��stupem u jsme se��ste�n sezn�mili u probl�mu osmi dam� Tak e v�me o co jde� tedy s chut� do toho�

�� Prohled�v�n� stavov�ho stromu

Z�kladem v�ech prohled�vac�ch algoritm� je tato kostra� kter� hled� vrchol N a v p��pad �spchu vr�t� i cestu� kter�ke hledan�mu vrcholu vede�

solve�N��N�� goal�N��solve�N��N�Sol��� s�N�N���solve�N��Sol���

Predik�t goal�N� uspje� pokud N je hledan� �e�en�� Ve vt�in dal��ch program� budeme de(nici tohoto predik�tuponech�vat na kone�n�m u ivateli�

Predik�t s�m�n� uspje� pokud �m�n� je hrana stavov�ho stromu�

�� Prohled�v�n� do hloubky

Nejprve si v tomto odstavci uvedeme nejjednodu��� verzi prohled�v�n� do hloubky��

solve�Node�Solution� depth�first�search����Node�Solution��depth�first�search�Path�Node��Node�Path�� goal�Node��depth�first�search�Path�Node�Sol� s�Node�Node���

not member�Node��Path��depth�first�search��Node�Path��Node��Sol��

V��e uveden� program je korektn� jen zd�nliv� Lze jej pou �t pouze na prohled�v�n� do hloubky pouze u kone�n�chgraf�� Jednoduch�m p�id�n�m �zar� ky� v predik�tu depth�first�search jej v�ak lze transformovat na korektn�program�

Konstruujme tedy predik�t depth�first�search�� kter� pokud neuspje do ur�it� dosa en� hloubky� pak skon��ne�spchem�

depth�first�search��Node��Node���� goal�Node��depth�first�search��Node��Node�Sol��MaxDepth� MaxDepth���s�Node�Node���

Max� is MaxDepth��depth�first�search��Node��Sol�Max���

� Prohled�v�n� do ��ky

Bhem prohled�v�n� do ���ky� si mus� program uchov�vat v�echny rozpracovan� cesty z ko�ene do ka d�ho vrcholuv dan� �rovni od ko�ene�

Tedy postup p�i prohled�v�n� stromu z obr� � bude tedy vypadat takto!

�� ��a��

�� ��b�a���c�a��

� ��c�a���d�b�a���e�b�a��

�� ��d�b�a���e�b�a���f�c�a���g�c�a��

�� ��h�d�b�a���i�d�b�a���j�e�b�a������

Ne za�neme ps�t algoritmus prohled�v�n� do ���ky� zopakujme si je�t �innost vestavn�ho prologovsk�ho predik�tubagof�X�P�L�� Tento predik�t postupn vyhodnocuje P a v�echny vyhovuj�c� instance X �ad� do seznamu L�

�Obvykle je tento algoritmus uv�d�n pod n�zvem �Depth First Search��Prohled�v�n� do ��ky se obvykle nazv� �Breadth First Search�

Page 14: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

�� �� PROHLED�V�N� STAVOV HO PROSTORU

h i j k p p pd e f g

cb

a������

HHHHj

���

��R

� JJ� � JJ�

� JJ�

Obr�zek �! Strom prohled�v�n� do ���ky

solve�Start�Solution� breadth�first�search���Start���Solution��breadth�first�search���Node�Path������Node�Path�� goal�Node��breadth�first�search���N�Path��Paths��Solution�

bagof��M�N�Path���s�N�M��not member�M��N�Path����NewPaths��not NewPaths����append�Paths�Newpaths�Path�����breadth�first�search�Path��Solution�!breadth�first�search�Paths�Solution��

append����L�L��append��X�L���L���X�L��� append�L��L��L���

Poznamenejme je�t� e oper�tor ��� m� prioritu p�ed oper�torem �!�� t� j� implicitn� z�vorkov�n� predik�tu

p a�b!c�

je

p �a�b�!c�

Predik�t append tak� jak je zde de(nov�n v�ak svoj� slo itost� zp�sobuje velkou slo itost cel�ho algoritmu� Protosi zde uvedeme �e�en�� kter� je zalo eno na rozd�lov�ch seznamech� Princip si uve me na p��kladu predik�tu concat�kter� v jednom kroku spoj� dva �etzce do jednoho!

concat�A�Z��Z�Z��A�Z���

Dotazem concat��a�b�c�T��T���d�e�T��T��List���� pak obdr �me rovnou v promnn� List hledan� seznam�

solve�Start�Solution� bfs���Start��Z�Z�Solution��bfs���Node�Path�������Node�Path�� goal�Node��bfs���N�Path��Paths�Z�Solution�

bagof��M�N�Path���s�N�M��not member�M��N�Path����New��append�New�ZZ�Z����bfs�PathsZZ�Solution�!Paths���Z�bfs�PathsZ�Solution��

Algoritmus prohled�v�n� do ���ky� jak jsme jej zde uvedli� m� velik� n�roky na pam'�� Proto si zde uve me je�tjedno �e�en� Breadth First Search� kter� pam' �et���

V p�ede�l�ch �e�en�ch jsme rozpracovan� cesty ukl�dali v seznamu v�ech rozpracovan�ch cest� T�m doch�zelok tomu� e ji ve � �rovni prohled�v�n� byl ko�en stromu ulo en v tomto seznamu �ty�ikr�t� V n�sleduj�c�m �e�en�tuto redundanci odstran�me t�m� e zavedeme pro ka d� vrchol� kter�m prohled�v�n� pro�lo� strukturu!

� bu l�N�� pokud je N v sou�asn� dob list)

� nebo t�N�Subs�� kde Subs je seznam syn� vrcholu N�

�Nebo� mus� udr�ovat v�echny rozpracovan� cesty

Page 15: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

��� Nalezen� nejlep�� cesty ��

Tak e se n�m nap�� seznam

��d�b�a���e�b�a���f�c�a���g�c�a��

�smr�t�� do struktury

t�a��t�b��l�d��l�e����t�c��l�f��l�g�����

Z�kladem n�sleduj�c�ho programu je predik�t expand� Funkci predik�tu

expand�Path�Tree�Tree��Solved�Solution��

demonstruje obr� ���

Tree�

� uSolution

Tree��

� ��������R

S

Path

�������

�����

Obr�zek ��! Princip chov�n� predik�tu expand

A nyn� si uve me vlastn� program!

solve�Start�Solution� breadth�first�search�l�Start��Solution��breadth�first�search�Tree�Solution� expand����Tree�Tree��Solved�Solution��

�Solved�yes!Solved�no�breadth�first�search�Tree��Solution���expand�P�l�N����yes��N�P�� goal�N��expand�P�l�N��t�N�Subs��no��� bagof�l�M���s�N�M��not member�M�P���Subs��expand�P�t�N�Subs��t�N�Subs���Solved�Sol� expandall��N�P��Subs����Subs��Solved�Sol��expandall�������T�Ts���T�Ts��no����expandall�P��T�Ts��Ts��Subs��Solved�Sol� expand�P�T�T��Solved��Sol��

�Solved��yes�Solved�yes!Solved��no���expandall�P�Ts��T��Ts���Subs��Solved�Sol��!expandall�P�Ts�Ts��Subs��Solved�Sol��

� Nalezen� nejlep � cesty

V tomto odstavci se budeme zab�vat probl�mem nalezen� nejlep�� cesty� ve stromu vzhledem k njak�mu ohodnocen�hran c tohoto stromu� Tento algoritmus� jak uvid�me d�le� bude pro n�s z�kladem pro tzv� prohled�v�n� stavovhoprostoru�

Pro rozpracovan� cesty� resp� pro nav�t�ven� uzly� budeme uchov�vat cenu� kterou jsme museli zaplatit� ne jsmedo nj do�li � g� D�le u ka d�ho uzlu budeme uchov�vat odhad ceny� kterou zaplat�me p�i p�echodu do n�sleduj�c�houzlu � h� V dal��m postupu se pak budeme v uzlu n rozhodovat podle nejmen��ho f�n� � g�n� � h�n��

�� Budeme uchov�vat strukturu l�N�F�G� pro uzel n� kter� je moment�ln list a kde G&g�n� a F&f�n��

�� Budeme uchov�vat strukturu t�N�F�G�Subs� pro uzel n� kter� je vnit�n�m uzlem stromu prohled�v�n�� Subsjsou $nepr�zdn�% podstromy� uspo��d�ny podle f �hodnot� G m� t� v�znam jako v p�edchoz�m bod a F je�inovovan�� f �hodnota uzlu n� t�j� f �hodnota nejnadjnj��ho� n�sledn�ka uzlu n�

�Nalezen� nejlep�� cesty je obvykle ozna nov�no jako Best Search�Exaktn� e eno� je�li T strom s koenem n� jeho� n�sledn�ky jsou m��m�� � � � � pak f�T � � mini�f�mi���

Page 16: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

�� �� PROHLED�V�N� STAVOV HO PROSTORU

A nyn� vlastn� program!

bestsearch�Start�Solution� biggest�Big�� expand����l�Start������Big���yes�Solution��expand�P�l�N��������yes��N�P�� goal�N��expand�P�l�N�F�G��Bound�Tree��Solved�Sol� F��Bound�

�bagof�M�C��s�N�M�C��not member�M�P���Succ����succlist�G�Succ�Ts��bestf�Ts�F���expand�P�t�N�F��G�Ts��Bound�Tree��Solved�Sol�!Solved�never��

expand�P�t�N�F�G��T�Ts���Bound�Tree��Solved�Sol� F��Bound� bestf�Ts�BF��min�Bound�BF�Bound���expand��N�P��T�Bound��T��Solved��Sol��continue�P�t�N�F�G��T��Ts���Bound�Tree��Solved��Solved�Sol��

expand���t�������������never��� ��expand���Tree�Bound�Tree�no��� f�Tree�F�� F�Bound�continue���������yes�yes�Sol��continue�P�t�N�F�G��T��Ts���Bound�Tree��Solved��Solved�Sol�

�Solved�no�insert�T��Ts�NTs�!Solved�never�NTs�Ts��bestf�NTs�F���expand�P�t�N�F��G�NTs��Bound�Tree��Solved�Sol��

succlist����������succlist�G���N�C�NCs��Ts� G is G� C�h�N�H��F is G H�succlist�G��NCs�Ts���

insert�l�N�F�G��Ts��Ts��insert�T�Ts��T�Ts�� f�T�F��bestf�Ts�F���F��F����insert�T��T��Ts���T��Ts��� insert�T�Ts�Ts���f�l���F����F��f�t���F������F��bestf��T����F� f�T�F��bestf����Big� biggest�Big��min�X�Y�X� X��Y���min�X�Y�Y��

Predik�t biggest�Big� nainstanciuje promnnou Big na hodnotu p�edpokl�dan� horn� z�vory pro cenu nejlep��cesty�

Pro zjednodu�en� �etby algoritmu je�t uve me v�znam jednotliv�ch parametr� predik�tu expand�

� P * cesta mezi ko�enem a T

� T * prohled�van� podstrom

� B * f �limita $hranice% pro expandov�n� T

� T� * T expandovan� v z�vislosti na B $t�j� prvn�� kde f �hodnota �p�elezla� B%

� Solved * yes� no� never

� Solution* cesta z ko�ene do c�lov�ho uzlu

Poznamenejme je�t� e predik�t

� s�N�M�C� ud�v� cenu c� j� je ohodnocena hrana �n�m��

� h�N�H� je tzv� heuristick� odhad cesty�

�� Rozvrh pr�ce procesor�

Nyn� si zde uvedeme praktick� p��klad prohled�v�n� stavov�ho prostoru� Mjme �lohy t������ t�� jejich pot�ebn��as na zpracov�n� a precedenci �loh ukazuje obr� ���

Na��m �kolem je rozvrhnout zpracov�n� tchto �loh na t�ech procesorech� tak aby nebyla poru�ena precedence �loha p�i tom pot�ebn� celkov� �as byl minim�ln�� Dv mo n� �e�en� ukazuje obr� ���

Pov�imnme si� e pro n�s m� e nkdy b�t v�hodn�� kdy jeden $nebo v�ce% procesor$�% chv�li po�k� $idle%�Nyn� si tedy formalizujme a implementujme stavy a p�echody mezi tmito stavy!

Page 17: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

��� Rozvrh pr�ce procesor� ��

t���� t����t����t����

t��� t��� t���

QQ

QQ

QQ

Q

QQ

QQQ

QQ

QQQQ

Obr�zek ��! Precedence �loh

t�

t� idle

� � � � ��

t�

t� t�

t�

t�

t�

t�

t�

t�

t�

t�

t�

� � � � ��

Obr�zek ��! Rozvr en� pr�ce procesor�

neza"azen#�$lohy%za"azen#�$lohy%�as�ukon�en�

nap��

�Task��D��Task��D������%�Task��F��Task��F������%FinTime

kde D�� D����� jsou doby� pot�ebn� ke zpracov�n� p��slu�n� neza�azen� �lohy� a F�� F����� �asy ukon�en� za�azen�chproces��

P�echody mezi stavy si de(nujme takto!

s�Tasks�%���F�Active�%Fin��Tasks�%Active�%Fin��Cost� del�Task�D�Tasks��Tasks���not �member�T���Tasks���before�T�Task���not �member�T��F��Active���F�F��before�T��Task���Time is F D� insert�Task�Time�Active��Active��Fin��Fin���Cost is Fin�Fin��

s�Tasks%���F�Active��%Fin�Tasks%Active�%Fin��� insertidle�F�Active��Active���before�T��T�� prec�T��T���before�T��T�� prec�T�T���before�T��T��insert�S�A��T�B�L���S�A�T�B�L��F�F� A��B���insert�S�A��T�B�L���T�B�L���F��F�� insert�S�A�L�L��F��F���insert�S�A�����S�A����A��insertidle�A��T�B�L���idle�B�T�B�L�� A�B���insertidle�A��T�B�L���T�B�L��� insertidle�A�L�L���del�A��A�L��L��del�A��B�L���B�L��� del�A�L�L���goal���%�%���

Na tuto speci(kaci p�echod� mezi stavy lze pak pou �t algoritmus nalezen� nejlep�� cesty �Best Search�� Stav�z nj budeme startovat prohled�v�n�� bude vypadat takto!

Page 18: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

�� �� PROHLED�V�N� STAVOV HO PROSTORU

start��t����t����t����t�����t�����t�����t�����%�idle���idle���idle���%���

Nyn� si je�t uve me heuristiku� kter� n�s v tomto �e�en� �povede� spr�vn�m smrem� Uva me� e optim�ln�$nedosa iteln�% �as je!

Final �

Pi�Di� �

Pj�Fj�

m

kde m je po�et procesor�� D�le skute�n� �as v�po�tu v�ech �loh je!

Fin � maxj

�Fj�

Potom na�e heuristick� funkce h bude vypadat takto!

H �

�Finall� Fin� F inall � F in

� F inal � Fin

P��slu�n� predik�t h� kter� bude tuto heuristickou funcki po��tat� bude vypadat takto!

h�Tasks%Processors%Fin�H� totaltime�Tasks�TotTime��sumnum�Processors�Ftime�N��Finall is �TotTime Ftime��N��Finall�Fin���H is FinallFin!H����

totaltime�������totaltime����D�Tasks��T� totaltime�Tasks�T���T is T� D�sumnum���������sumnum����T�Procs��FT�N� sumnum�Procs�FT��N���N is N� ��FT is FT� T�prec�t��t���prec�t��t������

�� Pucl��ek

�Pucl��ek� je hra� podobn� �Patn�ctce��� Je jednodu��� v tom smyslu� e se nehraje s patn�cti kameny na plo�e �� ��ale s osmi kameny na plo�e �� � pol�� C�lem hry je posunovat kameny tak� a se dojde do situace� kter� je na obr� ��

� �

� � �

���

Obr�zek �! C�lov� situace hry Pucl��ek

My budeme k+dovat kon(gurace Pucl��ka do seznamu uspo��dan�ch dvojic X�Y� kde X je ��slo sloupce a Y ��slo��dku� Na prvn�m m�st seznamu bude poloha �d�ry� $t�j� neobsazen�ho pole% a pak postupn kamene �� �� kamene ����� � � � kamene �� �� C�lov� situace na hern� plo�e tedy pro n�s bude!

goal����������������������������������������

Nyn� si uve me predik�t� kter� $stejn jako v p�edchoz�m odstavci% de(nuje p�echody ze stavu do stavu!

s��Empty�L���T�L����� swap�Empty�T�L�L���swap�E�T��T�L���E�L�� d�E�T����swap�E�T��T��L���T��L��� swap�E�T�L�L���d�X�Y�X��Y��D� dif�X�X��Dx��dif�Y�Y��Dy��D is Dx Dy�dif�A�B�D� D is AB�D�����!D is BA�

�N�zev �Pucl� ek� si vymyslel pro tuto hru autor t�chto z�pisk�� Vych�z� z anglick�ho pojmenov�n� hry v patn�ct �Puzzle��

Page 19: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

��� AND�OR stromy ��

Abychom mohli opt vyu �t algoritmu �Best Search�� mus�me je�t nade(novat predik�t h� kter� bude ur�ovatheuristickou funkci� Pro tento p��klad je vhodn� hodnota heuristick� funkce ve stavu hry jako sou�et sumy vzd�lenost�v�ech kamen� od spr�vn� pozice a trojn�sobku �pokut�� Tedy!

H � �� ��

kde � je sou�et pokut� Pokuty se rozd�vaj� za!

� pozici uprost�ed � trestn� bod�

� poru�en� po�ad� � trestn� body�

� �

� � �

���

� � ����

Obr�zek ��! Pokuty ve h�e Pucl��ek

V p��kladu na obr� �� je � � �

h��Empty�L��H� goal��Empty��G���totdist�L�G�D��seq�L�S��H is D �%S�totdist����������totdist��T�L���T��L���D� d�T�T��D���totdist�L�L��D���D is D� D��seq��First�L��S� seq��First�L��First�S��seq��T��T��L��First�S� score�T��T��S���seq��T��L��First�S���S is S� S��seq��Last��First�S� score�Last�First�S��score��������� ��score����������� ��score����������� �����score����������� ��score��������

Na z�vr tohoto odstavce je�t p��klad� Algoritmus Best Search dovede s v��e uveden�mi predik�ty s a h situaciz obr� �� do v�tzn�ho konce v pti taz�ch� Ov�en� nech�v�me na laskav�m �ten��i�

� �

� � �

� � �

� �

Obr�zek ��! Tuto situaci Best Search zvl�dne v pti taz�ch

�� AND�OR stromy

Ne si za�neme pov�dat o AND�OR stromech� uve me se do problematiky pomoc� notoricky zn�m�ho p��kladu s Ha�noisk�mi v emi�

Page 20: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

�� �� PROHLED�V�N� STAVOV HO PROSTORU

� � � Hanoisk� v�e

Ka d� v�� co jsou to �Hanoisk� v e��� Zkusme se tedy na tento probl�m pod�vat analyticky�M�me t�i ty�e! A� B a C� Na ty�i A je $uspo��dan podle velikosti% nasunuto n kotou��� M�me za �kol je p�eskl�dat

z ty�e A pomoc� ty�e C na ty� B $stru�n zaps�no n�A�B�C�% bez poru�en� uspo��d�n� na jednotliv�ch ty��ch� Tentoprobl�m se v�ak d� rozlo it na tyto f�ze!

�� p�eskl�dat n� � kotou�� z ty�e A pomoc� ty�e B na ty� C�

�� p�elo it � kotou� z ty�e A na ty� B�

� p�eskl�dat n� � kotou�� z ty�e C pomoc� ty�e A na ty� B�

Kdy si to stru�n zap��eme� dostaneme rekurentn� vzorec� kter� probl�m p�eskl�d�n� n kotou�� p�evede na postupnp�eskl�d�n� n�� kotou��� p�elo en� jednoho kotou�e $co je v tomto p��pad pro n�s element�rn� probl�m% a p�eskl�d�n�n� � kotou���

Kdy si zakresl�me toto sch�ma $obr� ��%� dostaneme kone�n� strom� kter� m� v listech pouze element�r� probl�mya kter� pak projdeme postupn z leva do prava a t�m z�sk�me �e�en� cel�ho probl�mu s n kotou�i�

n��A�B�C�

��A�C�B�

n��C�B�A�

n��A�C�B������HHHHj� n��C�A�B� n��A�B�C�

��C�B�A�

n��C�B�A������HHHHj�

��A�B�C�

n�A�B�C�

���������XXXXXXXz

eee

Obr�zek ��! AND�OR strom hanoisk�ch v �

Nyn� si tedy hanoisk� v e naprogramujme v��e uveden�m zp�sobem� Poznamenejme je�t� e oper�tor to simus�me nade(novat�

hanoi���A�B�C��A to B���hanoi�N�A�B�C�Moves� N���N� is N��lemma�hanoi�N��A�C�B�Ms����

hanoi�N��C�B�A�Ms���append�Ms���A to B�Ms���Moves��lemma�P� P�asserta��P ����

� � � Cesta mezi msty

Nyn� si $opt na p��kladu% demonstrujme� co je to AND�OR strom� Mjme takov� probl�m� Na obr� �� je mapka� kter�n�m ur�uje� mezi kter�mi msty existuj� silnice� Msta a����� e jsou v ,ech�ch� msta u����� z jsou na Morav amsta k a l jsou hrani�n� p�echody� M�me za �kol naj�t co nejkrat�� cestu z msta a do msta z�

Uvdomme si� e p�i �e�en� tohoto probl�mu mus�me vz�t v potaz kl��ov� postaven� hrani�n�ch p�echod� k a l� Tozna��� e na�e �loha se t�m rozpadne na nalezen� cesty z a do nkter�ho hrani�n�ho p�echodu a z tohoto hrani�n�hop�echodu do z� AND�OR strom tohoto probl�mu je zobrazen na obr� ��� �e�en�m tohoto probl�mu je podstrom tohotoAND�OR stromu� kter� nevynech�v� �dn�ho n�sledn�ka AND�uzlu�

Prvn� �e�en�� kter� je nab�ledni� je �e�en� pomoc� prologovsk�ch prost�edk�� Pokud reprezentujeme ka d� OR�uzelv s n�sledn�ky u��u������uN pravidly!

v u��v u�����v uN�

a ka d� AND�uzel x s n�sledn�ky y��y������yM pravidlem!

�A kdo to nev�� a� tam b���

Page 21: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

��� AND�OR stromy ��

uupuu

����

��

u���u������uu

�����

�����

�������

���

��u

u u����

��

uab c

d e

kl

u v

x z

y

hranice

Obr�zek ��! Mapa mst

a�k f�z a�l l�z

via k via l

a�z�������

PPPPPPq

QQQs

QQQs

eeOR�uzel

AND�uzly

Obr�zek ��! P��klad AND�OR stromu

Page 22: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

�� �� PROHLED�V�N� STAVOV HO PROSTORU

x y��y������yM�

a pokud uzel root je ko�enem tohoto AND�OR stromu� pak dotazem!

root�

z�sk�me odpov na ot�zku� zda existuje �e�en��N�sleduj�c� zdrojov� text reprezentuje AND�OR strom z obr� ��� Poznamenejme je�t� e tu�n jsou na tomto

obr�zku ozna�eny c�lov� uzly a ostatn� uzly jsou zna�eny strojopisem�

d e f g

b c

a

h i

�������XXXXXXz

����HHHj

����HHHj

����HHHj

HHHj

e ee

Obr�zek ��! Trivi�ln� prohled�v�n� AND�OR stromu�

a b�a c�b d�e�e h�c f�g�f h�i�d�g�h�

Dotazem a� z�sk�me odpov yes� ale �e�en�� jako je zobrazeno na obr� �� v ��rkovan�m r�me�ku n�m stejnned��

� � � AND�OR strom

Ve v��e uveden�ch odstavc�ch jsme si uvedli p��klady AND�OR strom�� Lidsky �e�eno je AND�OR strom tedy strom�jeho ka d� vnit�n� uzel m� atribut� jeho hodnoty jsou AND a OR� P�i prohled�v�n� AND�OR stromu se OR�uzlychovaj� stejn jako u strom�� ale je nutn� p�i nm proj�t podstromy v�ech n�sledn�k� v�ech AND�uzl��

Abychom si l�pe mohli AND�OR stromy reprezentovat� zavedeme si tuto relaci!

a &� or�b�c��b &� and�d�e��

co zna��� e z uzlu a vedou dv hrany do uzl� b�c� p�i�em uzel a je OR�uzel� Podobn z b vedou dv hrany do uzl�d�e� p�i�em uzel b je AND�uzel�

Zavedeme tedy oper�tory!

op�����xfx�&��� op�����xfx���

N�� AND�OR strom z obr� �� bude tedy vypadat takto!

Page 23: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

��� AND�OR prohled�v�n� do hloubky �

a &� or�b�c��b &� and�d�e��c &� and�f�g��e &� or�h��f &� or�h�i��goal�d��goal�g��goal�h��

� � � Pozn�mka o priorit�ch oper�tor�

Predik�tem op m� eme de(novat oper�tory� Prvn� parametr op hl�s� prioritu oper�toru� t�et� parametr jeho identi(�k�tor� Druh� parametr ud�v� typ oper�toru podle tabulky ��

Poloha oper�toru Mo�nosti de�nicein(x xfx xfy yfxpre(x fx fypost(x xf yf

Tabulka �! P�ehled typ� oper�tor� v Prologu

V�raz Prolog vyhodnocuje takto! je�li argument v z�vork�ch nebo nestrukturovan�� pak m� precedenci rovnu�� Je�li argument struktura� pak m� precedenci rovnu precedenci oper�toru� P�itom x reprezentuje argument� jeho precedence je men�� $�%� ne precedence oper�toru a y reprezentuje argument� jeho precedence je men�� nebo rovna$�% precedenci oper�toru�

Uve me si to na p��kladu� Nech' m�me oper�tor poml�ka $% s precedenc� ��� a typu yfx� Pak v�raz abc�v nm se nejprve vyhodnot� ab typu yfx vyhovuje� kde to vyhodnocuje�li se nejprve bc� tomuto typu nevyhovuje�

Dodejme je�t na tomto m�st� e prologovsk� oper�tor pravidla je de(nov�n s nejvy��� mo nou prioritou� a totakto! op������xfx�''��

�� AND�OR prohled�v�n� do hloubky

Jeliko v�me� co je AND�OR strom� a v�me� co je prohled�v�n� do hloubky� m� eme rovnou ps�t algoritmus prohle�d�v�n� do hloubky pro AND�OR stromy�

solve�Node�Node� goal�Node��solve�Node�Node &� Tree� Node &� orNodes�member�Node��Nodes��

solve�Node��Tree��solve�Node�Node &� andTrees� Node &� andNodes�solveall�Nodes�Trees��solveall��������solveall��Node�Nodes���Tree�Trees�� solve�Node�Tree��solveall�Nodes�Trees��

� � � AND�OR prohled�v�n� do hloubky s ocenn�m

Prohled�v�n� do hloubky s ocenn�m si vy �d� tuto zmnu v reprezentace AND�OR strom�!

Uzel &� AndOr�Syn��Cena��Syn��Cena������SynN�CenaN��

Mimoto si pro ka d� uzel N de(nujeme hodnotu H�N� � odhad obt� nosti stromu �e�en�!

� H�N� � h�N� pro uzel N moment�ln listov�)

� H�N� � pro element�rn� probl�m)

� H�N� � mini �cost�N�Ni� �H�Ni�� pro OR�uzel N s n�sledn�ky N�� N�� � � � )

Page 24: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

�� �� PROHLED�V�N� STAVOV HO PROSTORU

� H�N� �P

i �cost�N�Ni� �H�Ni�� pro AND�uzel N s n�sledn�ky N�� N�� � � � )

D�le si nade(nujeme pro ka d� uzel N hodnotu F �N�!

� F �N� � h�N� pro uzel N moment�ln listov�)

� F �N� � pro element�rn� probl�m)

� F �N� � cost�M�N� �mini �F �Ni�� pro OR�uzel N s n�sledn�ky N�� N�� � � � a bezprost�edn�m p�edch�dcem M )

� F �N� � cost�M�N��P

i �F �Ni�� pro AND�uzel N s n�sledn�ky N�� N�� � � � a bezprost�edn�m p�edch�dcemM )

H a F jsou v podstat tyt� heuristick� funkce� ale F bude pro n�s v�hodnj���

� � � Demonstrace AND�OR prohled�v�n� s ocenn�m

Zde si demonstrujeme na nkolika obr�zc�ch postup AND�OR prohled�v�n� do hloubky� Budeme si jej demonstrovatna AND�OR stromu z obr� ���

Poznamenejme je�t� e ��slice ����� � � uv�dn� u jednotliv�ch hran reprezentuj� cenu hrany a ��slice ��������pod jednotliv�mi uzly p�edstavuj� moment�ln� F�hodnoty uzl��

d e f g

b c

a

h i

�������XXXXXXz

����HHHj

����HHHj

����HHHj

HHHj

e ee

� � � �

� �

Obr�zek ��! Demonstrace AND�OR prohled�v�n�

Expandovat strom z obr�zku �� za��n�me z ko�ene a a v�sledek expandov�n� je na obr� ��� Rozhodnut�� kter�z uzl� b� c budeme d�le expandovat� se uskute�n� podle minim�ln� aktu�ln� F�hodnoty� Jeliko F�b� � F�c�� budemed�le expandovat uzel b� V�sledek expandov�n� je na obr� ���

b c

a�������XXXXXXz

Obr�zek ��! F�b��� � F�c���

Na tomto obr�zku si v�imnme� jak se spo��t� F�b�� je�li b AND�uzel� Jeliko v F�hodnot�ch uzl� b a c nastalanyn� rovnost� m� eme pokra�ovat v expandov�n� uzlu e� jak ukazuje obr� ��

Zde v�ak ji F�hodnota uzlu b p�ev��ila F�hodnotu uzlu c� tak e za�neme expandovat uzel c� proto e se �tv����jako nadjnj���

V�sledn� prohledan� AND�OR strom ukazuje obr� ��� Kone�n� F�hodnota ko�ene a je tak� v�sledn� cena nejlep��ho�e�en� AND�OR stromu�

Page 25: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

��� AND�OR prohled�v�n� do hloubky ��

d e

b c

a�������XXXXXXz

����HHHje

� ��

Obr�zek ��! F�b� � � � F�c�

d e

b c

a

h

�������XXXXXXz

����HHHj

HHHj

e�

� �

Obr�zek �! F�b��� � ��F�c�

d e f g

b c

a

h i

�������XXXXXXz

����HHHj

����HHHj

����HHHj

HHHj

e ee

� � � �

� � �

��

Obr�zek ��! AND�OR strom po AND�OR prohled�v�n�

�����CN

Obr�zek ��! P��klad listu AND�OR stromu

Page 26: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

�� �� PROHLED�V�N� STAVOV HO PROSTORU

� � � Datov� reprezentace AND�OR stromu

V n�sleduj�c�m si �ekneme� jak budou vypadat data pro AND�OR prohled�v�n� do hloubky� N budeme zna�it identi�(k�tor uzlu� C bude cena hrany do uzlu N� F bude p��slu�n� heuristick� F�hodnota tohoto uzlu�

List AND�OR stromu $obr� ��% bude reprezentovat struktura leaf�N�F�C�� P��slu�n� hodnota F � C h�N��

OR�uzel AND�OR stromu $obr� ��% bude reprezentovat struktura tree�N�F�C�or�T��T��T�������� P��slu�n� hod�nota F � C mini Fi�

��

����

ZZZZZ�

�C

N

T� T� T� � � �F� F� F�

���� ���� ����

Obr�zek ��! P��klad OR�uzlu AND�OR stromu

AND�uzel AND�OR stromu $obr� ��% bude reprezentovat struktura tree�N�F�C�and�T��T��T�������� P��slu�n�hodnota F � C

Pi Fi�

��

����

ZZZZZ�

�C

N

T� T� T� � � �F� F� F�

e���� ���� ����

Obr�zek ��! P��klad AND�uzlu AND�OR stromu

Roz�e�en� list AND�OR stromu $obr� ��% bude reprezentovat struktura solvedleaf�N�F� a p��slu�n� hodnotaheuristick� funkce F � C�

�����CN

Obr�zek ��! P��klad roz�e�en�ho listu AND�OR stromu

Roz�e�en� OR�uzel AND�OR stromu $obr� ��% bude reprezentovat struktura solvedtree�N�F�T�� kde p��slu�n�hodnota F � C F��

Page 27: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

��� AND�OR prohled�v�n� do hloubky ��

�C

N

TF�

����

Obr�zek ��! P��klad roz�e�en�ho OR�uzlu AND�OR stromu

Roz�e�en� AND�uzel AND�OR stromu $obr� �% bude reprezentov�n� jak ji piln� �ten�� tu��� strukturou tohototvaru! solvedtree�N�F�and�T��T������� a jeho p��slu�n� hodnota F � C

Pi Fi�

��

����

ZZZZZ�

�C

N

T� T� T� � � �F� F� F�

e���� ��������

Obr�zek �! P��klad roz�e�en�ho AND�uzlu AND�OR stromu

� � � Vlastn� program

Program p�edpokl�d� existenci oper�tor�!

op�����xfx��� op�����xfx�&���

andor�Node�Solution�Tree� expand�leaf�Node�����������SolutionTree�yes��

((((((((( expand�Tree�Bound�NewTree�Solved�� (((((((((((((((((expand�Tree�Bound�Tree�no� f�Tree�F��F�Bound���expand�leaf�Node�F�C����solvedleaf�Node�F��yes� goal�Node����expand�leaf�Node�F�C��Bound�NewTree�Solved� expandnode�Node�C�Tree�����

expand�Tree��Bound�NewTree�Solved�!Solved�never���expand�tree�Node�F�C�SubTrees��Bound�NewTree�Solved� Bound� is BoundC�

expandlist�SubTrees�Bound��NewSubs�Solved���continue�Solved��Node�C�NewSubs�Bound�NewTree�Solved��

expandlist�Trees�Bound�NewTrees�Solved� selecttree�Trees�Tree�OtherTrees�Bound�Bound���expand�Tree�Bound��NewTree�Solved���combine�OtherTrees�NewTree�Solved��NewTrees�Solved��

continue�yes�Node�C�SubTrees���solvedtree�Node�F�SubTrees��yes� backup�SubTrees�H�� F is C H���

continue�never�����������never� ��continue�no�Node�C�SubTrees�Bound�NewTree�Solved� backup�SubTrees�H��

Page 28: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

�� �� PROHLED�V�N� STAVOV HO PROSTORU

F is C H���expand�tree�Node�F�C�SubTrees��Bound�NewTree�Solved��combine�or��Tree�yes�Tree�yes� ��combine�orTrees�Tree�no�orNewTrees�no� insert�Tree�Trees�NewTrees����combine�or�����never���never� ��combine�orTrees���never�Trees�no� ��combine�andTrees�Tree�yes�and�Tree�Trees��yes� allsolved�Trees����combine�and����never���never� ��combine�andTrees�Tree�YesNo�andNewTrees�no� insert�Tree�Trees�NewTrees����expandnode�Node�C�tree�Node�F�C�OpSubTrees�� Node &� OpSuccessors�

evaluate�Successors�SubTrees��backup�OpSubTrees�H��F is C H�evaluate��������evaluate��Node�C�NodesCosts��Trees� h�Node�H��F is C H�evaluate�NodesCosts�Tree���

insert�leaf�Node�F�C��Tree��Trees��allsolved�����allsolved��Tree�Trees�� solved�Tree��allsolved�Trees��solved�solvedtree���������solved�solvedleaf�������f�Tree�F� arg���Tree�F����insert�T�����T�� ��insert�T��T��Ts���T�T��Ts�� solved�T�����insert�T��T��Ts���T��Ts��� solved�T��insert�T�Ts�Ts�����insert�T��T��Ts���T�T��Ts�� f�T�F��f�T��F���F��F����insert�T��T��Ts���T��Ts��� insert�T�Ts�Ts���backup�or�Tree����F� f�Tree�F����backup�and����� ��backup�and�Tree��Trees��F� f�Tree��F���backup�andTrees�F���F is F� F����backup�Tree�F� f�Tree�F��selecttree�Op�Tree��Tree�Op���Bound�Bound� ��selecttree�Op�Tree�Trees��Tree�OpTrees�Bound�Bound�� backup�OpTrees�F��

�Op�or���min�Bound�F�Bound��!Op�and�Bound� is Bound F��min�A�B�A� A�B���min�A�B�B��

� � Hled�n� cesty mezi msty

Vra'me se je�t k p��kladu uv�dn�mu v odstavci ����� Reprezentace takov� mapy by mohla vypadat tak� e ka douspojnici dvou mst by reprezentoval predik�t s�City��City��� Kl��ov� postaven� msta $nap�� postaven� hrani�n�hop�echodu z odstavce ����% by reprezentoval predik�t key�City�City��City��� jeho s�matika by mla tento v�znam!

Msto City� m� kl��ov� postaven� mezi msty City� a City��

Vlastn� vyhled�v�n� by pak vypadalo takto!

�� Jsou�li Y�� Y����� kl��ov� body mezi msty A a Z� pak hledej jednu z cest!

� cestu z A do Z p�es Y�

� cestu z A do Z p�es Y�

� � � �

�� Nen��li mezi msty A a Z kl��ov� msto� pak hledej souseda Y msta A takov�ho� e existuje cesta z Y do Z�

Te si uk� eme� jak budeme konstruovat p��slu�n� AND�OR strom� Budeme pot�ebovat oper�tory �� a �via�!

XZXZ via Y op�����xfx�via��

Nebo� ka�d� z nich le�� na jin� stran� hranice�

Page 29: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

��� Algoritmy soupe��c�ho prohled�v�n� ��

AND�OR strom� kter� bude reprezentovat tento probl�m� bude vypadat takto!

XZ &� orProblemlist bagof��XZ via Y����key�XZ�Y��Problemlist����XZ &� orProblemlist bagof��YZ��D�s�X�Y�D��Problemlist��XZ &� and��XY�����YZ�����goal�XX���% h�Node�H�� ��� heuristick� funkce %�

Plat�� e kdy

�n h�n� � h��n�

kde h� je heuristika� kter� ur�� minim�ln� cenu �e�en� uzlu n� pak najdeme v dy nejlep�� �e�en��

�� Algoritmy soupe��c�ho prohled�v�n�

� � � Minimax

Typickou �lohou prohled�v�n� stavov�ho prostoru se soupe��c� strategi� je hled�n� nejlep��ho mo n�ho tahu v �achu� tzv�Minimax�� Ka d� tah je ohodnocen� njakou heuristickou funkc�� p�i�em tento algoritmus vyhled�v� �optim�ln��tah� V z�vislosti na tom� zda �jsem na tahu j�� resp� zda �je na tahu soupe��� vyb�r� algoritmus tah ohodnocen�maxim�ln� resp� minim�ln� hodnotou heuristick� funkce�

N�sleduj�c� predik�t minmax bude prov�dt prohled�v�n� pr�v popsan�m zp�sobem� Nebudeme zde de(novatpredik�t moves�Pos�PosList�� kter� pro vstupn� parametr Pos vr�t� seznam mo n�ch poz�c�� do nich se lze dostatz pozice Pos jedn�m tahem� Predik�t staticval�Pos�Val� vr�t� �statickou� hodnotu pozice� z n� ji neexistuje mo n�tah� nebo z n� ji nebudeme dal�� tahy prom��let��� D�le budeme de(novat predik�t min�to�move�Pos�� kter� uspje�pokud �je na tahu soupe��� a max�to�move�Pos�� kter� uspje� pokud �jsem na tahu j���

minmax�Pos�BestSucc�Val� moves�Pos�PosList����best�PosList�BestSucc�Val�!staticval�Pos�Val��

best��Pos��Pos�Val� minmax�Pos���Val����best��Pos��PosList��BestPos�BestVal� minmax�Pos����Val���

best�PosList�Pos��Val���betterof�Pos��Val��Pos��Val��BestPos�BestVal��betterof�Pos��Val��Pos��Val��Pos��Val�� min�to�move�Pos���Val��Val���!

max�to�move�Pos���Val��Val����betterof�Pos��Val��Pos��Val��Pos��Val���

Poznamenejme na z�vr� e minmax�Pos�BestSucc�Val� vezme pozici Pos a vr�t� nejlep�� mo n� tah BestSucc�jeho heuristick� hodnota je Val�

� � � Alfa�Beta procedura

P�i prov�dn� predik�tu minmax se hodnota heuristick� funkce pohybuje v njak�m intervalu h�� �i� Z toho plyne� ev pr�bhu prov�dn� algoritmu m� eme �od��znout� podstromy� v nich heuristick� funkce �p�eleze� � nebo �podleze���

Nyn� tedy budeme po��tat �zptnou vazbu� V�P�� kde P je to� co vr�t� predik�t minmax� Tuto zptnou vazbubudeme �za�ez�vat� podle n�sleduj�c� tabulky!

V�P�Alpha�Beta� � Alpha if V�P� � AlphaV�P�Alpha�Beta� � V�P� if Alpha � V�P� � BetaV�P�Alpha�Beta� � Beta if V�P� � Beta

Kdy bychom po��tali V�P����� dostaneme p�esn V�P��

�Zde se samozejm� nebude jednat o zn�m has�c� p�stroj� ale o algoritmus� kter pracuje na z�klad� minim�ln� resp� maxim�ln� hodnotyheuristick� funkce� Spr�vn� by tedy m�l bt pojmenov�n �Minmax�� ale �Minimax� m� v sob� v�ce ���vy�

��Predik�t staticval slou�� jinmi slovy k tomu� aby byl spln�n po�adavek kone nosti prohled�vac�ho stromu�

Page 30: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

� �� PROHLED�V�N� STAVOV HO PROSTORU

alphabeta�Pos�Alpha�Beta�GoodPos�Val� moves�Pos�PosList����boundedbest�PosList�Alpha�Beta�GoodPos�Val�!staticval�Pos�Val��

boundedbest��Pos�PosList��Alpha�Beta�GoodPos�GoodVal� alphabeta�Pos�Alpha�Beta���Val��goodenough�PosList�Alpha�Beta�Pos�Val�GoodPos�GoodVal��

goodenough��������Pos�Val�Pos�Val� ��goodenough���Alpha�Beta�Pos�Val�Pos�Val� min�to�move�Pos��Val � Beta��!

max�to�move�Pos��Val � Alpha���goodenough�PosList�Alpha�Beta�Pos�Val�GoodPos�GoodVal�

newbounds�Alpha�Beta�Pos�Val�NewAlpha�NewBeta��boundedbest�PosList�NewAlpha�NewBeta�Pos��Val���betterof�Pos�Val�Pos��Val��GoodPos�GoodVal��

newbounds�Alpha�Beta�Pos�Val�Val�Beta� min�to�move�Pos��Val � Alpha���newbounds�Alpha�Beta�Pos�Val�Alpha�Val� max�to�move�Pos��Val � Beta���newbounds�Alpha�Beta�����Alpha�Beta��betterof�Pos�Val�Pos��Val��Pos�Val� min�to�move�Pos��Val � Val���!

max�to�move�Pos��Val � Val����betterof�Pos�Val�Pos��Val��Pos��Val���

Obr�zek � ukazuje p��klad stromu� kter� zpracuje predik�t minmax� V ��rkovan�ch r�me�c�ch jsou podstromy� kter��za��zne� predik�t alphabeta� nebo' na jejich heuristick�ch hodnot�ch v�bec nez�le �� Proto je alfa�beta proceduraefektivnj�� variantou �minimaxu��

� ��

� j�

� �

� j jj���XXz���XXz���XXz���XXz

� �

����HHHHj

����HHHHj

�������XXXXXXz

MAX

MIN

MAX

MIN

Obr�zek �! Za��znut� Alfa�Beta procedurou

Page 31: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

� Expertn� syst�my

�� Pattern�directed programming

Motivuj�c� obr�zek k tzv� pattern�directed programov�n� ukazuje obr� �� Mno inu tzv� modul� obklopuje tzv� sv�tdat $dataworld%� Tyto moduly maj� schopnost � v p��pad jejich aktivace � zas�hnout a zmnit dataworld $prov�stoperaci nad daty%� Zp�sob uplatnn� jednotliv�ch modul� ukazuje obr� �

M�

M�

Moduly

DataWorld

Obr�zek �! Motivace k pattern�directed programming

Pattern Matching vybere z mno iny modul� )M��M������MN* ty moduly� kter� vyhovuj� ur�it�mu �vzoru�� t�j�kter� lze uplatnit vzhledem k aktu�ln�mu stavu dat� Pattern Matching nemus� vybrat pouze jeden uplatnn� schopn�modul) m� e vybrat nkolik� ba dokonce v�echny moduly�

Con�ict Resolution je prost�edek� kter� ze vhodn�ch modul� vybere pr�v jeden $nejl�pe ten nejv�hodnj��%�kter� je nakonec uplatnn a provede svoji Action nad daty�

Action on the DataWorld

Con�ict Resolution

Pattern Matching

M� M� MN��� Moduly

� � �

�� � �

Obr�zek ! Diagram uplat�ov�n� modul�

Jednotliv� moduly budeme zapisovat!

ConditionPart &� ActionPart�Condition��Condition������ &� �Action��Action������

K tomu si mus�me de(novat oper�tor &�!

op�����xfx�&���

Page 32: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

� �� EXPERTN� SYST MY

Algoritmus� kter� bude realizovat p��stup pattern�directed programming� je n�sleduj�c�!

run Condition &� Action�test�Condition��execute�Action��test�����test��First�Rest�� call�First��test�Rest��execute��stop�� ��execute���� run�execute��First�Rest�� call�First��execute�Rest��replace�A�B� retract�A����assert�B��

Uve me si nyn� p��klad� jak lze jednoduch� matematick� probl�m � nalezen� nejvt��ho spole�n�ho dlitele dvou��sel � �e�it pomoc� pattern�directed programming�

Klasick� speci(kace nalezen� nejvt��ho spole�n�ho dlitele dvou ��sel zn�!

pokud A � B opakujjestli+e A � B pak nahra, ��slo A ��slem A�B

jinak nahra, B ��slem B �A

nejv-t.��spole�n��d-litel je A �% nebo B %�

Pravidla� kter� pomoc� v tomto odstavci ji uveden�ho predik�tu run budou hledat NSD dvou ��sel� pak mohouvypadat takto!

�number X�number Y�X � Y� &� �NewX is XY�replace�number X�number NewX����number X� &� �write�X��stop��

Poznamenejme je�t� e oper�tor number je de(nov�n jako!

op�����fx�number��

�� Struktura expertn�ho syst�mu

Strukturu expertn�ho syst�mu� jeho vzniku a provozov�n� ukazuje obr� �� Experti z dan� oblasti daj� hlavy dohromady

Systemov� in�en�r

U�ivatelInferen�n� stroj

Znalostn� b�ze

Znalostn� in�en�r

Experti

�� ��

PPPPi

�����

Pracovn� pamt U�ivatelsk� rozhran�

��

expertiza

k/dov�n�

Obr�zek �! Struktura expertn�ho syst�mu

a vypadne z nich soubor znalost� � tzv� expertiza� Na tu sedne znalostn� in�en�r� kter� ji schroust� a vypadne z njznalostn� b�ze� Tu pak bude pou �vat inferen�n� stroj k tomu� aby mohl radit u ivatel�m� Provozn� sou��sti expertn�hosyst�mu� tedy inferen�n� stroj� pracovn� pam�� a u�ivatelsk rozhran� m� na starosti systmov� in�en�r�

Page 33: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

��� Dop�edn a zp�tn �et�zen�

� Dop�edn� a zp�tn� �et�zen�

� � � Druhy pravidel

Pravidla v pattern�directed programech mohou b�t dvoj�ho druhu!

� logick� pravidlo $diagn+za%� nap��!

IF family is albatros and color is darkTHEN bird is black footed albatros�

� operativn� pravidlo� nap��!

IF unplaced tv and couch on WALL�X� and WALL�Y� is opposite WALL�X�THEN place tv on WALL�Y��

� � � Dop�edn� a zptn� �etzen�

V teorii expertn�ch syst�m� rozezn�v�me dv strategie zpracov�n� dat�

� dop�edn� �etzen�!

Data �� Rules �� Conclusion

� zptn� �etzen�!

Subgoals �� Rules �� Goal

Tyto strategie jsou v�ak ve vt�in re�ln�ch expertn�ch syst�m� kombinov�ny podle druhu dat a tak� kv�li efek�tivnosti�

� � � Ukl�d�n� dat v expertn�ch syst�mech

Data v expertn�ch syst�mech ukl�d�me v r�zn�ch v�ce �i m�n �inteligentn�ch� struktur�ch� jako jsou fakty� relace�z�znamy�� � � Jednou z inteligentnj��ch struktur jsou tzv� r�mce� Obsahuj� jak�si rysy� kter� zn�me z objektov ori�entovan�ch programovac�ch jazyk�� zejm�na pak d�di�nost� P��klad uchov�n� dat o savc�ch� slonovi a opici ukazujeobr� ��

SAVCI

SLON OPICE

k��e nohy

kly velikost typ nohy velikost ocas

srst default�

st"edn� chlupat��

��

����

�����R

def��

velk� constraintafr! ind

Obr�zek �! P��klad struktury �r�mc��

Page 34: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

� �� ZP�TN �ET�ZEN�

Zptn� �etzen�

��� Naivn� expertn� syst�m

Zptn� �etzen� v podstat spo��v� v tom� e u ivatel zad� njakou hypot�zu a expertn� syst�m se sna � rozkl�dat tutohypot�zu na podprobl�my tak dlouho� dokud to nejsou element�rn� fakta� kter� zn�� nebo element�rn� fakta� na kter�se lze zeptat u ivatele� T�mto zp�sobem tedy vznik� strom� slo en� z!

� ko�enov�ch uzl�� kter� reprezentuj� hypot�zy $Goals%�

� mezilehl�ch uzl�� kter� reprezentuj� d�l�� hypot�zy�

� a listov�ch uzl�� kter� reprezentuj� element�rn� fakta a ot�zky u ivateli�

P��klad takov�ch uzl�!

k��� m����m����l����k���prvn��hypot#za��m��� beg�����l���!l�����end������m��� beg����l����l����m����end������m���d�l���hypot#za����l���ot�zka����

Dialog s u ivatelem by pak mohl vypadat takto!

l�X� l�X�Ot�� repeat�write�Ot��read�Odp���Odp�a�asserta�l�X� ��!Odp�n�asserta�l�X� ��fail�����fail!fail����

beg�X� asserta��m�X� ��fail���end�X� asserta�m�X� ���

Tento �naivn�� expertn� syst�m nepokl�d� dvakr�t tut� ot�zku a nepo��t� dvakr�t tyt� mezilehl� uzly�

� � Ukl�d�n� dat

Data se daj� ukl�dat takto!

atribut�hodnota�

nap��!

region�morava�

� � Dotazy u�ivateli

Chceme�li se zeptat u ivatele na barvu

color�X� ask�color�X��

K ulo en� informac� budeme pou �vat predik�t know�YesNo�Attr�Val�� Tak e predik�t ask m� eme ps�t!

ask�A�V� know�yes�A�V����ask�A�V� know���A�V����fail�ask�A�V� write�AV��write�' '��read�Y��asserta�know�Y�A�V���Y��yes�

Page 35: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

�� Jednoduch� �shell� �

� � V�cehodnotov� odpovdi

Je�li atribut A v�cehodnotov�� pak tato informace bude zaznamen�na v programov� datab�zi faktem!

multivaued�A��

K procedu�e ask potom je�t p�i�ad�me klauzuli!

ask�A�V� not multivalued�A��know�yes�A�V���V ��� V����fail�

Nyn� si je�t pro p��klad uve me dotaz na velikost!

size�X� menuask�size�X��large�plump�medium�small���menuask�A�V�Menuask� write�'What is the value for '��write�A��

write�' '��nl�write�Menuask��nl�read�X��check�val�X�A�V�Menuask��asserta�know�yes�A�X���X �� V�

check�val�X�A�V�MenuList� member�X�MenuList����check�val�X�A�V�MenuList� write�X��write�' is not legal value� Try again�'��

nl�menuask�A�V�MenuList��

��� Jednoduch� �shell�

top�goal�X� bird�X��solve abolish�know����top�goal�X��write�'The answer is '��write�X��nl�solve write�'No answer found�'��nl�go greeting�repeat�write�'�'��read�X��do�X��X �� quit�greeting write�'Enter load� consult or quit at the prompt�'��nl�do�load� load�kb���do�consult� solve���do�quit��do�X� write�X��write�' is not legal command�'��nl�fail�bird�black�footed�albatros� family�albatros��color�dark��family�albatros� order�tubemosa��size�large��wings�long�narrow��size�X� ask�size�X��size�X� menuask�size�X��large�plump�medium�small���

�� Faktor jistoty

Nkdy u ivatel neodhal� p�esn ve�ker� niance mezi povolen�mi hodnotami atributu $u velikosti t�eba nepozn�� co jep�esn my�leno pojmem velk� a co pojmem st"edn- velk� a jak� je mezi t�m rozd�l%� Proto zav�d�me tzv� faktorjistoty $zna��me cf a po��t�me s n�m v procentech%�

Samoz�ejm� nemus�me ohodnocovat faktorem jistoty jen odpovdi u ivatele� ale i pravidla� To proto� e totopravidlo sice plat�� ale ne �pln v dy� Pokud bychom chtli pou �t k dedukci pravidlo

IF byl jsem dnes v pr�ci THEN je Po� 0t� St� 1t nebo P�

co je ve valn� vt�in vt�in p��pad� zcela regulern�� Je�t ned�vno se v�ak �asto st�valo� e jsme �li na �� m�je dopr�vodu a tuto spont�nn� radost potom nadpracov�vali n�sleduj�c� sobotu� To znamen�� e nelze pou �t toto pravidlok dedukci jen tak� ale s p�ihl�dnut�m k tomu� e nemus� b�t korektn�� Proto m� eme ka d�mu pravidlu p�i�knout tak�jist� faktor jistoty�

T�m n�m v psan� expertn�ho syst�mu p�ibudou probl�my nav�c� Zejm�na!

� Jakou hodnotu cf stanovit jako prahovou�� pro pou it� pravidla v dedukci�

� Jak spo��tat ze zn�m�ho cf p�edpoklad� a zn�m�ho cf pravidla spr�vn� cf z�vru�

Tak� mus�me vy�e�it probl�m� jak vypo��tat cf pro B v p��padech!

��prahovou hodnotu� t�j� minimum pro to� aby bylo pravidlo pou�ito pro pedpoklad� v�t�inou se pou��v� hodnoty ���

Page 36: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

� �� ZP�TN �ET�ZEN�

� Pravidlo if A then B m� cfp roven �� a p�edpoklad A m� cfA roven ������

� Pravidlo if A then B m� cf roven �� a p�edpoklad A m� cf roven ���

� Pravidlo if A � B then C m� cfp a p�edpoklady A resp� B maj� cfA resp� cfB� Jak vypo��tat cfC z�vru C-

Tyto probl�my si vt�inou vy�e�� autor expertn�ho syst�mu podle sv�ho� proto e neexistuje �dn� na ���. ov�en��e�en�� o kter�m by bylo dok�z�no� e je nejspr�vnj��� Proto si zde uvedeme jedno z mnoha mo n�ch a pou �van�ch�

� cfA�B konjunkce p�edpoklad� A� B s faktory jistoty cfA� cfB spo�teme!

cfA�B � min�cfA� cfB�

� cfZ z�vru z faktoru jistoty pravidla cfP a faktoru jistoty p�edpoklad� cfA�B spo�teme!

cfZ �cfP � cfA�B

� � Kombinov�n� faktoru jistoty

V na�em expertn�m syst�mu s faktorem jistoty v�ak budeme pou �vat faktor jistoty s oborem hodnot v intervalu� �� � � �� Tento postup pou ili t� auto�i �sp�n�ho expertn�ho syst�mu v oblasti mediciny �Mycin�� Hodnota� zde reprezentuje stoprocentn� jistotu pozitivn� $�ur�ite ano�%� hodnota �� pak stoprocentn� jistotu negativn�$�ur�it ne�%�

Pro kombinaci dvou hodnot cf pak mus�me pou �t tyto vzorce!

� cf�X�Y � � X � Y ���X�� � pokud X�Y � �

� cf�X�Y � � � X Y� �min�jX j� jY j�� pokud �X � � �Y � ��

� cf�X�Y � � ���X � Y � X

�� pokud X�Y � �

� � Uchov�v�n� dat

Pro implementaci expertn�ho syst�mu se zptn�m �etzen�m a faktorem jistoty budeme uchov�vat tato data!

� rule�Name�LHS�RHS�� � � � pravidlo� kde LHS je lev� strana a RHS prav� strana pravidla� tedy tento predik�treprezentuje pravidlo!

Name IF LHS THEN RHS

� rhs�Goal�CF�� � � � prav� strana pravidla�

� lhs�GoalList�� � � � lev� strana pravidla�

� av�Attr�Val�� � � � reprezentuje hodnotu Val atributu Attr�

� fact�av�Attr�Val��CF�� � � � takto budeme ukl�dat do programov� datab�ze zn�m� podc�le�

� � Zdrojov� text

Zde si nyn� nade(nujeme predik�t findgoal�av�problem�X��CF�� kter� vy�e�� problem a vr�t� jeho hodnotu X afaktor jistoty CF� Tento predik�t uspje� pokud je hodnota atributu

� bu zn�ma�

� nebo odvozena z pravidel�

� nebo je t�eba polo it ot�zku u ivateli � v tom p��pad uspje predik�t askable�atribut�'Ot�zka'��

��Toto se obvykle e�� jednodu�e tak� �e pokud pedpoklady plat� s cf � ���� pak z�v�r pravidla z�sk� tent� cf� jako m� pravidlo�

Page 37: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

��� Faktor jistoty �

V r�mci tohoto predik�tu budeme t� de(novat predik�ty!

� prove� kter� prov�� lhs a najde CF�

� adjust� kter� zkombinuje lhs� rhs a CF�

� update� kter� obohat� pam' o nov� z�vry���

findgoal�av�Attr�Val��CF� fact�av�Attr�Val��CF����findgoal�av�Attr�Val��CF� not fact�av�Attr�������askable�Attr�Prompt��

query�user�Attr�Prompt����findgoal�av�Attr�Val��CF��query�user�Attr�Prompt� write�Prompt��read�Val��read�CF��

asserta�fact�av�Attr�Val��CF���findgoal�Goal�CurCF� fg�Goal�CurCF�� �% zkr�cen� n�zvu %�fg�Goal�CurCF� rule�N�lhs�IfList��rhs�Goal�CF���prove�IfList�Tally��

adjust�CF�Tally�NewCF��update�Goal�NewCF�CurCF��CurCF �� ������fg�Goal�CF� fact�Goal�CF��prove�IfList�Tally� prov�IfList�����Tally��prov����Tally�Tally��prov��H�T��CurTal�Tally� findgoal�H�CF��min�CurTal�CF�Tal��Tal �� ���

prov�T�Tal�Tally��min�X�Y�X� X �� Y���min�X�Y�Y� Y �� X�adjust�CF��CF��CF� X is CF� % CF� � ����int�round�X�CF��int�round�X�I� X �� ��I is integer�X �����int�round�X�I� X � ��I is integer�X �����update�Goal�NewCF�CF� fact�Goal�OldCF��combine�NewCF�OldCF�CF��

retract�fact�Goal�OldCF���asserta�fact�Goal�CF�����update�Goal�CF�CF� asserta�fact�Goal�CF���combine�CF��CF��CF� CF� �� ��CF� �� ��X is CF� CF� % ���� CF�������

int�round�X�CF��combine�CF��CF��CF� CF� � ��CF� � ��X is �CF� CF� % ���� CF��������

int�round�X�CF��combine�CF��CF��CF� �CF� � �!CF� � ����CF� � �!CF� � ���abs�min�CF��CF��MCF��

X is ��� % �CF� CF������� MCF��int�round�X�CF��

Pokud bychom chtli zn�t odpov na negovan� c�l� pak to provedeme n�sledovn!

findgoal�not Goal�NCF� findgoal�Goal�CF��NCF is CF���

Tady asi je�t nco chyb�

� � Super shell

Pro v��e speci(kovan� predik�t findgoal�� m� eme nyn� de(novat u ivatelsk� rozhran�� kter� pracovn nazvemesuper shell�

super repeat�write�'consult�load�exit'��nl�write�''��read�line�X��doit�X��X �� exit�

doit�consult� top�goals���doit�load� load�rules���doit�exit��top�goals top�goal�Attr��top�Attr��print�goal�Attr��fail�top�goals�top�Attr� findgoal�av�Attr�Val��CF����top��� true�

��Z�v�ry XVII� sjezdu spln�me a nepekaz� n�m to ��dn� imperialistick� rejdy ���

Page 38: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

� �� ZP�TN �ET�ZEN�

print�goal�Attr� nl�fact�av�Attr�X��CF��CF �� ���outp�av�Attr�X��CF��nl�fail�print�goal�Attr� write�'done with '��write�Attr��nl�outp�av�A�V��CF� output�A�V�PrintList��write�A 'cf' CF�� printlist�PrintList����outp�av�A�V��CF� write�A V 'cf' CF��printlist�����printlist��H�T�� write�H��printlist�T��

�� Trasov�n� expertn�ho syst�mu

Nkdy je pot�eba $zejm�na pro �ladn�� pravidel znalostn�m in en�rem% uchov�vat informace o bhu expertn�hosyst�mu� Jak n�� expertn� syst�m z odstavce ��� modi(kovat� aby spl�oval tento po adavek si uk� eme v tomtoodstavci�

K tomuto ��elu si nejprve nade(nujeme pot�ebn� predik�ty bugdisp� kter� vyp��e �trasovac� hl��ku� a set�trace�kter� vypne nebo zapne trasovac� re im expertn�ho syst�mu� D�le je�t obohat�me super shell o p��kaz trace�on�off�t�m� e p�id�me jedno pravidlo predik�tu doit�

bugdisp�L� ruletrace�write�line�L����bugdisp����write�line���� nl�write�line��H�T�� write�H��tab����write�line�T��doit�trace�X�� set�trace�X����set�trace�off� ruletrace�retract�ruletrace��set�trace�on� not ruletrace�asserta�ruletrace��set�trace����

Nyn� si uvedeme� jak� zmny mus�me prov�st ve zdrojov�m textu z odstavce ���� N�sleduj�c� zdrojov� text jev podstat ten sam� jako v odstavci ��� a �seky do nj p�idan� jsou prolo�eny�

findgoal�av�Attr�Val��CF� fact�av�Attr�Val��CF����findgoal�av�Attr�Val��CF� not fact�av�Attr�������askable�Attr�Prompt��

query�user�Attr�Prompt����findgoal�av�Attr�Val��CF��query�user�Attr�Prompt� write�Prompt��read�Val��read�CF��

asserta�fact�av�Attr�Val��CF���findgoal�Goal�CurCF� fg�Goal�CurCF�� �% zkr�cen� n�zvu %�fg�Goal�CurCF� rule�N�lhs�IfList��rhs�Goal�CF��� bugdisp� !Call rule!"N#$"

prove�IfList�Tally�� bugdisp� !Exit rule!"N#$"adjust�CF�Tally�NewCF��update�Goal�NewCF�CurCF��CurCF �� ������

fg�Goal�CF� fact�Goal�CF��prove�IfList�Tally� prov�IfList�����Tally��prove�N"�$ %& bugdisp� !Fail rule!"N#$"fail�prov����Tally�Tally��prov��H�T��CurTal�Tally� findgoal�H�CF��min�CurTal�CF�Tal��Tal �� ���

prov�T�Tal�Tally��min�X�Y�X� X �� Y���min�X�Y�Y� Y �� X�adjust�CF��CF��CF� X is CF� % CF� � ����int�round�X�CF��int�round�X�I� X �� ��I is integer�X �����int�round�X�I� X � ��I is integer�X �����update�Goal�NewCF�CF� fact�Goal�OldCF��combine�NewCF�OldCF�CF��

retract�fact�Goal�OldCF���asserta�fact�Goal�CF�����update�Goal�CF�CF� asserta�fact�Goal�CF���combine�CF��CF��CF� CF� �� ��CF� �� ��X is CF� CF� % ���� CF�������

int�round�X�CF��combine�CF��CF��CF� CF� � ��CF� � ��X is �CF� CF� % ���� CF��������

int�round�X�CF��

Page 39: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

��� Zp�sob z�sk�n� z�v�ru �

combine�CF��CF��CF� �CF� � �!CF� � ����CF� � �!CF� � ���abs�min�CF��CF��MCF��X is ��� % �CF� CF������� MCF��int�round�X�CF��

��� Zp�sob z�sk�n� z�v�ru

Nkdy je tak� nutn�� aby expertn� syst�m uml odpovdt nejen na danou ot�zku� ale tak� aby vysvtlil �sv�j my�len�kov� postup�� V �e�i zptn�ho �etzen� to znamen� s p��slu�nou odpovd� vr�tit i cestu ve strom zptn�ho �etzen��vedouc� k �e�en� probl�mu�

Za t�mto ��elem mus�me �roz���it� predik�t fact�� na fact��� kde t�et�m parametrem bude pr�v p��slu�n� cestak tomuto faktu!

fact�AV�CF�RuleList��

K tomuto c�li sta�� opt jen zmodi(kovat ji vytvo en� predik�t update� kter� bude do programov� datab�zeza�azovat n�� p�ede(novan� predik�t fact��� P�idan� fragmenty zdrojov�ho textu jsou opt prolo�eny�

update�Goal�NewCF�CF� RuleN� fact�Goal�OldCF� OldRules��combine�NewCF�OldCF�CF��retract�fact�Goal�OldCF� OldRules���asserta�fact�Goal�CF� RuleN�OldRules#�����

update�Goal�CF�CF� RuleN� asserta�fact�Goal�CF� RuleN#���

Po probhnut� takto modi(kovan�ho expertn�ho syst�mu z odstavce ��� pak m� eme obdr et odpov a zp�sobjej�ho dosa en� po zavol�n� tohoto predik�tu how�

how�Goal� fact�Goal�CF�Rules��CF � ���pretty�Goal�PG��write�line��PG�was�derrived�from�'rules'�Rules���nl�list�rules�Rules��fail�

how����how�not Goal� fact�Goal�CF�Rules��CF � ���pretty�not Goal�PG��

write�line��PG�was�derrived�from�'rules'�Rules���nl�list�rules�Rules��fail�pretty�av�A�yes���A�� ��pretty�not av�A�yes���not�A�� ��pretty�av�A�no���not�A�� ��pretty�not av�A�V���not�A�is�V���pretty�av�A�V���A�is�V���list�rules�����list�rules��R�X�� list�rule�R��list�rules�X��list�rule�N� rule�N�lhs�IfList��rhs�Goal�CF���write�line��'rule '�N���

write�line��'If'���write�ifs�IfList��write�line��'Then'���pretty�Goal�PG��write�line��' '�PG�CF���nl�

write�ifs�����write�ifs��H�T�� pretty�H�HP��tab����write�line�HP��write�ifs�T��

V p��pad� e bychom chtli� aby predik�t how uml komunikovat s u ivatelem� sta�� jej napsat takto!

how write�'Goal '��read�line�X��nl�pretty�Goal�X��how�Goal��

M� eme v�ak predik�t how za�lenit tak�ka okam it do super shellu� kdy do nj p�id�me klauzuli!

doit�how� how���

��� Zd�vodn�n� z�sk�n� z�v�ru

Nkdy tak� m� eme na expertn� syst�m kl�st je�t dal�� po adavek� Nemus� n�m sta�it cesta k �e�en�� ale tak� historie�kterou expertn� syst�m v dob sv�ho v�po�tu pro�el � tedy nejen �sp�n aplikovan� pravidla� ale i ta� kter� skon�ilane�spchem $fail%�

Page 40: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

�� �� ZP�TN �ET�ZEN�

findgoal�Goal�CurCF� Hist� fg�Goal�CurCF� Hist��fg�Goal�CurCF� Hist� rule�N�lhs�IfList��rhs�Goal�CF���

prove� N�IfList�Tally� Hist��adjust�CF�Tally�NewCF��update�Goal�NewCF�CurCF��CurCF �� ������

prove� N�IfList�Tally� Hist� prov�IfList�����Tally� N�Hist#�� '�prove�N"�"�"�$ %& bugdisp� !Fail rule!"N#$"fail�prov����Tally�Tally� Hist��prov��H�T��CurTal�Tally� Hist� findgoal�H�CF� Hist��min�CurTal�CF�Tal��Tal �� ���

prov�T�Tal�Tally� Hist��

Je�t n�m zb�v� do�e�it probl�m� jak vypsat historii�

get�user�X�Hist� repeat�write�''��read�line�X��process�ans�X�Hist��process�ans��why��Hist� nl�write�hist�Hist����fail�process�ans��trace�X���� set�trace�X����fail�process�ans��help���� help���fail�process�ans�X����write�hist���� nl�write�hist��goal�X��T�� write�line��goal�X�����write�hist�T��write�hist��N�T�� list�rule�N����write�hist�T��

Page 41: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

��

� Dop�edn� �etzen�

��� Principy

V pracovn� pam�ti expertn�ho syst�mu s dop�edn�m �etzen�m m�me pravidla tvaru!

left hand side �LHS� �� right hand side �RHS�

kde LHS je soubor podm�nek a RHS je soubor akc�� Na tato pravidla pak opakovan aplikujeme n�sleduj�c� postup!

�� V�br pravidla� jeho LHS uspje se sou�asn�m stavem pracovn� pamti)

�� Proveden� RHS pravidla $co vt�inou mn� stav pracovn� pamti%)

� Opakovat body � a �� dokud to lze�

V Prologu budeme pracovn� pam' dop�edn�ho �etzen� implementovat v programov� datab�zi� kam budeme ukl��dat pravidla v tomto tvaru!

rule �rule�id���N��condition������ ��� ��action�������

P��klad � �

rule id� �� has�X�pointed�teeth��� has�X�claws��� has�X�forward�eyes����� �retract�all��assert�isa�X�carnivore����

rule id�� �� isa�X�mammal��� isa�X�carnivore���has�X�black�stripes����� �retract�all��assert�isa�X�tiger����

rule id�� �� isa�Animal�Type��� parent�Animal�Child����� �retract����assert�isa�Child�Type����

Inicializa�n� soubor dat do pracovn� pamti expertn�ho syst�mu s dop�edn�m �etzen�m m� eme zapsat zavol�n�mpredik�tu initial�data���term������� nap��!

initial�data��gives�robie�milk��eats�meat�robie��������initial�data��read�facts���

��� Ilustrativn� p��klad s rozestavov�n�m n�bytku

V tomto odstavci si uvedeme p��klad pravidel pro rozestavov�n� n�bytku v m�stnosti�

rule ��� end�� read�facts� ��� �retract�all���rule ��� read�facts� ��� �prompt�'Attribute '�X��assert�X���rule f��� furniture�couch�LenC��position�door�DoorWall��

opposite�DoorWall�OW��right�DoorWall�RW��� wall�OW�LenOW��wall�RW�LenRW��LenOW �� LenRW�LenC �� LenOW�

��� �retract����assert�position�couch�OW���retract����NewSpace � LenOW LenC�assert�wall�OW�NewSpace����

rule f��� furniture�tv�LenTv��� position�couch�CW��� opposite�CW�W��� wall�W�LenW��LenW �� LenTv�

��� �retract����assert�position�tv�W���retract����NewSpace � LenW LenTv�assert�wall�W�NewSpace����

Page 42: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

�� (� DOP�EDN �ET�ZEN�

�� Expertn� syst�m s dop�edn�m �et�zen�m

V tomto odstavci uvedeme implementaci expertn�ho syst�mu s dop�edn�m �etzen�m� K tomu budeme pot�ebovatn�sleduj�c� oper�tory!

op�����xfx������ op����xfy��� op�����fx�rule��

K tmto oper�tor�m je�t p�ipoj�me inicializa�n� data� kter� budou slou it k demonstraci tohoto expertn�ho syst�mu�

asserta�fact�isa�robie�carnivore����

A nyn� ji slibovan� zdrojov� text!

�% dop"edn# "et-zen� %�go call�rule�IDLHS ��� RHS��try�LHS�RHS��write�'Rule fired '��write�ID��nl���go�go nl�write�done��nl�print�state�try�LHS�RHS� match�LHS��process�RHS�LHS��match���� ��match��NPrem�Rest�� ���fact�Prem�!test�Prem���match�Rest��match��Prem�Rest�� �fact�Prem�!test�Prem���match�Rest��test�X �� Y� X �� Y���test�X � Y� X is Y���test�X 2 Y� X � Y���test�member�X�Y�� member�X�Y����test�not �X�� fact�X����fail�process������ ��process��Action�Rest��LHS� take�Action�LHS��process�Rest�LHS��take�retract�N��LHS� �N �� all!integer�N���retr�N�LHS����take�A��� take�A��take�retract�X�� retract�fact�X�����take�assert�X�� asserta�fact�X���write�adding�X��nl���take�X 2 Y� X � Y���take�X � Y� X is Y���take�write�X�� write�X����take�nl� nl���take�read�X�� read�X����retr�all�LHS� retrall�LHS����retr�N���� write�'retract error� no'�N��nl���retr�N��NPrem���� retract�fact�Prem�����retr�N����Rest�� ��retr�N�Rest��retrall�����retrall��NPrem�Rest�� retract�fact�Prem�����retrall�Rest��retrall����Rest�� retrall�Rest��

�� Generov�n� kon�iktn�ch pravidel

� � � Kon�iktn� pravidla a jejich vznik

V dob bhu expertn�ho syst�mu s dop�edn�m �etzen�m m� e st�t� e p�i pattern matching m� e lev� stran ur�it�hopravidla odpov�dat v�ce fakt� v pracovn� pamti� Nap�� �matchuje�li� expertn� syst�m pravidlo

rule �������eats�X�meat������ ��� ���

a p�i tom v pracovn� pamti jsou tato fakta!

eats�robie�meat��eats�suzie�meat��

Page 43: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

(�� Generov�n� kon)iktn�ch pravidel �

pak mus�me je�t v pr�bhu tohoto matchingu ur�it� zdali se m� promnn� X uni(kovat s atomem robie �i s atomemsuzie� Proto je nutn� naj�t zp�sob� jak tuto kon)iktn� mno�inu vy�e�it�

V Prologu je $nkdy% vestavn� predik�t findall� kter� m� tuto de(nici!

findall�X�Goal�XList� call�Goal��assertz�stack�X���fail!assertz�stack�bottom���collect�XList��

collect�L� retract�stack�X������X � bottom���L���!L��X�Rest��collect�Rest���

Abychom mohli l�pe manipulovat s pravidly� zavedeme si predik�t r s aritou �� Predik�t conflict�set zkonstruujekon�iktn� mno inu!

conflict�set�CS� findall�r�Inst�ID�LHS�RHS���rule IDLHS ��� RHS�match�LHS�Inst���CS��

Jak jsem uvedli v��e� je nutn� kon�iktn� mno inu vy�e�it bhem matchingu� Proto mus�me modi(kovat predik�tmatch�

match������� ��match��NPrem�Rest���Prem�Time�IRest�� ���fact�Prem�Time�!test�Prem��Time����

match�Rest�IRest��match��Prem�Rest���Prem�Time�IRest�� �fact�Prem�Time�!test�Prem��Time����

match�Rest�IRest��assert�ws�fact�X�T�� getchron�T��asserta�fact�X�T���getchron�N� retract�chron�N��NN is N ��asserta�chron�NN�����

Pomoc� takto modi(kovan�ho predik�tu match nav�c ke ka d� polo ce LHS p�id�me �as jej�ho za�azen� $tzn� po�et�cykl�� expertn�ho syst�mu� kter� probhly od za�azen� faktu do pracovn� pamti%�

� � � LEX metoda

Princip t�to metody spo��v� v!

�� odkl�d�n� ur�it� pou it� instance�

�� up�ednost�ov�n� pravidla u �vaj�c�ho nej�erstvj�� fakta�

� up�ednost�ov�n� �speci(kovanj��ch� fakt��

go conflict�set�CS��select�rule�CS�r�Inst�ID�LHS�RHS���process�RHS�LHS��asserta�instantiation�Inst���write�'Rule fired '��write�ID��nl���go�

select�rule�CS�R� refract�CS�CS���lex�sort�CS���R�����refract��������refract��r�Inst��������T��TR� instantiation�Inst����refract�T�TR��refract��H�T���H�TR�� refract�T�TR��lex�sort�L�R� build�keys�L�LK��keysort�LK�X��reverse�X�Y��strip�keys�Y�R��build�keys��������build�keys��r�Inst�A�B�C��T���Keyr�Inst�A�B�C��TR�� build�chlist�Inst�ChL��

sort�ChL�X��reverse�X�Key��build�keys�T�TR��build�chlist��������build�chlist����Chron�T���Chron�TC�� build�chlist�T�TC��strip�keys��������strip�keys��KeyX�Y���X�Z�� strip�keys�Y�Z��

Ve v��e uveden�m zdrojov�m textu n�m chyb� je�t dode(novat predik�t keysort� Jeho de(nici nech�me naprocvi�en� laskav�mu �ten��i� Sdl�me mu jen pro �plnost� e keysort�KeyList�SortedKeyList� set��d� seznam term�tvaru �Keycokoliv����� vzestupn podle kl��e Key�

Tento zdrojov� text pracuje na z�klad po adavk� � a � metody LEX� Po adavek si uvedeme d�le pouze v prin�cipu�

Nech' m�me pravidla!

Page 44: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

�� (� DOP�EDN �ET�ZEN�

rule t��flies�X��lays�eggs�X�� ��� �assert�bird�X����rule t��mammal�X��long�ears�X��eats�carrots�X�� ��� �assert�animal�X�rabbit����

a nech' m�me v pracovn� pamti!

fact�flies�lara�����fact�flies�zach�����fact�lays�eggs�lara�����fact�lays�eggs�zach�����fact�mammal�bonbon�����fact�long�ears�bonbon�����fact�eats�carrots�bonbon�����

M�me tedy!

� dv instance rule t�! ����� a �����

� jednu instanci rule t�! �������

Po set��dn� jednotliv�ch instanc� dostaneme ������ ����� a �������� p�i�em �� � a � jsou kl��e k instanc�m� PakLEX metoda provede toto uspo��d�n� kon�iktn� mno iny!

��� �� � ��� �� � ��� �� ��

Tuto mno inu se n�m v�ak poda�ilo uspo��dat jen podle kl���� To by se n�m v�ak nemuselo poda�it� kdybychomnap��klad mli v kon�iktn� mno in dv instance! ����� a �������� kter� maj� ob dv kl�� �� Proto zde mus� p�ij�t na�adu �speci(kovanost� z bodu princip� metody LEX� Ta rozhodne ve prospch instance �������� proto e m� v�cespeci(kovan�ch p�edpoklad� ne instance �����!

��� �� � ��� �� ��

� � � MEA metoda

MEA metoda je identick� s metodou LEX� jen p�id�v� jak�si (ltr nav�c� Uve me si tedy implementaci t�to metody!

select�rule�R�CS� refract�CS�CS���mea�filter���CS�����CSR��lex�sort�CSR��R�����

mea�filter���X���X� not strategy�mea����mea�filter������X�X��mea�filter�Max��r��A�T�Z��B�C�D��X��Temp�ML� T � Max���

mea�filter�Max�X�Temp�ML��mea�filter�Max��r��A�T�Z��B�C�D��X��Temp�ML� T � Max���

mea�filter�Max�X��r��A�T�Z��B�C�D��Temp��ML��mea�filter�Max��r��A�T�Z��B�C�D��X��Temp�ML� T � Max���

mea�filter�T�X��r��A�T�Z��B�C�D���ML��

mea�filter vybere pouze ta pravidla� jejich instance prvn�ho termu maj� maxim�ln� mo n� �as�

��� R�mce

� � Co jsou to r�mce

R�mce jsou datovou strukturou� kterou si m� eme p�edstavit jako tabulky nap��!

savci value default when�updatedk� e ko+e.inarozen� +iv#nohy � leg�check

Page 45: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

(�� R�mce ��

kr�l�k value default when�updateda�kind�of savci

u�i dlouh#pohyb skoky

R�mce $frames% si m� eme na t�to intuitivn� �rovni p�edstavit jako tyto tabulky� jejich ��dky budeme naz�vatsloty $slots% a sloupce budeme naz�vat facety $facets%�

Do prologovsk� programov� datab�ze budeme r�mce ukl�dat pomoc� predik�t�!

� frame�� s parametry!

�� jm�no r�mce $nap�� savci%

�� seznam slot�

� slot�� s parametry!

�� jm�no slotu $nap�� k3+e%

�� seznam facet�

� facet�� s parametry!

�� jm�no facetu $nap�� value%� kter� bude reprezentov�no oper�torem

�� hodnota facetu

Nap��klad!

frame�name��slotname� �facet���val���facet���val��������slotname� �facet���val���facet���val��������������

Facety budeme dlit do tchto typ�!

� val � jednoduch� hodnota facetu

� def � default

� calc � predik�t volaj�c� v�po�et hodnoty slotu

� add � predik�t� kter� je vol�n� kdy je hodnota p�id�v�na do slotu

� del � predik�t� kter� je vol�n� kdy je hodnota vy�azov�na ze slotu

P��klad � �

frame�man��ako �val person��hair �def short�del bald��weight �calc male�weight����frame�woman��ako �val person��hair �def long��weight �calc female�weight����

Facet ako $jeho s�mantika je �a kind of�% zde funguje jako odkaz na njak� r�mec� Toto je jist� objektov� rysr�mc�� kter� pomoc� tohoto facetu zav�d� do r�mc� ddi�nost� kdy r�mec woman dd� hodnoty v�ech slot� r�mceperson� kter� roz�i�uje nebo aktualizuje�

Page 46: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

�� (� DOP�EDN �ET�ZEN�

� � Prohl��en� r�mc�

V tomto odstavci si nade(nujeme predik�t get�frame� kter� podle po adavk� ReqList najde r�mec Thing�

get�frame�Thing�ReqList� frame�Thing�SlotList��slot�vals�Thing�ReqList�SlotList��slot�vals���������slot�vals�T��Req�Rest��SlotList� prep�req�Req�req�T�S�F�V���

find�slot�req�T�S�F�V��SlotList����slot�vals�T�Rest�SlotList��slot�vals�T�Req�SlotList� prep�req�Req�req�T�S�F�V���

find�slot�req�T�S�F�V��SlotList��prep�req�SlotX�req�T�Slot�val�X�� var�X����prep�req�SlotX�req�T�Slot�Facet�Val�� nonvar�X��X ��� �Facet�Val��

facet�list�FL��member�Facet�FL����prep�req�SlotX�req�T�Slot�val�X���facet�list��val�def�calc�add�del�edit���find�slot�req�T�S�F�V��SlotList� nonvar�V��find�slot�req�T�S�F�Val��SlotList����

�Val �� V!member�V�Val���find�slot�req�T�S�F�V��SlotList� member�SFacetList�SlotList����

facet�val�req�T�S�F�V��FacetList��find�slot�req�T�S�F�V��SlotList� member�akoFacetList�SlotList��

facet�val�req�T�ako�val�Ako��FacetList���member�X�Ako�!X � Ako��frame�X�HigherSlots��find�slot�req�T�S�F�V��HigherSlots����

find�slot�Req��� error��'Frame error looking for '�Req���facet�val�req�T�S�F�V��FacetList� FV ��� �F�V��member�FV�FacetList����facet�val�req�T�S�val�V��FacetList� member�val ValList�FacetList��

member�V�ValList����facet�val�req�T�S�val�V��FacetList� member�def V�FacetList����facet�val�req�T�S�val�V��FacetList� member�calc Pred�FacetList��

Pred ��� �Functor�Args��CalcPred ��� �Functor�req�T�S�Val�V��Args��call�CalcPred��

Pomoc� predik�tu req�� budeme reprezentovat po adavky� Jako parametry budou jm�no r�mce� po adovan� slot�po adovan� facet a po adovan� hodnota�

Je�t poznamenejme� e oper�tor ��� $univ% uspje nap��klad v tomto p��pad!

fact���N�F� ��� �fact���N�F�

A z�vrem p��klad v�po�etn�ho predik�tu!

female�weight�req�T�S�F�V�� get�frame�T��heightH���V is H%��

� � P�id�v�n� r�mc�

V tomto odstavci si uvedeme implementaci predik�tu add�frame� kter� bude za�azovat nov� r�mce do pracovn� pamti�

add�frame�Thing�UList� old�slots�Thing�SlotList��add�slots�Thing�UList�SlotList�NewList��retract�frame�Thing�����asserta�frame�Thing�NewList�����

old�slots�Thing�SlotList� frame�Thing�SlotList����old�slots�Thing���� asserta�frame�Thing������add�slots������X�X��add�slots�T��U�Rest��SlotList�NewList� prep�req�U�req�T�S�F�V���

add�slot�req�T�S�F�V��SlotList�Z��add�slots�T�Rest�Z�NewList��add�slots�T�X�SlotList�NewList� prep�req�X�req�T�S�F�V���

add�slot�req�T�S�F�V��SlotList�NewList��add�slot�req�T�S�F�V��SlotList��SFL��SL��� delete�SFacetList�SlotList�SL���

add�facet�req�T�S�F�V��FacetList�FL���

Page 47: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

(�� R�mce ��

add�facet�req�T�S�F�V��FacetList��FNew�FL��� FX ��� �F�OldVal��delete�FX�FacetList�FL���add�newval�OldVal�V�NewVal����check�add�demons�req�T�S�F�V��FacetList��FNew ��� �F�NewVal��

add�newval�X�Val�Val� var�X����add�newval�OldList�ValList�NewList� list�OldList��list�ValList��

append�ValList�OldList�NewList����add�newval��H�T��Val��Val�H�T���add�newval�Val��H�T���Val�H�T���add�newval���Val�Val��check�add�demons�req�T�S�F�V��FacetList� get�frame�T�Sadd�Add�����

Add ��� �Functor�Args��AddFunc ��� �Functor�req�T�S�F�V��Args��call�AddFunc��check�add�demons������delete�X��������delete�X��X�Y��Y� ��delete�X��Y�Z���Y�W�� delete�X�Z�W��

Predik�t del�frame� kter� bude odstra�ovat r�mce z pracovn� pamti bude analogick�� s inverzn�m ��inkem� Jehop��padnou implementaci nech�v�me na laskav�m �ten��i�

� � P��klad znalostn� b�ze v r�mc�ch

frame�tubenose��level�val order��nostrils�val external�tubular��live�val at�sea��bill�val hooked����

frame�albatross��ako�val tubenose��level�val family��size�val large��wings�val long�narrow����

frame�legsan�albatross��ako�val albatross��level�val species��color�val white����frame�black�footed�albatross��ako�val albatross��level�val species��

color�val dark����

Laskav�mu �ten��i nech�v�me na z�vr k promy�len�� jak� hodnoty promnn� X vr�t� dotazy!

� get�frame�X��color dark�wings long�narrow���

� get�frame�X��wings long�narrow���

� get�frame�X��wings long�narrow�level L���

Page 48: files.klaska.net · Vcla v Raansk Uml in teligence Zpisy z pednky zpraco v al Jan erk kv tna w! " # $ % & ' () * +,-. / 0 y A 1 Obsah Opak o v n jazyk a Prolog Fib onacciho sla Tdc

�� LITERATURA

Literatura

"�# David Kr�sensk�� Logick programov�n�� ZKUSTO ����