1、实验一 梵塔问题实验(2 学时)一、实验目的:熟悉和掌握问题规约法的原理、实质和规约过程;理解规约图的表示方法。二、实验原理从目标(要解决的问题)出发逆向推理,先把问题分解为子问题和子 -子问题,直至最后把初始问题归约为一个平凡的本原问题集合,然后解决较小的问题。对所有本原问题的解答就意味着原始问题的解决。三、实验条件:1. 编写三圆盘梵塔问题系统实验程序。2. 编写多圆盘梵塔问题系统实验程序。3. 编写梵塔问题操作界面,如下图所示。四、实验内容:1. 编写三圆盘梵塔问题系统实验程序,更改圆盘数量,了解问题解决的归约过程。2. 分析归约机理,熟悉问题规约的详细过程。3. 自己建造一个梵塔问题归
2、约系统,然后根据归约原理进行逆向推理,得到本原问题集合。通过解决这些本原问题,最终求解问题。五、实验步骤:根据操作界面编程实现如下实验步骤1. 开始演示。进入三圆盘实例程序,点击“play”按钮开始演示程序,观察其求解步骤, “Stop”按钮可停止演示, “Speed+”、 “Speed-”按钮可增减演示速度。2. 改变圆盘数量。点击“Renew”按钮,通过“Number+”和“Number- ”改变圆盘数量,再次点击“play”按钮。3. 重复演示、比较,根据其求解过程得到圆盘数量与步骤数目之间的规律。归纳并理解问题归约的实质。4. 自己建立一个梵塔问题求解难题,利用归约法进行问题分解。5. 画出其问题规约图。六、实验结论:1. 圆盘数目与移动步骤之间的数学关系。2. 根据自己所建梵塔问题,画出问题规约图,得到子问题集,列出求解过程。3. 分析问题规约的实质。