import networkx as nx
import matplotlib.pyplot as plt
# สร้าง Directed Graph
G = nx.DiGraph()
# เพิ่มโหนด (สถานะของ Turing Machine)
states = ["q0", "q1", "qf"]
G.add_nodes_from(states)
# เพิ่มเส้นเชื่อมตาม Transition Function
edges = [
("q0", "q0", "a → A, R"),
("q0", "q0", "b → B, R"),
("q0", "q1", "c → C, R"),
("q1", "qf", "□ → □, L")
]
for start
, end, label in edges
: G
.add_edge
(start
, end, label
=label
)
# วาดกราฟ
pos = {"q0": (0, 1), "q1": (2, 1), "qf": (4, 1)} labels = {(u, v): d['label'] for u, v, d in G.edges(data=True)}
plt.figure(figsize=(6, 4))
nx
.draw
(G
, pos, with_labels
=True, node_color
="lightblue", node_size
=2000, edge_color
="black", font_size
=12)nx
.draw_networkx_edge_labels
(G
, pos, edge_labels
=labels
, font_size
=10)plt.title("Turing Machine Transition Graph")
plt.show()
aW1wb3J0IG5ldHdvcmt4IGFzIG54CmltcG9ydCBtYXRwbG90bGliLnB5cGxvdCBhcyBwbHQKCiMg4Liq4Lij4LmJ4Liy4LiHIERpcmVjdGVkIEdyYXBoCkcgPSBueC5EaUdyYXBoKCkKCiMg4LmA4Lie4Li04LmI4Lih4LmC4Lir4LiZ4LiUICjguKrguJbguLLguJnguLDguILguK3guIcgVHVyaW5nIE1hY2hpbmUpCnN0YXRlcyA9IFsicTAiLCAicTEiLCAicWYiXQpHLmFkZF9ub2Rlc19mcm9tKHN0YXRlcykKCiMg4LmA4Lie4Li04LmI4Lih4LmA4Liq4LmJ4LiZ4LmA4LiK4Li34LmI4Lit4Lih4LiV4Liy4LihIFRyYW5zaXRpb24gRnVuY3Rpb24KZWRnZXMgPSBbCiAgICAoInEwIiwgInEwIiwgImEg4oaSIEEsIFIiKSwKICAgICgicTAiLCAicTAiLCAiYiDihpIgQiwgUiIpLAogICAgKCJxMCIsICJxMSIsICJjIOKGkiBDLCBSIiksCiAgICAoInExIiwgInFmIiwgIuKWoSDihpIg4pahLCBMIikKXQoKZm9yIHN0YXJ0LCBlbmQsIGxhYmVsIGluIGVkZ2VzOgogICAgRy5hZGRfZWRnZShzdGFydCwgZW5kLCBsYWJlbD1sYWJlbCkKCiMg4Lin4Liy4LiU4LiB4Lij4Liy4LifCnBvcyA9IHsicTAiOiAoMCwgMSksICJxMSI6ICgyLCAxKSwgInFmIjogKDQsIDEpfQpsYWJlbHMgPSB7KHUsIHYpOiBkWydsYWJlbCddIGZvciB1LCB2LCBkIGluIEcuZWRnZXMoZGF0YT1UcnVlKX0KCnBsdC5maWd1cmUoZmlnc2l6ZT0oNiwgNCkpCm54LmRyYXcoRywgcG9zLCB3aXRoX2xhYmVscz1UcnVlLCBub2RlX2NvbG9yPSJsaWdodGJsdWUiLCBub2RlX3NpemU9MjAwMCwgZWRnZV9jb2xvcj0iYmxhY2siLCBmb250X3NpemU9MTIpCm54LmRyYXdfbmV0d29ya3hfZWRnZV9sYWJlbHMoRywgcG9zLCBlZGdlX2xhYmVscz1sYWJlbHMsIGZvbnRfc2l6ZT0xMCkKcGx0LnRpdGxlKCJUdXJpbmcgTWFjaGluZSBUcmFuc2l0aW9uIEdyYXBoIikKcGx0LnNob3coKQo=
import networkx as nx
import matplotlib.pyplot as plt
# สร้าง Directed Graph
G = nx.DiGraph()
# เพิ่มโหนด (สถานะของ Turing Machine)
states = ["q0", "q1", "qf"]
G.add_nodes_from(states)
# เพิ่มเส้นเชื่อมตาม Transition Function
edges = [
("q0", "q0", "a → A, R"),
("q0", "q0", "b → B, R"),
("q0", "q1", "c → C, R"),
("q1", "qf", "□ → □, L")
]
for start, end, label in edges:
G.add_edge(start, end, label=label)
# วาดกราฟ
pos = {"q0": (0, 1), "q1": (2, 1), "qf": (4, 1)}
labels = {(u, v): d['label'] for u, v, d in G.edges(data=True)}
plt.figure(figsize=(6, 4))
nx.draw(G, pos, with_labels=True, node_color="lightblue", node_size=2000, edge_color="black", font_size=12)
nx.draw_networkx_edge_labels(G, pos, edge_labels=labels, font_size=10)
plt.title("Turing Machine Transition Graph")
plt.show()