資源簡介
分支定界求解帶約束條件的最短路徑問題,包含源代碼和可執(zhí)行文件
代碼片段和文件信息
//?Assignment_2_SY1606207.cpp?:?Defines?the?entry?point?for?the?console?application.
/*
?*?主要思路:?
?*?????遍歷:利用棧結構,通過深度優(yōu)先搜索遍歷路徑
?*?????定界:每一個最短路徑值更小的可行解確定了新的下界
?*?????剪枝:先利用Dijkstra算法計算每個城市到目的城市的最短路徑和最小花費,當算法運行到某個城市后,
?*??????????計算在棧里的城市的路徑長度?+?這個城市到目的城市的最短路徑,以及在棧里的城市的路徑花費?+?這個城市到目的地的最小花費,
?*??????????與當前最優(yōu)的可行解以及約束條件進行比較,從而達到剪枝的目的
?*/
#include?“stdafx.h“
#include?
#include?
#include?
#include?
using?namespace?std;
#define?MAX_NODE?60?//?最大節(jié)點數(shù)
#define?MAX_INT?9999?//?定義最大整數(shù)
#define?MAX_COST?1500?//?定義最大花費
int?n1?n2;?//?分別表示矩陣的行和列
deque?queueMinPath;?//?記錄已得到的最短路徑
int?minPath;?//?記錄最短路徑長度
int?costOfMinPath;?//?記錄最短路徑的花費
int?main(int?argc?char*?argv[])?{
clock_t?startTime?endTime;
startTime?=?clock();
cout?<
int**?readTxtToArrayWithoutKnowRowOrColumn(const?char*?strPath);?//?把txt文件讀進二維數(shù)組
void?findPathWithDFS(int?**m1?int?**m2?int?fn?int?tn);?//?深度優(yōu)先
int?pI
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????7095??2016-12-21?16:57??分支定界算法求解帶約束的最短路徑問題\Assignment_2.cpp
?????文件?????156160??2016-12-21?16:46??分支定界算法求解帶約束的最短路徑問題\Assignment_2.exe
?????文件??????12010??2016-12-20?21:56??分支定界算法求解帶約束的最短路徑問題\m1.txt
?????文件???????8861??2016-12-20?21:56??分支定界算法求解帶約束的最短路徑問題\m2.txt
?????目錄??????????0??2016-12-21?16:57??分支定界算法求解帶約束的最短路徑問題
-----------?---------??----------?-----??----
???????????????184126????????????????????5
- 上一篇:8.3旋轉方向法 算法描述
- 下一篇:基于單片機的貪吃蛇游戲的proteus仿真
評論
共有 條評論