实验一:搜索算法问题求解.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验一:搜索算法问题求解

实验一:搜索算法问题求解 姓名:蒙寿伟 班级:智能1401 学号:201408070120 一、实验目的 了解一致代价搜索算法的基本原理; 能够运用计算机语言实现一致代价搜索算法; 应用搜索算法解决罗马尼亚问题; 能够通过实验分析了解算法性能的优劣 二、实验的硬件、软件平台 硬件:计算机 软件:ECLIPSE 操作系统;WINDOWS 10 应用软件:Java 实验内容及步骤 3.1:无信息搜索算法 1、根据图一创建搜索树,以Arad为初始状态,Bucharest为目标状态; 2、实现深度优先搜索的图搜索算法并记录搜索路径; 3、实现一致代价搜索的图搜索算法并记录搜索路径。 3.2:有信息搜索算法 1、根据图一以Arad为初始状态,Bucharest为目标状态实现A*搜索,其中以各城市到Bucharest的直线距离为启发式函数(见图一右侧); 2、根据图一以Arad为初始状态,Hirsova为目标状态实现A*搜索,其中已知Bucharest为从Arad到Hirsova的必经之路,设计一个启发式函数并分析该函数的可采纳性和优势(与启发式函数定义为“Arad到Hirsova的直线距离”相比较); 基本原理: 用优先队列来实现,扩展的是路径消耗g(n)最小的节点n,对解的路径步数不关心,只关心路径总代价。所以,即使找到目标节点也不会结束,而是会再检查新路径是不是要比老路径好,如果确实好,就会丢弃老路径。 /*************************************************************************** * main类 ***************************************************************************/ package com.msw.tal1; public class Main { public static void main(String[] args){ Graph g=new Graph(); System.out.println(---------------------罗马尼亚问题---------------------); System.out.println(一致代价算法:); new UCS(g,0,12); } } /*************************************************************************** * Graph类及用到的变量 ***************************************************************************/ private static final int N=2147483647; public static String[] cityname=new String[]{//城市名 Arad,Zerind,Oradea,Sibiu,Timisoara, Lugoj,Rimnicu Vilcea,Fagaras,Mehadia, Drobeta,Craiova,Pitesti,Bucharest,Giurgiu, Urziceni,Hirsova,Eforie,Vaslui,Isi,Neamt}; public static int[][] path = new int[20][20]; //保存路径权值 public static int[] mark = new int[22];//访问标记 /*************************************************************************** * UCS类及用到的函数 ***************************************************************************/ /* * 一致代价搜索算法 */ @SuppressWarnings(static-access) public void UCSSearch(Graph g,int start,int end,int[] dist,int[] pre){ ListInteger list =new ArrayListInteger(); list.add(start); while(!list.isEmpty()){ FindMin(list, dist);// 找到dist数组中最小值所对应的节点 int current = l

文档评论(0)

wnqwwy20 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档