PB016 - demonstrační příklady

 

Příklady byly odzkoušeny v SWI-Prologu (stáhnutí) pod MS Windows XP.

Pro ulehčení práce s příklady je na 2. řádku každého zdrojáku v komentáři uveden příkaz pro "kompilaci" příkladu . Aby tento příkaz fungoval, musíte mít SWI Prolog spuštěn z aktuálního adresáře (resp. pro MS Windows je asi nejjednodušší vytvořit zástupce a v jeho vlastnostech nastavit položku "Start in:" na adresář, ve kterém máte příklady uloženy). Pak stačí zkopírovat do schránky např. "['1.1.1_13.pl']." a v SWI prologu kliknout na "Edit" a "Paste" (veškerá práce se schránkou v programu je řešena přes "Edit" a "Copy" nebo "Paste").

Příkazy, které se při zkoušení příkladů mohou hodit:
consult('program.pl').              % "kompiluj" program.pl
['program.pl',program2]. % "kompiluj" program. pl , program2. pl
listing. % vypiš programové predikáty
trace, rodic(X,david). % trasuj volání predikátu
notrace. % zruš režim trasování
halt. % ukonči interpret

I když jsem se snažil, aby při překladu několika příkladů po sobě nedocházelo k chybám (No permission to modify static_procedure atp.), může se tak stát. Pokud by k tomu došlo, prolog ukončete a znovu jej spusťte.

Jména zdrojových souborů jsou ve tvaru PŘEDNÁŠKA.PRIKLAD_SLIDE.pl.

1.1_13.pl - jednoduchá DB rodinných vztahů
1.2_16.pl - vypsání seznamu
1.3.1_18.pl - Fibonacciho čísla
1.3.2_19.pl - Fibonacciho čísla, efektivnější varianta

2.1.1_3.pl - member I, výskyt prvku v seznamu
2.1.2_3.pl - member II
2.1.3_3.pl - member III
2.2_4.pl - del a del1 - výmaz prvku ze seznamu; insert a insert1 - vkládání prvku do seznamu
2.3_5.pl - perm1, 2 a 3 - permutace seznamu
2.4.1_6.pl - append, spojení seznamů
2.4.2_8.pl - append - rozdílové seznamy
2.5.1_10.pl - QuickSort - třídění seznamů
2.5.2_11.pl - QuickSort s rozdílovými seznamy
2.6_13.pl - addleaf, show - přidávání do binárního stromu, výpis binárního stromu
2.7_15.pl - delleaf - odebírání z binárního stromu
2.8_17.pl - vícesměrný algoritmus pro vkládání a odebírání
2.9.1_21.pl - cesta v grafu
2.9.2_22.pl - cesta v grafu II
2.10_23.pl - kostra gafu, vypisuje několikrát stejná řešení

3.1_3.pl - problém osmi dam I
3.2_4.pl - problém osmi dam II - omezení stavového prostoru
3.3_5.pl - problém osmi dam III - seznamy volných pozic
3.4_13.pl - prohledávání do hloubky (DFS), jen algoritmus bez vzorového vstupu
3.5_15.pl - prohledávání do hloubky s limitem, jen algoritmus bez vzorového vstupu
3.6_17.pl - prohledávání do šířky (BFS), jen algoritmus bez vzorového vstupu

4.1_9.pl - algoritmus A*, jen algoritmus bez vzorového vstupu
4.2_17.pl - rozvrh práce procesorů, jen algoritmus bez vzorového vstupu

5.1_5.pl - hanoiské věže
5.2_11.pl - prohledávání AND/OR grafů
5.3_15.pl - cesta mezi městy heuristickym AND/OR hledáním, jen algoritmus bez vzorového vstupu

6.1_9.pl - Constraing Logic Programming
6.2_11.pl - algebrogram
6.3_14.pl - problém N dam

7.1_11.pl - algoritmus minimax, jen algoritmus bez vzorového vstupu
7.2_15.pl - alfa-beta prořezávání, jen algoritmus bez vzorového vstupu

8.1_3.pl - akce logického agenta, jen algoritmus bez vzorového vstupu
8.2_20.pl - inference kontrolou modelů, jen algoritmus bez vzorového vstupu
8.3_27.pl - algoritmus dopředného zřetzení, jen algoritmus bez vzorového vstupu

9. přednáška - žádné příklady

10.1_16.pl - algoritmus IDT (příklady vstupu: nářadí, počasí a restaurace)

11. přednáška - žádné příklady

12.1_11.pl - DC gramatika, jen algoritmus bez vzorového vstupu


12.2_12.pl - gramatiky - analýza pomocí append, jen algoritmus bez vzorového vstupu


12.3_13.pl - gramatiky - rozdílove seznamy


12.4_18.pl - DC gramatika s konstrukcí stromu analýzy
12.5_22.pl - DC gramatika s testy na shodu
12.6_23.pl - vyhodnocení aritmetického výrazu
12.7_24.pl - generativní síla DCG


vše v jednom souboru: PB016_demo.zip