Skip to content

Shweta31410/Turing-Machine-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Turing-Machine-Project

✅ README.md markdown

🧠 Turing Machine Project – Decidability & Undecidability

This project explores key concepts in Theory of Computation, focusing on decidability and undecidability through simulations of Turing Machines using Python.

It includes command-line simulations for classic problems like:

  • ✅ Palindrome Checker (Decidable)
  • ❌ Halting Problem (Undecidable)

🚀 Features

  • ✅ Python-based CLI Turing Machine simulator
  • 🔁 Step-by-step transitions for custom inputs
  • 📚 Demonstrates theoretical concepts with real code
  • 🧠 Educational use for TOC students & enthusiasts
  • 📝 Full project report included (PDF)

🛠️ How to Run

1. Clone the repository:

git clone https://github.com/shweta31410/Turing-Machine-Project.git
cd Turing-Machine-Project
2. Run simulations
Palindrome TM:
bash
python3 palindrome.py
Halting Problem Simulation:
bash
python3 halting_problem.py
Make sure you have Python 3 installed. No extra libraries required!

📂 Project Structure
bash
Turing-Machine-Project/
│
├── tm/                        # Core Turing Machine logic
│   ├── tape.py
│   ├── turing_machine.py
│
├── palindrome.py             # Decidable example
├── halting_problem.py        # Undecidable example
│
├── report/                   # Full PDF Report with code & screenshots
│   └── Turing_Machine_Report.pdf
│
│
└── README.md
🙏 Acknowledgment
This project was developed as part of a Theory of Computation course.
Special thanks to professors and mentors who deepened our curiosity about computability and machines.

📚 References
Michael Sipser, Introduction to the Theory of Computation

NPTEL TOC Lectures

GitHub resources on Turing Machine simulations

Wikipedia: Halting Problem

🧑‍💻 Author
Shweta
GitHub: @shweta31410

📜 License
This project is open-source and free to use for educational purposes.

---

### ✅ To Add It to GitHub:
1. Create a new file in your repo called `README.md`
2. Copy-paste the above content into it
3. Commit and push it:

```bash
git add README.md
git commit -m "Added project README"
git push origin main

About

A Python-based project exploring Decidability and Undecidability using Turing Machine simulations

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages