Page 200 - DCAP506_ARTIFICIAL_INTELLIGENCE
P. 200

Artificial Intelligence




                    Notes          Objectives

                                   After studying this unit, you will be able to:
                                      Understand the concerting English to prolog facts

                                      Discuss the goals execution and prolog terminology
                                      Illustrate the variables, control structures and arithmetic operators
                                      Understand the concept of matching, backtracking and lists
                                      Discuss the input/output and streams

                                   Introduction

                                   Programming Languages in Artificial Intelligence (AI) are the  major tool for exploring  and
                                   building computer programs that can be used to simulate intelligent processes such as learning,
                                   reasoning and understanding symbolic information in context. Although in the early days of
                                   computer language design the primarily use of computers was for performing calculations with
                                   numbers, it was also found out quite soon that strings of bits could represent not only numbers
                                   but also features of arbitrary objects. Operations on such features or symbols could be used to
                                   represent rules for creating, relating or manipulating symbols. This led to the notion of symbolic
                                   computation as an appropriate means for defining algorithms that processed information of
                                   any type, and thus could be used for simulating human intelligence. Soon it turned out that
                                   programming with symbols required a higher level of abstraction than was possible with those
                                   programming languages which were designed especially for number processing, e.g., Fortran.
                                   14.1 AI Programming Languages


                                   In AI, the automation or programming of all aspects of human cognition is considered from its
                                   foundations in cognitive science through approaches to symbolic and subsymbolic AI, natural
                                   language processing, computer vision, and evolutionary or adaptive systems. It is inherent to
                                   this very  complex problem  domain that  in the  initial phase of programming  a specific  AI
                                   problem, it can only be specified poorly. Only through interactive and incremental refinement
                                   does more precise specification become  possible. This is also due to the fact that typical  AI
                                   problems tend to be very domain specific, therefore heuristic strategies have to be developed
                                   empirically through generate-and-test approaches (also known as rapid proto-typing). In this
                                   way, AI programming notably differs from standard software engineering approaches where
                                   programming  usually starts  from a  detailed formal  specification. In  AI programming,  the
                                   implementation effort is actually part of the problem specification process.
                                   Due to the “fuzzy” nature of many AI problems, AI programming benefits considerably if the
                                   programming language frees the  AI programmer from the constraints of too many technical
                                   constructions (e.g., low-level construction of new data types, manual allocation of memory).
                                   Rather,  a declarative programming style is more  convenient using  built-in high-level  data
                                   structures (e.g., lists or trees) and operations (e.g., pattern matching) so that symbolic computation
                                   is supported on a much more abstract level than would be possible with standard imperative
                                   languages, such as Fortran, Pascal or C. Of course, this sort of abstraction does not come for free,
                                   since compilation of AI programs  on standard Von Neumann computers cannot be done  as
                                   efficiently as for imperative  languages. However, once a certain AI  problem is  understood
                                   (at least partially), it is possible to reformulate it in form of detailed specifications as the basis
                                   for re-implementation  using an  imperative language. From the  requirements of  symbolic
                                   computation and  AI  programming,  two new  basic  programming paradigms  emerged  as




          194                               LOVELY PROFESSIONAL UNIVERSITY
   195   196   197   198   199   200   201   202   203   204   205