這個問題是在演算法導論的動態規劃章節有提到,由於問題敘述起來太繁雜就直接省略。
命名規則與書上的偽**是一致的,只是用c++具體語言實現了而已。
//動態規劃問題——裝配線排程問題
#pragma once
class asl
;
#include "alspro.h"
#include #include using namespace std;
asl::asl()
for (int idx = 0; idx < stationnum; idx++)
arr2 = new int[stationnum];
if (arr2 == null)
for (int idx = 0; idx < stationnum; idx++)
t1 = new int[stationnum-1];
if (t1 == null)
for (int idx = 0; idx < stationnum-1; idx++)
t2 = new int[stationnum-1];
if (t2 == null)
for (int idx = 0; idx < stationnum-1; idx++)
in.close(); //關閉檔案
l1 = new int[stationnum];
if (l1 == null)
l2 = new int[stationnum];
if (l2 == null)
f1 = new int[stationnum];
if (f1 == null)
f2 = new int[stationnum];
if (f2 == null) }
asl::~asl()
void asl::prorun()
else
if ((f2[idx-1] + arr2[idx]) <= (f1[idx-1] + t1[idx-1] + arr2[idx]))
else
}if ((f1[stationnum-1] + x1) <= (f2[stationnum-1] + x2))
else }
void asl::printresult()
else
cout<<"line "<#include "alspro.h"
using namespace std;
void main()
動態規劃 裝配線排程問題
具體題目詳見 演算法導論 第15章 動態規劃 利用動態規劃解決裝配線排程問題 配置檔案名稱是 stationinfo.txt 第一行為進入兩條線各花費的時間 第二行為離開兩條線個花費的時間 接下來六行為第一條線每個站點停留時間 每個站點到本線下一站點時間 每個站點到另一條線下乙個站點時間 最後六行為...
裝配線問題 動態規劃
裝配線問題 public class forth,通過裝配線上每個站所需時間 int b newint 一條裝配線上的 i 站到另一條裝配線上的 i 1 站所需的時間 int g newint 開始進入裝配線所需的時間 int e newint 出裝配線所需的時間 int dp newint 2 6...
演算法分析 動態規劃 裝配線排程
前言 動態規劃的概念 動態規劃 dynamic programming 是通過組合子問題的解而解決整個問題的。分治演算法是指將問題劃分為一些獨立的子問題,遞迴的求解各個問題,然後合併子問題的解而得到原問題的解。例如歸併排序,快速排序都是採用分治演算法思想。本書在第二章介紹歸併排序時,詳細介紹了分治演...