Skip to content

Busy Beaver Turing Machine Simulator

License Build Status Python Version

Welcome to the Busy Beaver Turing Machine Simulator! đŸĻĢ

🧠 What is a Busy Beaver?

The Busy Beaver problem explores the limits of computation by seeking the Turing machine with the maximum number of 1s printed on the tape before halting, given a fixed number of states and symbols. It's a fascinating journey into the boundaries of what machines can compute.

🚀 Features

  • Modular Design: Clean separation of concerns for scalability and maintainability.
  • Multiprocessing: Efficiently simulates multiple Turing machines in parallel, speeding up the exploration process.
  • Comprehensive Reporting: Identifies and reports the most productive and longest-running halting machines.
  • Extensible: Easily modify the number of states, symbols, and other configurations to explore various scenarios.
  • User-Friendly Interface: Simple scripts to run simulations and analyze results without diving deep into the codebase.

📚 Documentation

Explore the comprehensive documentation to get the most out of the simulator:

  • Architecture Overview: Dive into the system's design and understand how different components interact.
  • Usage Guide: Step-by-step instructions on setting up and running simulations.
  • Contributing: Want to contribute? Learn how you can help improve the simulator.
  • API Reference: Detailed information about the simulator's classes and functions.

🛠 Getting Started

Ready to explore the Busy Beaver problem? Here's how to get started:

  1. Clone the Repository

bash git clone https://github.com/starolis/busy-beaver.git cd busy-beaver

  1. Set Up the Environment

    bash python3 -m venv venv source venv/bin/activate

  2. Install Dependencies

    bash pip install -r requirements.txt

  3. Run the Simulator

    bash python run_simulation.py

🤝 Contributing

We welcome contributions to make this simulator even better! Check out our Contributing Guidelines for more details.

📈 Results

After running simulations, you'll receive detailed reports highlighting:

  • Most Productive Machines: Turing machines that print the highest number of 1s before halting.
  • Longest-Running Machines: Machines that take the most steps to reach a halting state.

Explore these results to gain insights into the computational power and efficiency of different Turing machine configurations.

📄 License

This project is licensed under the MIT License.

đŸ“Ģ Contact

Have questions or feedback? Reach out to matt@starol.is

🎓 Acknowledgments

  • Inspired by the fascinating concepts in Computation Theory and those who have pushed the field forward. 🙏