under the same title. At some later point link that is the application of logic programming in general and Prolog in particular, to the riddles of wit and logic games, I added other issues strictly related to that programming language, particularly regarding its origin, evolution and some of its versions developed over time with less success and permanence maso later.
In the book "Helping memory. Techniques and tricks for remembering" (Plaza & Janes, 2001, ISBN: 84-8450-527-8) its author, Josep M ª Albaigès, includes, as essential complement to the excellent description in the book is addressed on retention processes, memory, and memory retrieval techniques of saving, a curious "Dictionary of mnemonics, which collected, sorted alphabetically in the issue which they refer, all kinds of mnemonic devices (of
mnemo- +
- markering , those who serve to assist the memory), some rather complex and more affordable, referring to many different aspects. In this same dictionary is the following definition:
- "We called mnemonics to any trick or shortcut that allows recall procedure, so maso least provisionally, a concrete thing and generally brief."
- In "Helping memory ...", page 95
- I stay for the occasion with two curiosities referring to the universe of ratings, they understood in broad sense (I quote):
Decimal Classification in library The themes of the decimal classification usually: 0. General Works - 1. Philosophy - 2. Religion - 3. Social Studies - 4. Language - 5. Pure Science - 6. Technology - 7. Art - 8. Literature - 9. History. To be remembered with the phrase: "General: religious philosopher! Partners: speak purely! Technicians and artists, historical write!".
is also very curious description of menotécnica syllogisms (and how to remember the figures where they classified scholastics), the number pi , and several principles or fundamental theorems of physics and statistics, among others, but given the relatively large area of \u200b\u200bthe texts in question, I refer to the query and reading the book referenced, if interested in this topic.
syllogistic logic or Aristoteliantrying to determine the truth or falsity of certain philosophical argument, by contrasting propositions or premises , and in a sense can be considered as a formalization No, based on natural language expressions of common sense. The use of the syllogism by Scholastic
is understandable given the integration of philosophy of Aristotle in Christian dogma characteristic of the task of reflection developed by this group of thinkers in Western philosophy between mid-eleventh century and the mid-fifteenth century or so. Josep M ªAlbaigès is also editor of Carrollia
,
[...] "[...] press organ of Mensa Spain
that is devoted to mathematics recreational linguistics, Experimental Literature, Logic, Science and everything would have liked toof recent newsletters years are available in PDF formatLewis Carroll. "
Source
The
. It is also highly recommended, if you are interested in these issues, the "Stock puzzles" (solved) of Mensa Club
, most of them originally published in the pages of Carrollia. On another "utility" practice, "Official Gazette of the Faculty of Useless (BOFCI) is another publication of Mensa Club whose reading should not be missed ... And while we're at least tangentially, game logic and wit, to mention two blogs in English in a monograph devoted to these issues: Ingenio Games & Puzzles and Small Enigmas you
. In this latter site is located a good number of links that lead to other pages related themes (see the "Good pages of wit"). Linking Prolog (J. Peri, National University of Luján , Argentina, in PostScript format ), where we read:
In" Solving puzzles with Prolog
" The examples are written in Micro-Prolog notation , which differs substantially from the subsequently released as a standard facto by the so-called "Edinburgh Prolog, as explained in an appendix at the end of the document (Appendix II - Differences between Micro-Prolog and the notation of Edinburgh), although the semantics execution is identical in both cases. The rationale underlying the examples given is fully valid in any case, regardless of the notation with which they represent. The author of this paper is coordinator of the Group Functional and Logic Programming (UNL
, UNP, Argentina) whose members have also published other interesting documents and papers on various aspects of logic programming, searchable on the website of that group (be patient with the downloads, the server is quite slow, and are delayed for some time). The use of Micro-Prolog notation in the work of this group is explained on the grounds that its members have developed an interpreter for Prolog, Edulog
oriented towards educational purposes and OPERATION n in their courses and seminars, which just makes use of the notation we have been discussing. The project seems to be paralyzed, at least in the form of public communication, because the pages take a long time without being updated. The prototypeEdulog is accessible from a link located on page the course "Functional Programming and Logic ", although the download file is password protected. I suppose contacting the project managers, and exposing the reasons why you want to access your application, there will be no problem getting the corresponding key. notation implemented by Micro-Prolog is more limited and less flexible than the standard of Edinburgh itself: for example, any variable names are very restricted, and the interpreter will comply with the first solution that meets the stated objective, as opposed to the usual modern performers based on standard Prolog, which is trying to provide all possible solutions to exhaust the knowledge base program and the possibility of unifying the variables involved. Other differences relate to the use, by Micro-Prolog, predicate particular predefined character. The basic differences between the two types of notations are well explained, with examples, the paper "Differences between notation Micro Edinburgh Prolog and
" found in the page mentioned subject, although the archive that serves as a means to download the original Word format is also password protected, so again it becomes necessary to contact with their authors to obtain an authorization.CP / MMicro-Prolog was a dialect of Prolog built around 1980 to be executed originally in the first personal computers, equipment, low processing power and memory compared with the current parameters, based on the Z-processor 80 of Zilog
predecessor of PC / MS-DOS
(ZX Spectrum, Commodore 64 , etc. ). The compiler and interpreter LPA Prolog Professional notation supports Micro-Prolog, although it should be noted that this is a "dialect" completely obsolete, given its obvious limitations, being the standard notation of Edinburgh (also known as syntax-DECSYSTEM 10) the most widespread, and therefore used in almost all current implementations of Prolog language interpreters. Since this is another link can download the original interpreter for Micro-Prolog. WF Clocksin and CS Mellish, in his book "Programming in Prolog" (Gustavo Gili, 1993; ISBN: 84-252-1339-8), devoted an entire section, "Appendix E - Micro-Prolog, to the explanation of the syntax implemented by Micro-Prolog:
" Micro-syntax Prolog is quite different [...] The basic idea is that there is only one type of term: the list. If we build the 'term' with
functor fand four arguments, we in fact a list of five elements, f as the head, and appearing on four arguments as the remaining elements. Thus, what the syntax of our 'core' is type:
f (a, g (2.3), c)be written in Micro-Prolog: (f (g 2 3) c) . Here we also see different syntax for lists, where lists are enclosed in parentheses, with its elements separated by spaces. clauses are represented as lists of terms, in which the first is the head of the clause, and the rest are goals, which taken as a conjunction, form the body. Here is a more complicated clause [...]: ((alter (z1 (X E - Micro-Prolog Moreover, in Turbo Prolog programs are divided into different sections: domains, clauses, predicates , database and objectives. The explanation, both on the syntax of Micro-Prolog, as on other general aspects of this dialect (predefined predicates particular, facilities for debugging code, etc.), Has some length, so I refer to the referenced site for more information, and in particular, and referred to the Appendix E, Appendices "C - Different versions of Prolog" (provides a brief overview of this particular), and "D - Prolog of DECSYSTEM-10."
Catholic University of Leuven, Belgium,Computer Engineering Department ), one of the leading figures in the world of programació n logic, is the author of an article, highly recommended reading, referred to the development of Prolog en la década que transcurre
a partir de la aparición de la arquitectura WAM :
" 1983-1993:
The Wonder Years of Sequential Prolog Implementation " (en formato PS ):
"This report surveys the major developments in sequential Prolog
implementation during the period 1983-1993. In this decade, implementation
technology has matured to such a degree that Prolog has left the university
and become useful in industry. The survey is divided into four parts. The
first part gives an overview of the important technical developments starting
with the Warren Abstract Machine (WAM). The second part presents the history
and the contributions of the major software and hardware systems. The third
part charts the evolution of Prolog performance since Warren?s DEC-10 compiler.
The fourth part extrapolates current trends regarding the evolution of
sequential logic languages, their implementation, and their role in the marketplace."1983-1993:
"By 1983 Warren had developed the WAM, a structure-copying execution
model for Prolog that has become the de facto standard implementation technique
[...]. The WAM defines a high-level instruction set that maps closely to
Prolog source code. [...]"
En "
The Wonder Years of Sequential Prolog Implementation"
La tesis doctoral de Peter Van Roy versaba precisamente sobre la implementación
de the WAM: "Can Logic Programming Execute
as Fast as Imperative Pro-gramming?
" (PhD Thesis, Department of Computer Science, UC Berkeley, Report UCB / CSD 90/600, 1990).The appearance of the Warren Abstract Machine or WAM(David HD Warren, 1983) marked a turning point in the evolution of language Prolog, because it entailed the definition of a set of high level instruction and an execution model for this language, the materialization of
Constraint Logic Programming (Constraint Logic Programming, CLP). Is the basis adopted as a de facto standard for the implementation of portable interpreters for Prolog, making it a multi-language with features similar to compiled languages \u200b\u200bface procedural character, as alos referred runtimes. Thus, in the website of the SWI-Prolog interpreter read: "SWI-Prolog is a Prolog Implementation based on a subset of the WAM (Warren Abstract Machine)." "[...] is based on a very restricted form of the WAM [...] described in Bowen
& Byrd, 1983
easily be compiled into this language and the abstract machine code is
easily decompiled back into Prolog. As it is also possible to wire a standard
4-port debugger in the
WAM interpreter there is no need for a distinction between compiled and interpreted
code. Besides simplifying the design of the Prolog system itself this approach
has advantages for program development: the compiler is simple and fast,
the user does not have to decide in advance whether debugging is required
and the system only runs slightly slower when in debug mode. The price
we have to pay is some performance degradation (taking out the debugger
from the WAM
interpreter improves performance by about 20%) and somewhat additional
memory usage to help the decompiler and debugger."
"SWI-Prolog extends the minimal set of instructions described in Bowen
& Byrd, 1983 to improve performance. While extending this set
care has been taken to maintain the advantages of decompilation and tracing
of compiled code. The extensions include specialised instructions for unification,
predicate invocation, some frequently used built-in predicates, arithmetic,
and control ( ;/2 ,
( \\ + / 1 ). "
In). WAM architecture has enabled thereby to develop versions of Prolog " compiled "at the implementation level, even if the programs continue to save and run from files that contain code written high-level language. In general, a virtual machine is therefore an abstract procedure to execute sets of instructions written in formal language, such as in this case, Prolog.SWI-Prolog Reference Manual
- SWI-Prolog 1.1
"[...] if we use an interpreted programming environment of Prolog [...] efficiency in terms of execution speed is concerned, decreases, as in any language, to address to a compiled language. The instruction set of modern computers is very low in relation to the semantics of Prolog, so most compilers [...] Prolog perform a clean build an intermediate language rather than directly to machine language. The most popular language is the Warren Abstract Machine (WAM) [...] abstract set of instructions for use in Prolog and can be interpreted or translated into machine language. Other Prolog compilers that translate a high level language such as Lisp or C, and use the compiler to translate into machine language.
Warren Before working on the compilation of inference in Prolog, logic programming was too slow for widespread use. The Compilers designed by Warren and others allowed to appropriate speeds Prolog [...] More recently, the application of modern technology has allowed compilation [...] Prolog reach optimal speeds as it does compete with C in terms of standard aspects [...]. [...] Being able to write a planner or a natural language parser a few dozen lines of Prolog, make it more preferable than C in the realization of prototypes much of the research projects IA of small scale. "
Source (, whose first versions date back to 1971. When we speak of such systems do not have to think about the PCgeneral frame structure of the page
cited)More information about" Warrens's Abstract Machine: A Tutorial Reconstruction "(in PDF , Hassan Aït-Kaci, The MIT Press, Cambridge, MA, 1991). The following paper describes the system and the notation DECSYSTEM-10 Prolog, which is based the standard of Edinburgh, who remember is the de facto standard Prolog system today, picked up the aforementioned existing ISO this language (ISO / IEC 13211-1:1995 Part 1: General core):
"DECSYSTEM-10 Prolog User's Manual ." DL Bowen (ed.), L. Byrd, FCN Pereira, LM Pereira, and DHD Warren, Department of Artificial Intelligence, University of Edinburgh, November 10, 1982. While the format of the earlier document is. "Doc", this is actually a plain text file, so it disturbs the disposition thereof when opened with MS Word. Also: HTML version, and Castilian translation of this manual, limited to three chapters. The DECSYSTEM-10 Prolog was created and developed an implementation (1977, 1980) for D. Warren and others (F. Pereira, L. Byrd, L. Pereira) in the Artificial Intelligence Department at the University of Edinburgh, to operate computer systems DECSYSTEM-10. Together with the Prolog described in the book referenced in Clocksin and Mellish, versions of the DEC-10 Prolog and its subsequent developments are the basis or standard Edinburgh syntax.
DECSYSTEM-10 The initials refer to the computer system that was based on the Prolog implementation of the University of Edinburgh we have been discussing, manufactured by Digital Equipment Corp. TheDECsystem-10/20 systems were 36-bit architecture
s, later in time and initially oriented towards other end users, but was located equipment for processing power and calculation (and all is said, by difficulties in the management and operation), on the scale of large computers known as mainframes. It is not uncommon to find in manuals and guides Antique Prolog (eg those related to C-Prolog [
HTML] [PS). As the title indicates, this text explains the theoretical foundation and operation of a program designed to search for the best possible methods of solving the problem posed by the famous Rubik's Cubein
] and general implementations of the first specification derived DECSYSTEM-10 Prolog), references to TOPS -20, DECsystem-10/20 developments, and other systems
DEC. On the basis of this first Prolog interpreter / compiler was created in 1983, one of the first performers of such language pure, C-Prolog
(F. Pereira, D. Bowen, L. Byrd), written in C language, which helped to consolidate the standard Edinburgh, as a reference for future implementations. To end this entry, mentioning the example of practical application of Prolog to solve logic games and puzzles under " Solving Rubik's Cube Using the Bestfast Algorithm and Profile tables - A Prolog program and demonstration of an efficient heuristic search method "(by Winston Miller DL
. The files that make up the program (see end of document) are originally written to be executed under the arity Prolog interpreter (free use) but, by enduring the notacióny
of predicates is Edinburgh standard, the program in principle should also be able to run properly under SWI-Prolog.
example) based on the type known as "best-first search", which in turn derived from the search method "breadth-first search" or "breadth-first search (example
), which evaluates each node the same level, within the search tree (meaning the representation of directed graph-the nodes that are connected by arrows indicating the direction of movement "of a particular search problem), before continuing the process at the next level of depth. In contrast this method lies Search "depth-first" or "depth first" ( example), which explores each "branch" of the tree until you reach "terminal node", before proceeding to search another way. This is precisely the kind of search for "internal" by default holds the Prolog (depth-first search from left to right in And-Or tree) into the compiled knowledge base, the try to meet the objectives. "The A * [...] is an efficient and Widely Used
pathing algorithm. The A * Keeps track of the cost of getting from point A to point B overalls and the cost of getting from the Beginning point to the end point. The algorithm Follows the path of least cost to find a solution. The A * uses up a lot of memory and Can Be very slow on rough terrain - THEREFORE it is Not Used for real-time robotics
pathingtoo often. " Source Two basic types search algorithms mentioned (there are many others), they can eventually add heuristic evaluation, consisting of rules able to assess whether, based on certain types of prior information Search is following the right path, for thereby increasing the probability of finding the right solution. Heuristic methods try to apply two criteria: a) choice of the paths that might fail are more likely to like this "pruning" the search space and thus reduce its size, or b) verification, first, the roads most likely to succeed. The heuristic search searches are therefore based on experience. The addition capacity heuristic search methods of "breadth-first", giving rise to algorithms "best-first search", as the A * used in the program applied to the resolution states Rubik's Cube. These three basic types of search algorithms and the concepts and basic theorems of Graph Theory [1 ] [ 2] [3 ] necessary for comprensióny knowledge of their mechanisms of operation, are fully described in Chapter 11. "Basic Problem-Solving Strategies, "12." Best First: A Heuristic Search Principle ", and 13." Reduction and Problem AND / OR Graphs "of the work of Ivan Bratko," Prolog programming for Artificial Intelligence (Addison-Wesley, 1994, ISBN: 0 -201-41606-9).
Moreover "Artificial Intelligence Through Search More information:" Games as teaching tools. Formalization of Logic in Prolog Games ( F. Llorens, M ª Jesús Castel, F. Mora and C. Villagra, in PDF ). Turbo Prolog.
Early History of Prolog: The birth of Prolog / La naissance de Prolog (in PDF , P. Roussel).
Course Notes on Prolog: some algorithms A *. , compatible with Visual Prolog
+
IDA * (Iterative Deepening A * search), and b) in LPA Win-Prolog syntax . The A * algorithm in Prolog (in
Prolog Tutorialof JRFisher ).
A * for the Masses
- (in
- generation5.org ).
0 comments:
Post a Comment