====== Knowledge Representation and Reasoning 2014 ====== ===== Cele kursu ===== Prezentacja podstawowych problemów, metod symbolicznego reprezentowania wiedzy i automatycznego jej przetwarzania - wnioskowania\\ Przekazanie praktycznych umiejętności wykorzystania wybranych narzędzi pozwalających na reprezentowanie i przetwarzanie wiedzy symbolicznej. [[https://syllabuskrk.agh.edu.pl/en/magnesite/study_plans/2012-2013-stacjonarne-informatyka-stosowana-systemy-inteligentne/module/361-eit-2-105-s-reprezentacja-i-przetwarzanie-wiedzy|Sylabus KRK: EIS ]] ===== Podręczniki ===== Podstawowe: * [KRR] [[http://brachman.org/|Ronald Brachman]] [[http://www.cs.toronto.edu/~hector/|Hector Levesque]] //[[http://www.elsevierdirect.com/product.jsp?isbn=9781558609327|Knowledge Representation and Reasoning]]//, Morgan Kaufman, 2004 * [KRH] [[http://www.cs.vu.nl/~frankh/|F. van Harmelen]], [[http://www.cs.utexas.edu/~vl/|V. Lifschitz]], [[http://www.cs.utexas.edu/~porter/|B. W. Porter]], //[[http://www.elsevier.com/wps/find/bookdescription.cws_home/713675/description|Handbook of Knowledge Representation]]//, Elsevier Science (2008), **[[http://ii.fmph.uniba.sk/~sefranek/kri/handbook/|ONLINE]]** * [TAC] [[http://www.cs.toronto.edu/~hector/|Hector Levesque]] [[http://mitpress.mit.edu/catalog/item/default.asp?ttype=2&tid=12818|Thinking as Computation]], MIT Press, 2012. * [FCA] [[http://www.cs.ubc.ca/~poole/|D. Poole]], [[http://www.cs.ubc.ca/~mack|A. Mackworth]], //[[http://artint.info|Artificial Intelligence: Foundations of Computational Agents]]//, Cambridge University Press, 2010, **[[http://artint.info/html/ArtInt.html|ONLINE]]** Uzupełniające: * [SLG] Peter Flach, [[http://www.cs.bris.ac.uk/~flach/SimplyLogical.html|Simply logical]], Wiley, 1994, **ONLINE** * [LAI] [[http://www.cse.buffalo.edu/~shapiro/|Stuart C. Shapiro]], [[http://www.cse.buffalo.edu/~shapiro/Courses/CSE563/2010/|Knowledge Representation and Reasoning: Logics for Artificial Intelligence]], (Lecture notes **ONLINE**) * [AIM] [[http://www.cs.berkeley.edu/~russell/|Stuart Russell]] and [[http://norvig.com/|Peter Norvig]] //[[http://aima.cs.berkeley.edu/|Artificial Intelligence: A Modern Approach]]//, 3rd Ed., Pearson, 2010. * [CIL] [[http://www.cs.ubc.ca/~poole|D. Poole]], A. Mackworth and R. Goebel, //[[http://www.cs.ubc.ca/~poole/ci.html|Computational Intelligence: A Logical Approach]]//, Oxford University Press, 1998. Literatura uzupełniająca w języku polskim: * [WSI] [[http://www.ksi.uj.edu.pl/en/mfl|Mariusz Flasiński]], //[[http://ksiegarnia.pwn.pl/produkt/82635/wstep-do-sztucznej-inteligencji.html|Wstęp do sztucznej inteligencji]]//, PWN 2011. * [SIL] [[http://www.math.uni.wroc.pl/~kisiel|A. Kisielewicz]], //[[http://www.informatyczna.pl/index.php?strona,doc,pol,informat,1083,0,48225,1,1083,sztuczna_inteligencja_i_logika._podsumowanie_przedsi%EF%BF%BDwzi%EF%BF%BDcia_naukowego,ant.html|Sztuczna inteligencja. Podsumowanie przedsięwzięcia naukowego]]//, WNT 2011. Prolog podręczniki sieciowe: * [PFC] [[http://homepages.inf.ed.ac.uk/pbrna/prologbook/book.html|Prolog Programming A First Course]] * [LPN] [[http://www.learnprolognow.org/|Learn Prolog Now!]] * [AIP] [[http://www.amzi.com/AdventureInProlog/|Adventure in Prolog]] * [ESP] [[http://www.amzi.com/ExpertSystemsInProlog/|Expert Systems in Prolog]] Prolog podręczniki: * [BRT] [[http://www.ailab.si/ivan|I. Bratko]], //[[http://www.amazon.com/Programming-Artificial-Intelligence-International-Computer/dp/0321417461/ref=dp_ob_title_bk|Prolog Programming for Artificial Intelligence]]//, 4th ed, Addison-Wesley, 2011. * [LPP] Ulf Nilsson and Jan Małuszyński, //[[http://www.ida.liu.se/~ulfni/lpp|Logic, Programming and Prolog]]// (2ed). **ONLINE** * [PPD] Michael Covington et. al., //[[http://web.ncf.ca/andre/publications/PPID.pdf|Prolog Programming in Depth]]//. **ONLINE** ===== Materiały ===== Slajdy: * [KRR] [[http://www.cs.toronto.edu/~hector/PublicKRSlides.pdf|slides]] * [TAC] [[http://www.cs.toronto.edu/~hector/PublicTCSlides.pdf|slides]] * [FCA] [[http://artint.info/html/ArtInt.html|full online]] [[http://artint.info/slides/slides.html|slides]] * [AIM] [[http://aima.eecs.berkeley.edu/slides-pdf/|slides]] * [CIL] [[http://www.cs.ubc.ca/~poole/ci/lectures/lectures.html|slides]] * [AAT] [[http://aitopics.net/pmwiki.php/AITopics/HomePage|AAAI Topics]] Inne: * John F. Sowa [[http://www.jfsowa.com/pubs/semnet.htm|Semantic Networks]] * M. Obitko [[http://www.obitko.com/tutorials/ontologies-semantic-web/|Ontologies & SemWeb]] ===== Organizacja roku ===== [[http://www.agh.edu.pl/studenci/organizacja-roku-akademickiego/|Organizacja roku 2014/2015 na AGH]] ===== Ramowy plan wykładu ===== ==== __Edycja 2015__ ==== - **Wprowadzenie do reprezentacji i przetwarzania wiedzy. Ujęcie systemowe. Rola logiki. Prolog: baza wiedzy [3.03.2015]** - **Podstawy języka Prolog. Model obliczeniowy Prologu - szukanie z nawrotami. Zmienne i ich rola. Podstawy Unifikacji [10.03.2015]** - **Podstawy języka Prolog. Struktury danych: termy. Podstawy unifikacji termów. [17.03.2015]** - **Podstawy języka Prolog. Modele obliczeniowe: rekurencja, iteracje, pętle z wymuszeniem nawrotów (fail). Struktury danych: listy. Predykaty: member/2, select/3, appemd/2. Obliczenia niedeterministyczne [24.03.2015]** - **Przetwarzanie list w Prologu. Rekurencja a iteracje. Zagadnienia zaawansowane. Sortowanie list. Przetwarzanie list. Meta-predykaty [31.03.2015]** - **Listy - zagadnienia zawansowane. Meta-programowanie w Prologu. Reprezentacja i przetwarzanie wiedzy w Prologu. Przykłady. [14.04.2015]** - **Metaprogramowanie. Reprezentacja wiedzy. Przykłady. [21.04.2015]** - **Podsumowanie programowania w Prologu. Przykłady. Przygotowanie do kolokwium. [28.04.2015]** - **Systemy stanowe. Model grafowe. Metody szukania ślepego. Tree search and graph search. [5.05.2015]** - E-learning: Przegląd metod szukania ślepego. Algorytmy BFS i DFS. Algorytm Dijkstry. [12.05.2015] [[http://edu.i-lo.tarnow.pl/inf/alg/001_search/0122.php|Grafy: reprezentacja, BFS, DFS, algorytm Dijkstry]] - E-learning: Algorytmy szukania. [[http://artint.info/html/ArtInt_46.html|Problem Solving as Search]] - Metody szukania heurystycznego. Algorytm A*. Algorytmy inspirowane biologicznie. - Wprowadzenie do programowania z ograniczeniami. Backtrack Search. - Programowanie z ograniczeniami - kontynuacja. Biblioteka CSP(FD). ==== Edycja 2014 ==== - **Wprowadzenie do reprezentacji i przetwarzania wiedzy. Ujęcie systemowe. Rola logiki. Prolog: bazy wiedzy [4.03.2014]** - **Podstawy języka Prolog. Model obliczeniowy Prologu - szukanie z nawrotami. Zmienne i ich rola. Podstawy Unifikacji [11.03.2014]** - **Podstawy języka Prolog. Struktury danych: termy. Podstawy unifikacji termów. Modele obliczeniowe: rekurencja, iteracje, pętle z wymuszeniem nawrotów (fail) [18.03.2014]** - **Podstawy języka Prolog. Struktury danych: termy. Podstawy unifikacji termów. Modele obliczeniowe: rekurencja, iteracje, pętle z wymuszeniem nawrotów (fail) [25.03.2014]** - **Podstawy języka Prolog. Struktury danych: listy. Predykaty: member/2, select/3, appemd/2. Obliczenia niedeterministyczne [1.04.2014]** - **Przetwarzanie list w Prologu. Rekurencja a iteracje. Zagadnienia zaawansowane. Sortowanie list. Przetwarzanie list. Meta-predykaty [8.04.2014]** - **Meta-programowanie w Prologu. Reprezentacja i przetwarzanie wiedzy w Prologu. Przykłady. [15.04.2014]** - **E-learning. [29.04.2014]** - **Systemy stanowe. Model grafowe. Metody szukania ślepego. Tree serach a graph search. [6.05.2014]** - **Przegląd metod szukania ślepego. Realizacje w Prologu. [13.05.2014]** - **Metody szukania heurystycznego. Algorytm A*. Algorytmy inspirowane biologicznie. [20.05.2014]** - **Wprowadzenie do programowania z ograniczeniami. Backtrack Search. [27.05.2014]** - Programowanie z ograniczeniami - kontynuacja. Biblioteka CSP(FD).[3.06.2014] - [10.06.2014] - [17.06.2014 ?] ---- ==== Edycja 2013 ==== - **Wprowadzenie do problematyki reprezentacji i przetwarzania wiedzy. Prolog: baza wiedzy [26.02.2013]** - **Inżynieria wiedzy. Podejście systemowe. Język naturalny a logika. Budowa systemu z bazą wiedzy. Przykłady w Prologu. Prolog: sterowanie wnioskowaniem [5.03.2013]** - **Prolog: termy i reprezentacja wiedzy. Fakty i klauzule. Składnia. Semantyka [12.03.2013]** - **Prolog: listy. Podstawowa reprezentacja i przetwarzanie [19.03.2013]** - **Prolog: listy. Zaawansowane przetwarzanie. Sortowanie [26.03.2013]** - **Drzewa i grafy. Metody szukania ślepego [9.04.2013]** - **Grafy. Metody szukania heurystycznego** [16.04.2013] - **Systemy dynamiczne. Stan, przestrzeń stanów. Planowanie** [23.04.2013] - **Grafy AND-OR, planowanie, gry** [7.05.2013] - **Systemy regułowe** [14.05.2013] - **Programowanie z ograniczeniami. CSP: wprowadzenie.** [21.05.2013] - **CSP: problemy i metody.**[28.05.2013] - **Przegląd zaawansowanych narzędzi logiki. Wiedza niepewna, niepełna, rozmyta i przybliżona.**[4.06.2013] - **Metody semantyczne: drzewa i grafy, sieci semantyczne, szablony semantyczne. Metody przetwarzania.**[11.06.2013] Podsumowanie.[[http://www.google.pl/url?q=https://www.eti.pg.gda.pl/katedry/kio/dydaktyka/Bazy_Wiedzy//BazyWiedzy_2.pdf&sa=U&ei=8ci5UcaZCKKt4ASNrIHIBg&ved=0CBoQFjAA&sig2=5hKlXbhxeSgbcq31MO--MA&usg=AFQjCNHDwlmrxPKxPTUl18NF8MGwKNNkYg|Materiały pomocnicze - ETI PG]] [[http://ai.ia.agh.edu.pl/wiki/pl:dydaktyka:krr:lab_dl|Materiały + laboratorium]] - ML - wykład zaproszony [18.06.2013] - Problematyka spójności i pełności wiedzy. Wnioskowanie diagnostyczne. - Prolog: metaprogramowanie. Możliwości reprezentacji i przetwarzania wiedzy w Prologu. ===== Ramowy plan laboratorium ===== Narzędzia: * [SWI] [[http://www.swi-prolog.org/|SWI Prolog]] * [AIS] [[http://aispace.org|AIspace]] * [MZN] [[http://www.minizinc.org/|MiniZinc]] Ćwiczenia - Prolog: baza wiedzy: [[Lab baza wiedzy]], 2014-03-05 - Prolog: sterowanie wnioskowaniem: [[Lab sterowanie wnioskowaniem]], 2014-03-12 - Prolog: termy i reprezentacja wiedzy: [[Lab_termy]], 2013-03-19 - Prolog: listy i podstawy przetwarzania wiedzy: [[pl:prolog:prolog_lab:listy1|Wstęp do pracy z listami]], 2014-03-26 - Prolog: listy, zagadnienia zaawansowane: [[pl:prolog:prolog_lab:listy2|Praca z listami]], 2014-04-02 - Prolog: metaprogramowanie, 2014-04-09 * [[pl:prolog:prolog_lab:reprezentacja_wiedzy|Reprezentacja]] * [[pl:prolog:prolog_lab:prolog_lab_metaprog|Metaprogramowanie]] punkty 1-4 - Szukanie heurystyczne: [[http://ai.ia.agh.edu.pl/wiki/pl:dydaktyka:ai:2015:labs:lab_search|przeszukiwanie]] wraz z sekcją //Dla zainteresowanych//, 2015-05-06 * proszę poczytać o metodach szukania w AI można znaleźć w podręczniku [FCA]: [[http://artint.info/html/ArtInt_46.html|3 States and Searching]] 3.6-7 - CSP: [[pl:dydaktyka:csp:intro|wprowadzenie]], 2014-05-13 - CSP: [[pl:dydaktyka:csp:lab1|standardowe problemy]], 2014-05-20 - CSP: [[pl:dydaktyka:csp:lab2|techniki modelowania]], 2014-05-27 - Reguły w Prologu, 2014-05-07, [[pl:prolog:prolog_lab:prolog_lab_metaprog#tematsystemy_ekspertowe|wprowadzenie do systemów ekspertowych]] - Problemy automatycznego planowania: [[Lab_pddl]] - Reprezentacje ustrukturalizowane, DL: [[Lab DL]], 2014-06-04 - Kolokwium, 2014-06-11 ===== VARIA ===== * [[http://www.joelonsoftware.com|Joel Spolsky]] [[http://www.joelonsoftware.com/items/2006/08/01.html|Can Your Programming Language Do This?]], Tuesday, August 01, 2006. * [[http://www.paulgraham.com|Paul Graham]], [[http://www.paulgraham.com/hp.html|Hackers and Painters]] (esej), May 2003; więcej w książce: [[http://www.paulgraham.com/hp.html|Hackers and Painters]], O'Reilly, 2004. * [[http://lambda-the-ultimate.org/|Lambda the Ultimate The Programming Languages Weblog ]]