资源简介
用python实现深度,广度,三种启发式搜索解决八数码问题。附有图形化界面和可执行文件。
并且有详细的实现思路。
代码片段和文件信息
#------------八数码问题
import tkinter as tk
from tkinter import ttk #导入内部包
import random
import problem1
import problem2
import problem3
import problem4
import problem5
win=tk.Tk()
win.title(‘八数码问题‘)
tipslb=tk.Label(win text=“注:深度搜索中搜索最大深度设为8为了节省运行时间, \
\n广度搜索被设置为至多遍历1000个节点,点击下方两个按钮选择手动或随机产生 \
\nNone代表算法结束时仍还没找到结果“bg=‘#B5BBB5‘)
tipslb.pack()
label1=tk.Label(wintext=“输入初始状态:“)
label1.pack()
#输入框
e_text=tk.Entry(winshow=Nonefont=(‘Arial‘ 14))
e_text.pack(padx=2pady=10)
e_text.insert(0‘283164705‘)
label2=tk.Label(wintext=“输入目标状态:“)
label2.pack()
e_text2=tk.Entry(winshow=Nonefont=(‘Arial‘ 14))
e_text2.pack(padx=20pady=10)
e_text2.insert(0‘123804765‘)
#随机生成初始数据
def random_excute():
str_v1=‘‘.join(random.sample(‘012345678‘9))
str_v2=‘‘.join(random.sample(‘012345678‘9))
textshow.insert(‘end‘‘随机生成的数据:\n‘)
textshow.insert(‘end‘str_v1)
textshow.insert(‘end‘‘---->\n‘)
textshow.insert(‘end‘str_v2+‘\n‘)
insert_v(str_v1str_v2)
#获取输入数据
def get_input_values():
str1=e_text.get()
str2=e_text2.get()
insert_v(str1str2)
#插入数据
def insert_v(str1str2):
r1ar1b=problem1.DFS_main(str1str2)
r2ar2b=problem2.BFS(str1str2)
r3ar3b=problem3.main(str1str2)
r4ar4b=problem4.heuristic_search(str1str2)
r5ar5b=problem5.HS5.run(str1str2)
num=[‘扩展节点数‘r1ar2ar3ar4ar5a]
tree.insert(““0values=num) #插入数据
num2=[‘生成节点数‘r1br2br3br4br5b]
tree.insert(““1values=num2) #插入数据
tree.insert(‘‘0)#插入空行
#显示数据的文本框
textshow = tk.Text(win width=20height=3)
tree=ttk.Treeview(winshow=“headings“)#表格
tree[“columns“]=(“方法““深搜““宽搜““h1““h2““h3“)
tree.column(“方法“width=100) #表示列不显示
for col in tree[“columns“][1:]:
tree.column(colwidth=70)
tree.heading(“方法“text=“方法->“) #显示表头
tree.heading(“深搜“text=“深度优先“)
tree.heading(“宽搜“text=“宽度优先“)
tree.heading(“h1“text=“h1(n)“)
tree.heading(“h2“text=‘h2(n)‘)
tree.heading(‘h3‘text=‘h3(n)‘)
excute=tk.Button(wintext=‘根据输入框数据计算‘command=get_input_valueswidth=20height=2)
rand_ex=tk.Button(wintext=‘随机生成数据计算‘command=random_excutewidth=20height=2)
excute.pack()
rand_ex.pack()
textshow.pack()
tree.pack()
win.mainloop()
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2020-05-10 21:55 八数码问题\
文件 35279182 2020-05-05 15:14 八数码问题\可执行程序.exe
文件 9176 2020-05-10 21:55 八数码问题\思想.txt
目录 0 2020-05-05 14:20 八数码问题\源程序\
目录 0 2020-05-05 14:54 八数码问题\源程序\.idea\
目录 0 2020-05-05 15:36 八数码问题\源程序\.idea\inspectionProfiles\
文件 174 2020-04-25 13:01 八数码问题\源程序\.idea\inspectionProfiles\profiles_settings.xm
文件 199 2020-04-25 13:01 八数码问题\源程序\.idea\misc.xm
文件 273 2020-04-25 13:01 八数码问题\源程序\.idea\modules.xm
文件 452 2020-04-25 13:01 八数码问题\源程序\.idea\resolve.iml
文件 5016 2020-05-05 14:54 八数码问题\源程序\.idea\workspace.xm
目录 0 2020-05-05 15:37 八数码问题\源程序\__pycache__\
文件 3894 2020-04-25 13:01 八数码问题\源程序\__pycache__\problem1.cpython-36.pyc
文件 3932 2020-05-05 15:37 八数码问题\源程序\__pycache__\problem1.cpython-37.pyc
文件 3922 2020-04-25 12:58 八数码问题\源程序\__pycache__\problem1.cpython-38.pyc
文件 3354 2020-04-25 13:01 八数码问题\源程序\__pycache__\problem2.cpython-36.pyc
文件 3387 2020-05-05 15:37 八数码问题\源程序\__pycache__\problem2.cpython-37.pyc
文件 3377 2020-04-25 12:58 八数码问题\源程序\__pycache__\problem2.cpython-38.pyc
文件 3106 2020-05-05 14:20 八数码问题\源程序\__pycache__\problem3.cpython-36.pyc
文件 3134 2020-05-05 15:37 八数码问题\源程序\__pycache__\problem3.cpython-37.pyc
文件 3112 2020-04-25 12:58 八数码问题\源程序\__pycache__\problem3.cpython-38.pyc
文件 2542 2020-04-25 13:01 八数码问题\源程序\__pycache__\problem4.cpython-36.pyc
文件 2573 2020-05-05 15:37 八数码问题\源程序\__pycache__\problem4.cpython-37.pyc
文件 2543 2020-04-25 12:58 八数码问题\源程序\__pycache__\problem4.cpython-38.pyc
文件 6102 2020-04-25 13:01 八数码问题\源程序\__pycache__\problem5.cpython-36.pyc
文件 6006 2020-05-05 15:37 八数码问题\源程序\__pycache__\problem5.cpython-37.pyc
文件 5997 2020-04-25 12:58 八数码问题\源程序\__pycache__\problem5.cpython-38.pyc
文件 2756 2020-04-25 12:58 八数码问题\源程序\mainGUI.py
文件 5209 2020-04-25 12:58 八数码问题\源程序\problem1.py
文件 5168 2020-04-25 12:58 八数码问题\源程序\problem2.py
文件 4708 2020-05-05 14:20 八数码问题\源程序\problem3.py
............此处省略2个文件信息
相关资源
- python从入门到放弃.rar
- 超清原版《Python深度学习》2018中文版
- OpenCV3 计算机视觉 Python语言实现
- 利用python进行数据分析-中文第二版
- python与Tkinter编程中文+英文原版
- SELENIUM2+自动化测试实战+基于PYTHON语言
- Python-pycorrector中文错别字纠正工具音
- Python-指定用户的所有抖音视频以及收
- Python-用于物体跟踪的全卷积连体网络
- python量化交易教程241337
- Numpy for Python2.7 64bit
- Python程序设计(第3版) 中文PDF+英文
- Python学习手册第三版pdf
- python计算机视觉.pdf
- 父与子的编程之旅:与小卡特一起学
- opencv_python-3.4.2.16-cp37-cp37m-win_amd64.wh
- numpy-MKL-1.8.1win-amd64
- Python数据分析基础.pdf
- 《Python与量化投资:从基础到实战(
- Python 3.7.3
- 数据结构与算法:Python语言实现 源代
- ActivePython-2.7.8.10-win64-x64
- 基于Python3 tkinterGUI界面实现读取存储
- wxPython-docs-4.0.3.tar.gz:wxPython官方文档
- Python编程快速上手 让繁琐工作自动化
- python3.7 64位版
- 将doc文件批量转为docx文件,用python将
- 流畅的PYTHON240598
- Python for Everyone(2nd) 英文无水印pd
- python+django实现登录
评论
共有 条评论