00001 #include <fstream> 00002 #include <iostream> 00003 #include <iterator> 00004 #include <list> 00005 #include <vector> 00006 00007 #include "stats.hpp" 00008 tm_stats g_counter, c_counter; 00009 00010 #include "infinite_tape.hpp" 00011 #include "long_int.hpp" 00012 #include "state.hpp" 00013 #include "turing_machine.hpp" 00014 #include "non_halt_detection.hpp" 00015 #include "non_halt_data_structures.hpp" 00016 #include "machine_storage.hpp" 00017 #include "watch.hpp" 00018 00019 int main() 00020 { 00021 turing_machine<unsigned short> machine(6,0); 00022 00023 machine.set_halt_state(5); 00024 00025 machine.add_write_transition(0,0,1,1); 00026 machine.add_write_transition(0,1,0,1); 00027 machine.add_move_transition(1,0, turing_machine<unsigned short>::right, 2); 00028 machine.add_move_transition(1,1, turing_machine<unsigned short>::right, 2); 00029 machine.add_move_transition(2,0, turing_machine<unsigned short>::right, 3); 00030 machine.add_move_transition(2,1, turing_machine<unsigned short>::left, 2); 00031 machine.add_write_transition(3,0,1,4); 00032 machine.add_move_transition(3,1, turing_machine<unsigned short>::right, 4); 00033 machine.add_write_transition(4,0,0,5); 00034 machine.add_move_transition(4,1, turing_machine<unsigned short>::left, 0); 00035 00036 if(simpleLoopCheck(machine, 50)) 00037 std::cout << "yes" << std::endl; 00038 00039 return 0; 00040 }