diff --git a/prolog/ai.html b/prolog/ai.html new file mode 100644 index 0000000..80d59f6 --- /dev/null +++ b/prolog/ai.html @@ -0,0 +1,205 @@ + + + + Artificial Intelligence with Prolog + + + + + + + + + +

+

+

Artificial Intelligence with Prolog

+ +

Introduction

+ + What is intelligence? Various explanations and definitions + have been put forward by different researchers. + Intelligence has been defined, among many other proposals, + as the ability to acquire and apply knowledge, and as the capacity + for logical reasoning and self-awareness. It has been related to + understanding, solving, planning, and several other concepts and + tasks. It has been categorized into different kinds of + intelligence, such as emotional intelligence, social + intelligence and so on. + + +

+ + The word stems from the Latin verb intellego "I understand, + realize, perceive, see, notice" (among other meanings), + from lego "I gather, collect, take, read" (among other meanings). + +

+ + Since no generally accepted definition of intelligence is + available, it is even harder to define what artificial + intelligence is. Broadly speaking, we can distinguish + two different categories of artificial intelligence (AI): + + + + So far, we have seen a lot of progress in weak AI. For + example, machines have been built that + play chess, Go, + Jeopardy + and many other games even better than the most able humans. Many + of us are routinely using partially self-driving trains and + subways, and we currently witness the first attempts at + self-driving cars. + +

In contrast, strong AI has remained out of reach. + In fact, it has + been argued, + and further argued, + that strong AI is inherently impossible to implement. + +

Approaches

+ + Broadly speaking, we distinguish two possible approaches + towards implementing AI: + +
    +
  1. symbolic approaches: + +
  2. +
  3. statistical approaches: + + +
  4. +
+ + Both approaches have been widely known among researchers, and have + also been used in practice, for many decades. Prolog is frequently + associated with symbolic approaches. Well-known + applications of this kind + are Wumpus World, Escape + from Zurg and Connect 4. + Prolog can of course also implement statistical approaches. For + example, check + out ProbLog, + cplint + and AILog 2 + for probabilistic logic programming and reasoning with + uncertainties. + +

+ + The approaches have different advantages and drawbacks: A symbolic + approach is typically amenable to formal verification. The + rules are explicitly available, and you can check whether they are + complete, and whether they express what you intend. + Using inductive logic programming (ILP), you can even let a + program learn rules based on positive and negative + examples. See for example + the Metagol + system. However, not all tasks are amenable to symbolic + approaches, because the rules may be too hard to express. + For example, it is hard to express rules that determine whether a + musical piece is borderline atonal, or whether a photo + contains a painting of a flower. + +

+ + On the other hand, statistical approaches have the ability to + acquire rules implicitly, based on + so-called training-, test- + and validation sets. This is convenient, because you + do not have to think about the rules yourself, and the machine may + derive rules that are too hard for you to encode. Unfortunately, + this also comes with significant drawbacks: You can no longer + reason about the rules explicitly, and the obtained mechanism may + produce colossal outliers that are hard to remedy. For example, it + may misclassify the picture of a penguin as a car if you change a + single pixel. + +

Prolog and AI

+ + Prolog has very strong historic ties with AI. In 1982, Japan + started a very ambitious government project called the Fifth + Generation Computer System (FGCS) with the goal to create + a massively parallel computer, using concurrent + logic programming as the software foundation of the + project. + +

+ + When I visited Japan, I asked a retired Japanese scientist who had + worked on the project why the project had failed. He said: "What + do you mean, 'failed'? All my colleagues who have worked on + the project went on to become professors!" Another + researcher told me that the project achieved what was actually + intended: a way to input Japanese characters into computers. + +

+ + In my view, a major achievement of the scientists who had worked + on this project was that they managed to convince the government + to fund an interesting and very ambitious project with + large sums. + +

+ + By the end of the FGCS project, commodity hardware had become so + powerful that custom-built machines as those constructed by the + project were hardly needed anymore. + +

+ + Now, several decades later, is it not time + to try again? Is it not time to convince our + governments and funding agencies that we want to benefit from the + power of Prolog to build applications, and do interesting + research? + +

+ + Here are a few ideas: + + + + +


+ More about Prolog + +


+ + Main page + + + + diff --git a/prolog/toc.js b/prolog/toc.js index 348b8dc..274a87f 100644 --- a/prolog/toc.js +++ b/prolog/toc.js @@ -86,6 +86,9 @@ var toc = new Array( { link: "/prolog/memoization", title: "Memoization" }, + { link: "/prolog/ai", + title: "Artificial Intelligence" + }, { link: "/prolog/horror", title: "Horror Stories" },