项目简介
本项目聚焦于解决两个经典算法问题,即立方数码问题和2N皇后问题。立方数码问题围绕3x3x3立方体展开,需移动棋子达成特定目标状态;2N皇后问题则是在NxN棋盘上放置N个黑皇后与N个白皇后,保证同色皇后间不会相互攻击。
项目的主要特性和功能
立方数码问题
- 问题描述:在3x3x3立方体里,移动1 - 24号棋子和空位0,以达到目标状态。
- 算法实现:采用A算法(包含错位棋子数和曼哈顿距离两种启发函数)和迭代深入A算法(IDA*,同样使用这两种启发函数)。
- 输出:生成从初始状态到目标状态的动作序列。
2N皇后问题
- 问题描述:在NxN棋盘放置N个黑皇后和N个白皇后,使同色皇后不能相互攻击。
- 算法实现:运用随机重启爬山算法和模拟退火算法。
- 输出:生成符合条件的皇后摆放方案。
安装使用步骤
环境准备
- 操作系统:Windows 7 64位。
- IDE:Dev-C++ 5.11。
- 编译器:TMD - GCC 4.9.2 32 - bit Profiling。
编译与运行
- 打开Dev-C++,导入项目文件。
- 选择相应源文件(如
Ah1.cpp
,Ah2.cpp
,IDAh1.cpp
,IDAh2.cpp
等)进行编译。 - 运行程序,立方数码问题需输入初始状态和目标状态文件路径;2N皇后问题需指定N值。
查看输出
- 立方数码问题:结果输出到
output_Ah1.txt
,output_Ah2.txt
,output_IDAh1.txt
,output_IDAh2.txt
等文件中。 - 2N皇后问题:结果直接显示在控制台或输出到指定文件中。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】