Please download "beaver.zip" and unpack it. Afterwards compile and execute "sucher.java" Turing Machine: A machine M consisting solely of (Q,N,T,Delta,s,(q+),(q-)) that works on an infinitly long data band and where Q are M's states N are the non-Terminal help symbols T is the set of input symbols Delta is the state-change-function s is the starting state (q+) the stop and accept state (q-) the stop and do not accept state Where Delta looks like: Qx(N+T)->(Q+(q+)+(q-))xN+Tx{L,R,S} that is: in state %now read band symbol -goto-> new state, write symbol, move left / right / stay on the band The machine implemented in machine.java is somewhat restricted: Q is {0,1,2,3,4} or less N is {} T is {0,1} Delta is given to the construcor call s is 0 q+ is 5 q- is 6 The busy beaver problem is the problem that you have a machine as the restricted given above and want to produce as much 1 on the band as possible, with the restriction to stop sometime (i.e. your not allowed to run your machine forever, like; stay in state Q1 and write 1: (Q1,0)->(Q1,1,R) ) "sucher.java" runs a search over different Delta functions to find a good function. You may easily change/improve the search behaviour by changing the getNextMachine method in sucher.java when executing machine.java you see an example Delta function producing more than 4000 1's, the best one known so far.