Using the backtracking mechanism, alternative rules will apply and other valid solutions will be found. Both of these types of nondeterminsm are considered useful in AI applications, especially for those dealing with logic. The simplicity of solving problems recursively makes Prolog programs smaller and understandable even when coping with large, real life AI problems. Additionally, many AI problems are recursive in nature, increasing the suitability of Prolog.
Lists are built-in in Prolog while in most other languages they are not, making faster and easier the writing of Prolog programs that require list handling. This intelligent feature can assist AI problem solving where in many cases the decisions that are made are based on situation matching.
This Prolog ability can be found really helpful in specific areas of AI, such as natural language processing, computer vision and intelligent database search. The features described above make Prolog suitable for developing applications that solve AI Problems. Such an area is that of Decision Support Systems. Rules that support decisions can be expressed as Prolog rules, declaratively in pure logic, making development and maintenance of these systems mush easier.
OTAS automatically generates and analyzes investment strategies based on standard vertical option combinations. Its main elements are: a portfolio maintenance module that creates and updates portfolios and provides expert recommendations, a numeric database containing stock market data, a symbolic database containing rules describing standard options combinations and a linear algebra module for the analysis of options combinations.
Except from financial decisions, medical decisions can be supported by similar systems written in Prolog. OSM supports a number of knowledge and information retrieval functions, providing the user with rapid access to textual information from text sources, knowledge bases or patient database. The system incorporates a version of the Oxford Text topic of Medicine, a author general medical reference work, and uses its indexes to retrieve text.
Decision support systems can also take the form of a computer based advisor. This decision support system estimates weather-related effects on highway maintenance operations, as well as on airports, transportation, recreational activities, agribusiness and so forth.
Its purpose is to be used as a user-interactive hour weather prediction system for snow and ice control. Pattern matching capabilities and the declarative nature of grammar definitions, make Prolog a handy and powerful tool for processing natural language. For example, CAT2 Sharp, is a unification-based natural language processing system, designed for analysis, generation and translation of natural language sentences. CAT2 is used for multilingual machine translation and for automatic translation of informative texts although the emphasis has been on European Commission texts, as well as general purpose texts.
It embodies a particular formalism for natural language processing, as well as a grammar development environment. This is a machine translation system for translating English to German.
The system is based on a grammatical formalism called Modular Grammars based on slot filling techniques, which includes some automatic semantic translation and handling of metagrammatical rules.
The principle aim of the system is to translate computer manuals from English into German. This is because, in most of the cases, knowledge in such systems is expressed in the form of rules. These rules can be easily expressed in Prolog syntax. After that, by using unification and Prolog search mechanism, inference can be done. Its aim is to test and diagnose complex printed circuit boards. Stack Overflow for Teams — Collaborate and share knowledge with a private group.
Create a free Team What is Teams? Learn more. Why is Prolog good for AI programming? Asked 10 years, 5 months ago. Active 5 years, 10 months ago. Viewed 33k times. Improve this question.
Paul Graham has an example in On Lisp. One of my classmates was telling me this too. Thanks for the nice aside! Making one that is efficient and fully-functional is non-trivial in any language. Add a comment. Active Oldest Votes. From the preface to Prolog Programming for Artificial Intelligence : Prolog is a programming language centred around a small set of basic mechanisms, including pattern matching, tree-based data structuring and automatic backtracking.
Improve this answer. My minor addition here would be that Prolog allows you to declare facts , and then rules based on those facts. Your rules can then be used by Prolog to reason and answer other queries by logically deducing the answers. For example, if a fact states that A is an ancestor of B and another fact states that B is an ancestor of C, then Prolog can deduce that A must be an ancestor of C without you having to write an algorithm to check it.
Bitgarden Bitgarden 6 6 silver badges 8 8 bronze badges. I read in my research that Prolog makes expert systems easy to implement. Thanks for backing that up with some explanation : — 2rs2ts. Steve Steve 8, 1 1 gold badge 27 27 silver badges 45 45 bronze badges. I took 2 Prolog modules at University and very much enjoyed developing in the language. In declarative programming, we tell the computer what problem we want solved. However, in Prolog, we are often forced to give clues as to the solution method.
Prolog in AI Backtracking Even when a search path ends at a dead end, the backtracking mechanism of Prolog retreats back down the search path to try another path. This feature makes Prolog exceptionally suitable for a number of search problems that AI faces. It also provides the additional advantage of finding more than one solution of the problem, in the case that backtracking is forced, after finding a first solution.
Because a great number of AI problems can be represented as a problem of finding the right path in the search space, the built-in depth first mechanism of Prolog, accompanied with backtracking, make Prolog suitable for such applications. Declarative nature Programming in Logic using Prolog, remove the imperative serial order nature of other languages and allow programmer to solve a problem by describing the problem itself rather than defining a solution.
The programmer writes programs by declaring the facts and the rules that apply to the problem in hand and then makes queries in order for Prolog to return valid solutions. This high level of abstraction makes Prolog suitable for AI applications where the programmers should give emphasis on the problem itself rather than on the computer idiosyncratic commands that they should impose to the computer system. Although the rule that will execute is the first one that matches the goal, we can ask for more than one solution.
Using the backtracking mechanism, alternative rules will apply and other valid solutions will be found. Both of these types of nondeterminsm are considered useful in AI applications, especially for those dealing with logic. List handling mechanism The data structure of List is very important for handling AI problems e. Lists are built-in in Prolog while in most other languages they are not, making faster and easier the writing of Prolog programs that require list handling.
Pattern matching and unification The use of unification to find the most general common instance of two formulas or patterns makes pattern matching a build-in feature of Prolog. This intelligent feature can assist AI problem solving where in many cases the decisions that are made are based on situation matching. This Prolog ability can be found really helpful in specific areas of AI, such as natural language processing, computer vision and intelligent database search.
Recursion, instead of Iteration Because iteration constructs are not provided in Prolog, recursion should be used instead. The simplicity of solving problems recursively makes Prolog programs smaller and understandable even when coping with large, real life AI problems. Additionally, many AI problems are recursive in nature, increasing the suitability of Prolog. That's it! Even when a search path ends at a dead end, the backtracking mechanism of Prolog retreats back down the search path to try another path.
Programming in Logic using Prolog, remove the imperative serial order nature of other languages and allow programmer to solve a problem by describing the problem itself rather than defining a solution.
0コメント