Global+Optimization+Algorithms+Theory+and+Application_Part12

Global+Optimization+Algorithms+Theory+and+Application_Part12...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: 4.10 Problems Inherent in the Evolution of Algorithms 221 Halting Problem The Halting Problem is basically an instance of the Entscheidungsproblem and asks for an algorithm that decides whether another algorithm will terminate at some point in time or runs forever if provided with a certain, finite input. Again, Turing [2065, 2066] proved that a general algorithm solving the Halting Problem cannot exist in general. One possible way to show this is to use a simple counter-example: Assume that a correct algorithm doesHalt exists (as presumed in Algorithm 4.2 ) which takes a program algo as input and determines whether it will terminate or not. It is now possible to specify a program trouble which, in turn, uses doesHalt to determine if it will halt at some point in time. If doesHalt returns true , trouble loops forever. Otherwise it halts immediately. In other words, doesHalt cannot return the correct result for trouble and hence, cannot be applied universally. Thus, it is not possible to solve the Halting Problem algorithmically for Turing-complete programs in a Turing-complete representation. One consequence of this fact is that there are no means to determine when an evolved program will terminate or whether it will do so at all (if its representation allows infinite execution, that is) [2011, 2254]. Langdon and Poli [1243] have shown that in Turing-complete linear Genetic Programming systems, most synthesized programs loop forever and the fraction of halting programs of size length is proportional to √ length , i. e., small. Algorithm 4.2 : Halting Problem: reductio ad absurdum begin 1 doesHalt( algo ) ∈ { true , false } 2 begin 3 ... 4 end 5 Subalgorithm trouble() 6 begin 7 if doesHalt( trouble ) then 8 while true do 9 ... 10 end 11 end 12 Countermeasures Against the Entscheidungsproblem For general, Turing-complete program representations, neither exhaustive testing nor algo- rithmic detection of correctness is possible. Model Checking Model checking 76 techniques [413, 1483] have made great advance since the 1980s. According to Clarke and Emerson [412], “Model checking is an automated tech- nique that, given a finite-state model of a system and a logical property, systematically checks whether this property holds for (a given initial state in) that model.” The result of the check- ing process is either a confirmation of the correctness of the checked model, a counterexample in which it fails to obey its specification, or failure, i. e., a situation in which no conclusion could be reached. Hence, in the context of Genetic Programming, a model checker can be utilized as a Boolean function ϕ : X mapsto→ B which maps the evolved programs to correct ( ≡ true ) or 76 http://en.wikipedia.org/wiki/Model_checking [accessed 2008-10-02] 222 4 Genetic Programming incorrect ( ≡ false ). As objective function, ϕ therefore is rather infeasible, since it would lead directly to the all-or-nothing problem discussed in Section 4.10.2 ....
View Full Document

{[ snackBarMessage ]}

Page1 / 20

Global+Optimization+Algorithms+Theory+and+Application_Part12...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online