• 大小: 8KB
    文件类型: .java
    金币: 1
    下载: 0 次
    发布日期: 2021-01-08
  • 语言: Java
  • 标签: java  八数码  

资源简介

使用java语言写的八数码问题,仅供参考。其中用到了启发式搜索算法

资源截图

代码片段和文件信息

package com.ai.eightPuzzle;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.linkedList;
import java.util.List;
import java.util.Queue;
import java.util.Scanner;

/**
 * 八数码问题求解
 * 
 * @author kaiser
 *
 */
public class EightPuzzle {



/**
 * 启发式搜索,选择最优希望的节点加以扩展估价函数为f(n)=d(n)+W(n) ;d(n)为搜索树中节点n的深度;W(n)为位置错误的个数
 * 
 * @param node1
 *            初始状态节点
 * @param node2
 *            目标状态节点
 */
public void heuristicSearch(int[] node1 int[] node2) {
List open = new ArrayList();// 存放待扩展的结点
List close = new ArrayList();// 存放已经访问扩展过的结点
int d = 0; // 节点n的深度
int w = 0; // 错放位置数
int f = 0;
int swap;
int index = 0;// 自加标记
for (int i = 0; i < node1.length; i++) {
if (node1[i] != node2[i

评论

共有 条评论