免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1863 | 回复: 0

C语言实现TSP 动态规划 [复制链接]

论坛徽章:
0
发表于 2008-12-09 00:47 |显示全部楼层
/*
  *  平台: Debian 5.0
*  编译器:gcc version 4.3.2 (Debian 4.3.2-1)
*  任何问题联系:goon83@126.com
*/
#include
#define MAXN        6
#define MAXSTATE 120        //在迭代过程中的最多的状态数量(5 * 4 * 3 * 2 * 1)
#define TRUE         1
#define FALSE        0
#define DELETE      1000     //设置一个足够大的数来表示删除当前结点
struct StateStruct{
    int CurNode;                   //当前的结点
    int LeftNode[MAXN -1];   //最多有 (MAXN -1)个未访问的结点
    int LeftNodeCount;          //记录LeftNode数组的长度
    int Dis;                           //从该结点回到目标节点的距离
};
typedef struct StateStruct State;
//最多有MAXSTATE个状态。
State   StateArrayCur[MAXSTATE];
State   StateArrayOld[MAXSTATE];
int Dis[MAXN][MAXN] ={
    0, 10, 20, 30, 40, 50,
        12, 0 ,18, 30, 25, 21,
        23, 19, 0, 5,  10, 15,
        34, 32, 4, 0,  8,  16,
        45, 27, 11,10, 0,  18,
        56, 22, 16,20, 12,  0
};
/*
*比较两个状态TempState, TargetState是否一致
*返回: TRUE  两个状态一致,可以合并
*           FALSE 两个状态不一致, 不可以合并
*/
int CompareState(State TempState, State TargetState){
    int i;
   
    if (TempState.CurNode != TargetState.CurNode){
        return FALSE;
    }
   
    for (i = 0; i  StateArrayCur.Dis){
                        MinState = StateArrayCur;
                    }               
               
                    StateArrayCur.CurNode = DELETE;       //-1表示从StateCur中删掉   
                }            
            }
            NewStateArray[NewStateCount] = MinState;
            NewStateCount = NewStateCount + 1;
        
        }   
    }            
    for ( k =0; k = 0; i--){
        printf(" %d ", (StateArrayCur[MinIndex].LeftNode + 1));
    }
    printf(" 1 \n");
    return 0;
}


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/63043/showart_1686548.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP