人工智能汉诺塔实验报告
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汉诺塔实验报告
一、实验目的:
1、掌握产生式系统解决汉诺塔算法的基本思想。
2、熟悉和掌握问题规约法的原理、实质和规约过程。
3、理解规约图的表示方法。
二、实验原理:
1、在移动盘子时,每次只移动A/B/C柱子上可以移动的盘子中最大的盘子。
2、如果上一次已经移动了某个盘子,则下一次不能继续移动,即:一个盘子不能被连续移动两次。
如:某次操作将1号盘子由A柱子移动到B柱子,那么在选择下一个要移动的盘子时应不在考虑1号盘。
3、当某个可以移动的盘子摆放位置不唯一时要将当前状态入栈,并选择盘子移动前所在的柱子的左侧(同理:反方向选择也可)柱子作为移动的目标柱子。
为提高程序运行过程中的空间利用率,产生式规则在汉诺塔移动过程中依据以上规则自动生成。
三、实验条件:
1、必须要有三个柱子A,B,C。
2、盘子的数量不能太多。
3、应该用自己熟悉的语言写程序。
四、实验步骤:
第一次移动之后:
第二次移动之后:
第三次移动之后:
五、实验内容:
利用c/c++语言编写汉诺塔程序,并实现盘子的移动过程。
六、实验小结:
通过本次实验我掌握了汉诺塔的算法和移动的过程,同时也更好的运用了c++的知识解决了这个问题,在做的过程中确实有不懂的地
方,但是查资料还是解决了,希望自己以后会更好的利用c++/c这们高级程序编写语言。