TSP问题, 旅行商问题,即TSP问题(Travelling Salesman Problem)又译为旅行推销员问题、货郎担问题,是数学领域中著名问题之一。假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。路径的选择目标是要求得的路径路程为所有路径之中的最小值。
贪心算法:又称贪婪算法(greedy algorithm),该算法是指:在对问题求解时,总是做出当前情况下的最好选择,否则将来可能会后悔,故名“贪心”。这是一种算法策略,每次选择得到的都是局部最优解。选择的策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。即考虑局部最优解以达到整体最优解的情况,但是贪心算法不一定是最优解的情况,接近最优解.
贪心算法是保证每一步的选择都是对于当前而言是最优的,这种选择方法并不能保证一定是最优解,但是通常也是非常近似最优解。对于TSP问题利用贪心选择策略,从某一城市出发,下一个城市的选择是依据是,距离该城市距离最近的城市,作为下一个城市。并且该城市未被访问,直到经过了所有城市,然后回到起始城市。
程序的逻辑结构采取为无向图。存储结构采取邻接矩阵存储城市信息.
利用标记数组flag进行保存结点是否访问信息。利用变量记录城市的数量,利用一个字符数组存放各个城市名称。并对城市名称进行编码。
首先用户通过界面菜单,录入城市信息,完成创建后可以通过显示邻接矩阵来查看录入的信息,这里定义一个MAX变量表示两个城市之间无通路。然后用户录入完成城市信息后可以选择选择路径的选项来找到对应的路径选择。在录入城市信息时,动态创建对应的邻接矩阵,名称,标记数组。通过提示信息,提示用户进行输入,根据输入
相关文章: