Artificial Intelligence and Logic Programming

 

           Do not forget to be creative! This is an option and a way to happiness.           

 

Course: ARTFICIAL INTELLIGENCE | Bachelor of Science (Computer Science)
Software: Prolog (SICStus Prolog, SWI Prolog, GNU Prolog)

Inteligenta Artificiala / Programare declarativa / Sisteme Expert
Artificial Intelligence / Declarative Programming / Expert Systems

- SICStus Prolog - http://www.sics.se/sicstus/
- SWI Prolog - http://www.swi-prolog.org
- GNU Prolog - http://www.gprolog.org/
- Prolog.NET - http://prolog.hodroj.net
- Visual Prolog - http://www.visual-prolog.com

"AI este disciplina, parte a informaticii, care proiectează sisteme artificiale cu comportament inteligent – adică sisteme ce manifestă proprietăţi pe care în mod obişnuit le asociem cu existenţa inteligenţei în comportamentul uman - înţelegerea limbajului, învăţare, raţionament, rezolvarea problemelor" A. Barr and E. A. Feigenbaum, 1981

Languages and Knowledge: Natural environments are ruled by languages. Computer science use artificial languages. Languages exist therefore, not for communication purposes alone, but particularly for knowledge. (Vlada, CNIV & eLSE 2005)

Computer Program: "A program is a theory (in some logic) and computation is deduction from the theory." J. A. Robinson

Sciencies: Sciences are models and virtual representations of knowledge. (CNIV 2008, M. Vlada)

Artificial Intelligence: The name "artificial intelligence" was proposed by John McCarthy when he and other AI influential figures (Marvin Minsky, Allen Newell, Herbert Simon, and others) organized a summer workshop at Dartmouth in 1956. (Gh. Tecuci, Wiley Interdisciplinary Reviews: Computational Statistics, Vol. 4/2, 2012)

Predicting the Future of Computing: "Readers are invited to make predictions and collaboratively edit this timeline, which is divided into three sections: a sampling of past advances, future predictions that you can push forward or backward in time (but not, of course, into the past), and a form for making and voting on predictions." The New York Times

- Armstrong, Stuart, and Kaj Sotala. 2012. “How We’re Predicting AI—or Failing To”. In Beyond AI: Artificial Dreams, edited by Jan Romportl, Pavel Ircing, Eva Zackova, Michal Polak, and Radek Schuster, 52–75. Pilsen: University of West Bohemia, 2012 http://intelligence.org/files/PredictingAI.pdf

Creating Artificial Intelligence Based on the Real ThingEver since the early days of modern computing in the 1940s, the biological metaphor has been irresistible. The first computers — room-size behemoths — were referred to as “giant brains” or “electronic brains,” in headlines and everyday speech. As computers improved and became capable of some tasks familiar to humans, like playing chess, the term used was “artificial intelligence”.  The New York Times

 

Dacă în deceniul 70 (secolul XX) la nivel universitar, erau câteva discipline proprii informaticii, astăzi există domenii complexe ale Informaticii: Programare şi Software Engineering, Reţele de calculatoare şi Computing, Baze de date şi sisteme informatice, Programare şi dezvoltare Web, Grafică pe calculator şi realitate virtuală, Geometria computaţională, Modelare şi simulare, Calcul paralel şi distribuit, Inteligenţă artificială şi sisteme expert, Ingineria cunoaşterii.

 

OBIECTIVE   Fisier de tip .pdf ! Fisa_Inteligenta_Artificiala

  • Cunoasterea si utilizarea conceptelor si tehnicilor AI pentru rezolvarea problemelor folosind programarea declarativa;  sisteme expert
  • fundamente de logica matematica de ordinul I pentru cunoasterea si utilizarea reprezentarii si procesarii bazelor de cunostinte oferite de limbajul Prolog;
  • prin activitatile de la laborator se urmareste ca studentii sa obtina competente privind utilizarea limbajului Prolog ca motor de inferente (demonstrator de teoreme) in reprezentarea si procesarea bazelor de cunostinte.

Comentariu introductiv. Dezvoltarea stiintelor si experienta umana in rezolvarea problemelor folosind rationamentul uman si utilizarea calculatorului, au condus la definirea urmatoarelor tipuri de activitati de rezolvare:

1. programare procedurala (imperativa) sustinuta de limbajele de programare ce reclama conceperea unui algoritm de rezolvare si codificarea intr-un limbaj de programare; problema -> rationament rezolvare -> algoritm -> program (LINK-1, LINK-2)

2. programare declarativa (baze de cunostinte) sustinuta de limbajul Prolog (conceput ca motor de inferenta prin implementarea fundamentelor logicii de ordinul I in reprezentarea si prelucrarea cunostintelor) ce ofera reprezentarea problemelor in termeni de obiecte si definirea relatiilor (clauze Horn: fapte si reguli) dintre obiecte; o astfel de reprezentare defineste baze de cunostinte ce vor fi interogate (procesate prin inferente logice) prin motorul de inferente Prolog (cautarea de solutii se realizeaza prin metoda backtracking) (LINK)

3. metode (tehnici) de rezolvare sustinute de rationamente specifice de cautare a solutiilor diverselor clase de probleme, de exemplu: metoda "divide et impera", metoda "greedy", metoda "backtracking" etc. (LINK)

rezolvarea problemelor folosind sistemele clasice   rezolvarea problemelor folosind sistemele inteligente Paradigme ale Limbajelor

 

An example is “The four colour problem”  (Thomas 2007, Vlada 2003) that was resolved in 1977 simply by using computer and using a new method  (Backtracking). The fact that there are alternative ways of executing a logic program has been characterised by the pseudo-equation:

  • AlGORITHM = LOGIC +  CONTROL (Kowalski 1979)

where "Logic" represents a logic program and "Control" represents different theorem-proving strategies.

The research and development, innovation and improvement, foundation work and new concepts for the implementation and development of modern technology on the use of computers led to define the following pseudo-equation:             

  • PROGRAM =  ALGORITHM  + DATA STRUCTURES (Wirth 1975)

  • EXPERT SYSTEM  = KNOWLEDGE  +  META-INTERPRETER (Sterling 1984)

 

Obiectivele disciplinei

Obiectivele cursului

Obiectivele activităţilor aplicative

(laborator, proiecte)

  • intelegerea si asimilarea principalelor cunostinte privind programarea declarativa, reprezentarea si prelucrarea bazelor de cunostinte, rezolvarea problemelor folosind metode si tehnici AI; sisteme inteligente si sisteme expert;
  • programare declarativa si reprezentarea bazelor de cunostinte in limbajul Prolog

 

  • consolidarea cunostintelor de la curs prin aplicatii si  testari; elaborarea de programe Prolog (baze de cunostinte)
  • programarea Prolog si baze de cunostinte
  • aplicatii si proiecte folosind metode si tehnici de rezolvare AI: testul lui Einstein, problema SUDOKO, derivarea simbolica, problema "maimuta si banana" etc.

 

CONTINUT Fisier de tip .pdf ! Fisa_Inteligenta_Artificiala

  • Structura unui sistem inteligent
  • Spatiu starilor unei probleme. Exemple
  • Reprezentarea problemelor si spatiul starilor
  • Arborele solutiilor pentru metoda backtracking
  • Spatiul starilor pentru problema “Misionarii si Canibalii”
  • Spatiul starilor pentru problema “8-puzzle”
  • Baza de cunostinte si structura unui program logic
  • Arborele de demonstrare atasat unui scop. Exemple
  • Procesarea bazei de cunostinte in Prolog. Exemple
  • Procedura EXEC- semantica procedurala in executia programelor Prolog
  • Reprezentarea formulelor in forma CNF
  • Reprezentarea formulelor in forma prenex
  • Reprezentarea formulelor in forma Skolem
  • Conceptele de substitutie si unificare. Exemple
  • Argoritmul de unificare Robinson
  • Sistem expert pentru derivarea simbolica.Exemplu
  • Program Prolog pentru colorarea hartilor
  • Sisteme de rezolvare:spatii de reprezentare, structuri de cautare, proceduri de cautare
  • Algoritmul de cautarea Breadh-First-forma procedurala
  • Algoritmul de cautarea Breadh-First-forma Prolog
  • Algoritmul de cautarea Depth-First-forma Prolog
  • Algoritmul de cautarea Besth-First-forma generala/Prolog
  • Algoritmul de cautarea A*-forma procedurala/Prolog

 

Bibliografie / Resurse software

TUTORIALE: Fisier de tip .pdf ! Probleme_prolog Fisier de tip .pdf ! met_BACKTRACKING (sau http://www.scribd.com/) , Poole and Mackworth, 2010: http://artint.info/, Detlovs Vilnis and Podnieks Karlis, Introduction to Mathematical Logic (LINK), 2012:Hyper-textbook for students (Propositional Logic, Predicate Logic, Completeness Theorems - Model Theory, Normal Forms, Clause Form, Resolution Method); Guide to Prolog: http://www.allisons.org/

PROIECTE: Fisier de tip .pdf ! Proiecte-1 Fisier de tip .pdf ! Proiecte-2


Artificial Intelligence: A Modern Approach by Stuart Russell and Peter Norvig, Univ. Berkeley - http://aima.cs.berkeley.edu/index.html: http://aima.cs.berkeley.edu/ai.html, http://aima.cs.berkeley.edu/cover.html, http://aima.eecs.berkeley.edu/slides-pdf, (App., Romania-orase) - http://aima.eecs.berkeley.edu/slides-pdf/chapter04a.pdf


Evaluarea/Examen la Artificial Intelligence (AI) 

  1. Bratko, Ivan - Prolog Programming for Artificial Intelligence, 2000, (3rd ed.).pdf download at 2shared: LINK |  (LINK , Prolog code for all chapters ): www.pearsoned.co.uk
  2. DOCUMENTATION: SWI Prolog - www.swi-prolog.org/pldoc/refman/ , SICStus Prolog - http://www.sics.se/sicstus/docs/latest4/html/sicstus.html/
  3. David Poole, Alan Mackworth, Artificial Intelligence: Foundations of Computational Agents, Cambridge University Press, 2010 (ONLINE, Complete BOOK) - http://artint.info/
  4. Reid G. Smith, Knowledge-Based Systems: Concepts, Techniques, Examples:MYCIN , Ottawa, ON, May 8, 1985 |  LINK (pdf, http://www.reidgsmith.com)
  5. Gheorghe Tecuci, Artificial intelligence, Wiley Interdisciplinary Reviews: Computational Statistics, Vol. 4/2, 2012 (OnLine HTML, PDF) - http://onlinelibrary.wiley.com/
  6. Robert Kowalski, http://www.doc.ic.ac.uk/~rak/ | http://www.doc.ic.ac.uk/~rak/papers/Chapter6.pdf

- M. Vlada, Algorithms for Testing Satisfiability Formulas, ARTIFICIAL INTELLIGENCE REVIEW,  Kluwer Academic Publishers – ISSN 0269-2821 , vol.15 , No 3, 2001, pag.153-163

- M. Vlada, An efficient algorithm for testing propositional formulas, COMPUTERS AND ARTIFICIAL  INTELLIGENCE - ISSN 1335-9150 , Vol. 17, No. 4, 1998, pag. 383-391

- M. Vlada,  Modele pentru explorarea  bazelor de cunoştinţe şi aplicaţii   în inteligenţa artificială (1997)

- St. Andrei, Counting for Satisfiability by Inverting Resolution, Artificial Intelligence Review 22: 339–366, 2004

- Jurgen Schmidhuber, Optimal Ordered Problem Solver, Machine Learning, 54, 211–254, Kluwer Academic, 2004 Fisier de tip .pdf ! OOPS

- D. Dumitrescu – Principiile Inteligenţei Artificiale, Ed. Albastră, 2005

"All mathematical theories were indeed reduced to systems of axioms and rules of inference without any admixture of sophisticated human skills, intuitions etc. Today, the logical techniques developed by these brilliant people allow ultimate axiomatization of any theory that is based on a stable, self-consistent system of principles (i.e. of any mathematical theory)." Detlovs Vilnis and Podnieks Karlis, Introduction to Mathematical Logic (LINK), 2012.

 

Language of knowledge:

  • Natural languages (the languages of the peoples) - "entity"=word; lexical constructions describe states, images, actions, etc.
  • Languages of sciences (used in the fields of science: mathematics, physics, chemistry, economics, etc.) - "entity"= knowledge/meet; study of objects and relationships between objects in the fields of mathematics, physics, chemistry, computer science, biology, economics, etc.
  • Artificial languages (used computer) consisting of 
    • Procedural Programming languages - "entity" =memory location
    • Functional Programming Languages - "entity" = item list
    • Logic Programming Languages - "entity "= object, clause
    • Object Oriented Programming - "entity" = object
    • Web Programming Languages - "entity" = web/multimedia elements
    • Languages for Databases - "entity" = registration
    • Languages for Computer graphics - "entity" = graphics object
    • Languages for Modeling-Simulation - "entity "= event
    • Languages for Operating Systems- "entity" = process/ task
    • Languages for Artificial Intelligence - "entity" = meet/ knowledge

Definition. A language of knowledge is virtual system/logical

                       L = ( V, Sin, Sem, O, C, T, Tc)  , where

V = vocabulary / alphabet, Sin = syntax (rules), Sem = semantics (rules), O = objects, C = concepts / terms, T = theories / methods / techniques to solve, Tc = treasury of knowledge (knowledge base).

(Vlada 2005)

Propose the following:

  • MODELING = KNOWLEDGE +  REPRESENTATION               
  • LANGUAGES =  PROCESSING  + INTERPRETATION
News 2012 - University of Sussex: "Anthropomimetic" Robot (Robotul antropomimetic) - LINK-video.
University of Sussex-Robotul antropomimetic

 What should an intelligent agent do?

David Poole,  Department of Computer Science, University of British Columbia, Vancouver, B.C., Canada [Semantic science , Science and the Semanitic Web ]

REF.: David Poole, Alan Mackworth, Artificial Intelligence: Foundations of Computational Agents, Cambridge University Press, 2010 (ONLINE, Complete BOOK) - http://artint.info/

what should an intelligent agent do?

 Knowledge representation: intelligent agent
"An intelligent agent has an internal representation of its external environment which allows it to reason about the environment by manipulating the elements of the representation. For each relevant aspect of the environment, such as an object, a relation between objects, a class of objects, a law, or an action, there is an expression in the agent's knowledge base which represents that aspect."

REF.: Gheorghe Tecuci, Artificial intelligence, Wiley Interdisciplinary Reviews: Computational Statistics, Vol. 4/2, 2012 (OnLine HTML, PDF) - http://onlinelibrary.wiley.com/

Agent-A situation and its representation

 Semantic Grid Architecture

David De Roure, Nicholas R. Jennings and Nigel R. Shadbolt, The Semantic Grid: Past, Present and Future, Procedings of the IEEE 93(3) pp. 669-681. 2005,

REF.:  C. A. Goble, D. De Roure, N. R. Shadbolt, and A. A. A. Fernandes, "Enhancing Services and Applications with Knowledge and Semantics"  in The Grid 2: Blueprint for a New Computing Infrastructure, I. Foster and C. Kesselman, Eds.: Morgan-Kaufmann, 2004, pp. 431-458.

 Semantic Grid Architecture

Knowledge Technologies
Complexitatea procesului de învăţare
De-a lungul vremii, în toate domeniile ştiinţifice se schimbă teoriile, metodele şi tehnicile de investigare, de aceea dinamica cunoaşterii umane influenţează dezvoltarea generală a societăţii umane. Pentru a obţine evoluţie şi eficienţă în viaţa sa, omul trebuie să se adapteze continuu la aceste schimbări ale cunoaşterii. În domeniul educaţiei, şi în special al învăţării şi perfecţionării, apariţia de noi tehnologii ale informaţiei şi comunicării (TIC), îmbunătăţirea teoriilor pedagogice şi psihologice, obligă pe elevi/studenţi, profesori, părinţi şi pe specialişti, să se adapteze la aceste schimbări.
Ce fac elevii şi studentii? Ce fac profesorii şi părinţii? Ce fac specialiştii? Ce fac guvernele ţărilor? read more: www.unibuc.ro/prof/vlada_m/  (The Power of Learning)
  • Avron Barr and Edward A. Feigenbaum, Handbook of AI, Addison-Wesley Longman Publishing Co., Inc. Boston, MA, USA 1986, ISBN:0201118114
  • Bilaniuk, S. (2009), Deduction Theorem, [online] Trent University, Peterborough, Ontario, Canada, http://us.metamath.org/mpegif/mmdeduction.html#dedvsth
  • Clocksin, W. F. and Mellish, C. S. (1984 ) Programming in Prolog Using the ISO Standard, New York: Springer-Verlag, and [online] Wolfram Math, http://mathworld.wolfram.com/HornClause.html
  • CSAIL, (2009) Learning and Intelligent Systems, Computer Science and Artificial Intelligence Laboratory, [online], MIT - The Massachusetts Institute of Technology,  Cambridge,  http://www.csail.mit.edu/
  • Kowalski, R. (1979) Logic for Problem Solving. Artificial Intelligence, Series North Holland, [online] http://www.doc.ic.ac.uk/~rak/, http://en.wikipedia.org/wiki/Robert_Kowalski
  • Lloyd, J.W. (1984). Foundations of Logic Programming. Springer-Verlag: Berlin, Germany.
  • Minsky, M. (1986) The Society of Mind, Touchstone Books, New York,
  • Robinson, J. A. (1965). A Machine Oriented Logic Based on the Resolution Principle. Journal of the ACM 12: 23–41.
  • Sterling L. (1984) Logical Levels of Problem Solving, Proceedings 2nd Intl. Logic Programming Conference, Uppsala, Sweden, pp. 231-242
  • Thomas, R. (2007) The Four Color Theorem [online] School of Mathematics, Georgia Institute of Technology, Atlanta, http://www.math.gatech.edu/~thomas/FC/fourcolor.html
  • Vlada, M. (2003) "Eureka: Algorithmic thinking", Solving Problems using Eureka [online], University of Bucharest,  http://ebooks.unibuc.ro/informatica/eureka/index.htm.
  • Vlada, M. (2005) "Role of Language in processing Information and Knowledge",  Proceedings of The International Scientific Conference – eLearning and Software for Education”, eLSE 2005, “Carol I” National Defence University, Bucharest, University Publishing House, pp 165-178
  • Wirth N. (1975) Algorithms + Data Structures = Programs, Prentice-Hall, pp 1-366.
  • S. Russell, P. Norvig. Artificial Intelligence: A Modern Approach, Prentice Hall, 2002, http://aima.cs.berkeley.edu
  • D. Poole, A. Mackworth, R. Goebel. Computational Intelligence – a Logical Approach. Oxford University Press, 1998, http://www.cs.ubc.ca/~poole/ci.html
  1. http://www.sics.se/sicstus.html | Sicstus PROLOG
  2. http://www.cs.nuim.ie/~jpower/Courses/PROLOG/ (James F. Power) |GNU Prolog
  3. http://cis.stvincent.edu/html/tutorials/prolog/index.html
  4. http://bach.istc.kobe-u.ac.jp/llp/current/examples/prolog/
  5. http://cs.wwc.edu/~cs_dept/KU/PR/Prolog.html (Computer Science Department Walla WallaCollege)
  6. http://invaders.mars-attacks.org/~boklm/prolog/ (Loiseleur Michel & Vigier Nicolas)
  7. http://www.visual-prolog.com/vip6/Community/userExamples/OpenGL.htm (Visual Prolog)
  8. Warren's Abstract Machine -http://fr.wikipedia.org/wiki/Warren%27s_Abstract_Machine

 

Languages of the World (Wide Web)

by Daniel Ford and Josh Batson

Ref.: Research Blog (News on Google Research), http://googleresearch.blogspot.com/2011/07/languages-of-world-wide-web.html

"The web is vast and infinite. Its pages link together in a complex network, containing remarkable structures and patterns. Some of the clearest patterns relate to language. Most web pages link to other pages on the same web site, and the few off-site links they have are almost always to other pages in the same language. It's as if each language has its own web which is loosely linked to the webs of other languages. However, there are a small but significant number of off-site links between languages. These give tantalizing hints of the world beyond the virtual."

Looking at the language web in 2008, we see a surprisingly clear map of Europe and Asia. The language linkages invite explanations around geopolitics, linguistics, and historical associations. (Figure 1: Language links on the web)

 Language links on the web

 

Solutions 21st Century Skills    BETT 2009- Londra: Siveco&Sanako

 

 

Pagină actualizată la 04 August 2013.