Abstract
I start with three examples illustrating my contribution to constraint programming: the problem of cutting a rectangle into different squares in Prolog III, a complicated constraint for Prolog IV, the optimal narrowing of the sortedness constraint. Then I switch to something quite different: to machines, in particular to Turing machines. After the declarative aspect, the basic computational aspect!
The paper provides a framework enabling to define and determine the complexity of various universal programs U for various machines. The approach consists of first defining the complexity as the average number of instructions to be executed by U, when simulating the execution of one instruction of a program P with input x.
To obtain a complexity that does not depend on P or x, we introduce the concept of an introspection coefficient expressing the average number of instructions executed by U, for simulating the execution of one of its own instructions. We show how to obtain this coefficient by computing a square matrix whose elements are numbers of executed instructions when running selected parts of U on selected data. The coefficient then becomes the greatest eigenvalue of the matrix.
We illustrate the approach using two examples of particularly efficient universal programs: one for a three-symbol Turing Machine (blank symbol not included) with an introspection coefficient of 3 672.98, the other for an indirect addressing arithmetic machine with an introspection coefficient of 26.27.
Access provided by Autonomous University of Puebla. Download to read the full chapter text
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Bleuzen, N., Colmerauer, A.: Optimal Narrowing of a Block of Sortings in Optimal time. Constaints 5(1-2), 85–118 (2000), http://alain.colmerauer.free.fr
Colmerauer, A.: An Introduction to Prolog III. Communications of the ACM 33(7), 68–90 (1990), http://alain.colmerauer.free.fr
Colmerauer, A.: Prolog IV (1995), http://alain.colmerauer.free.fr
Colmerauer, A.: On the complexity of universal programs. In: Machine, Computations and Universality (Saint-Petersburg 2004). LNCS, pp. 18–35 (2005), http://alain.colmerauer.free.fr
Minsky, M.: shape Computations: Finite and Infinite Machines. Prentice-Hall, Englewood Cliffs (1967)
Rogers, H.: Theory of Recursive Functions and Effective Computability. McGraw-Hill, New York (1967); fifth printing. MIT Press (2002)
Rogozin, Y.: Small universal Turing machines. Theoretical Computer Science 168(2) (November 1996)
Sipser, M.: Introduction to the Theory of Computation. PWS Publishing Company (1997)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Colmerauer, A. (2008). Back to the Complexity of Universal Programs. In: Stuckey, P.J. (eds) Principles and Practice of Constraint Programming. CP 2008. Lecture Notes in Computer Science, vol 5202. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-85958-1_1
Download citation
DOI: https://doi.org/10.1007/978-3-540-85958-1_1
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-85957-4
Online ISBN: 978-3-540-85958-1
eBook Packages: Computer ScienceComputer Science (R0)