资源简介

用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.xml
     文件         199  2020-04-25 13:01  八数码问题\源程序\.idea\misc.xml
     文件         273  2020-04-25 13:01  八数码问题\源程序\.idea\modules.xml
     文件         452  2020-04-25 13:01  八数码问题\源程序\.idea\resolve.iml
     文件        5016  2020-05-05 14:54  八数码问题\源程序\.idea\workspace.xml
     目录           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个文件信息

评论

共有 条评论