當前位置:首頁 » 編程軟體 » 時間窗編程

時間窗編程

發布時間: 2022-12-20 02:52:36

A. 如何用編程製作桌面時鍾

利用窗體、時間控制項、文本框和時間函數。文本框顯示。具體代碼就從略了。
在窗體上添加1個計時器和1個標簽
Private Sub Form_Load()
Label1.Caption = ""
Label1.BorderStyle = 1
Label1.ForeColor = vbWhite
Label1.BackColor = vbRed
Label1.FontSize = 20
Timer1.Interval = 1000
End Sub

Private Sub Timer1_Timer()
Label1.Caption = Time
End Sub

B. Visual Basic中關於時間的編程

Private Sub Form_Load()
Timer1.Interval = 100 '設置timer1間隔
End Sub

Private Sub Timer1_Timer()
Form1.Caption = Time '在窗體上顯示時間

If Time = "10:23:00" Then '當時間等於xx時
MsgBox "你好"
End If

End Sub

C. e4a編程主窗口怎麼寫時間自動按鈕

可以參考:e4a編程寫自動載入窗口:
先創建保存你要切換的窗口
保存窗口("窗口",創建 窗口)
按鈕被單擊事件下:
切換窗口(讀取窗口("這里填你要切換的窗口,提前要先創建保存窗口"))

D. 帶時間窗的貨物配送問題

自從1959年Danting 和Rasmer[2]首次提出了車輛路徑問題(Routing Vehicle Problem, VRP)以來,該問題一直為眾多的研究者所關注。而帶時間窗的車輛路徑問題(Vehicle Routing Problems with Time Window , VRPTW)是一般車輛路徑問題的擴展,其簡單的描述如下:用於服務的若干車輛從站點出發,為處在不同地理位置、具有不同貨物需求和不同服務時間窗要求的所有顧客提供服務,然後返回站點,其中為每個顧客僅提供一次服務。其目標是在時間窗內為顧客提供服務時,使車輛的行駛時間和等待時間之和最短。
根據時間約束的嚴格與否,VRPTW分為兩類:軟時間窗VRP和硬時間窗VRP。軟時間窗VRP要求盡可能在時間窗內到達訪問,否則將給予一定的懲罰,即車輛在要求地最早到達時間之前到達時,必須在任務點處等待時損失的成本或是車輛在要求的最遲到達時間之後到達時被處以的罰值;硬時間窗VRP則要求必須在時間窗內到達訪問,否則服務被拒絕。本文討論的是硬時間窗車輛路徑問題。
2 數學模型及其檢驗
2.1、數學模型的建立
根據具體問題需要,本文作以下基本假設:
(1)只有一個站點;
(2)站點和客戶點的位置坐標已知;
(3)客戶點的需求量已知;
(4)車輛在配送過程中不得超過其額定載質量;
(5)必須滿足每個客戶的配送需求;
(6)車輛為同種車型,且容量已知;
(7)每個客戶必須且只能被訪問一次;
(8)每個客戶要求的時間窗已知。
數學模型的決策變數和參數定義如下:
I 表示站點和客戶的集合,即 ,0表示站點;
J 表示客戶集合,即 ;
K 表示車輛集合,即 ;
C 表示車輛的額定載質量;
表示從客戶i到客戶j的運輸成本;
表示客戶i的需求量;
為決策變數,車輛k從i到j時取1,否則取0;
為決策變數,車輛k為客戶j服務時取1,否則取0;
表示客戶i接受服務的最早時間,i=0時表示車輛從站點出發時間;
表示客戶i接受服務的最遲時間,i=n+1時表示車輛回到站點的最遲時間;
表示車輛k服務客戶i的開始時間,要求盡可能落在區間 內;
表示完成i點任務所需時間;
表示車輛從客戶i行駛到客戶j的行駛時間;
根據問題描述,建立帶時間窗車輛路線問題的數學模型如下:
Min (2-1)

(2-2)
(2-3)
(2-4)
(2-5)
(2-6)

(2-7)
(2-8)
(2-9)
(2-10)
式(2-1)為目標函數,表示不考慮時間約束時經典配送費用(配送總路程)的最小值。式(2-2)表示一個客戶只能由一個車輛提供服務;(2-3)、(2-4)和(2-5)表示車輛從站點0出發,服務完所有客戶後,最後回到站點n+1;式(2-6)表示若車輛正在從客戶i到客戶j途中,它不能先於時間 到達客戶j ;式(2-7)保證滿足每輛車的額定載質量限制;式(2-8)(2-9)為0、1約束;(2-10)為時間窗約束。
2.2 數學模型的檢驗
本文應用Ling10.0軟體對以上數學模型進行檢驗。數據採用文獻【3】同類問題的測試數據,具體如表1和表2所示,其中車輛數為3,各車額定載質量均為8,運行速度為50,計算中假定各客戶點間運輸成本等於距離。
表1 各客戶點及站點之間距離
0 1 2 3 4 5 6 7 8
0 0 40 60 75 90 200 100 160 80
1 40 0 65 40 100 50 75 110 100
2 60 65 0 75 100 100 75 75 75
3 75 40 75 0 100 50 90 90 150
4 90 100 100 100 0 100 75 75 100
5 200 50 100 50 100 0 70 90 75
6 100 75 75 90 75 70 0 70 100
7 160 110 75 90 75 90 70 0 100
8 80 100 75 150 100 75 100 100 0表2 各客戶點需求量以及所需服務時間
任務i 1 2 3 4 5 6 7 8

2 1.5 4.5 3 1.5 4 2.5 3
[ ]
[1,4] [4,6] [1,2] [4,7] [3,5.5] [2,5] [5,8] [1.5,4]
Si 1 2 1 3 2 2.5 3 0.8
說明:di為各任務的貨運量,[ ]為每項任務開始執行的時間范圍,Si為服務時間。
用Lingo計算上述數學模型的結果為:
路線一:0、8、5、7、0;
路線二:0、6、4、0;
路線三:0、3、1、2、0;
目標函數總成本為910,與文獻[3]給出的結果一致,表明了本文中數學模型的正確性。
3、基於遺傳方法的VRP問題解法
3.1 遺傳演算法簡介[3]
遺傳演算法是由美國Michigan大學的John Holland教授於20世紀60年代末創建的。它來源於達爾文的進化論和孟德爾、摩根的遺傳學理論,通過模擬生物進化的機制來構造人工系統。 遺傳演算法主要藉助於生物進化中「適者生存」的規律,即最適合自然環境的群體往往產生更大的後代群體。以這個循環圈的群體為起點,經過競爭後,一步分群體被淘汰而無法再進入這個循環圈,而另一部分則成為種群。優勝劣汰再這個過程中起著非常重要的作用,因為自然天氣的惡劣和天敵的侵害,大自然中很多動物的成活率是非常低的。即使再成活群體中,還要通過競爭產生種群。種群則通過婚配的作用產生新的個體,綜合變異的作用,子群成長為新的群體而取代舊的群體,在新的一個循環過程中,新的群體將替代舊的群體而成為循環的開始。
3.2演算法描述
step 1: 初始化, 設置種群規模n ,用自然數法對染色體進行編碼;
step 2: GenN ∶= 0, 生成初始種群Pop (0) ;
step 3: 對種群中的每一個染色體, 計算適應值,並記錄當前最優適應度函數值;
step 4: 若滿足演算法終止條件, 則停止並輸出結果; 否則轉step5;
step 5: 據精英選擇及輪盤賭選擇法, 從Pop (GenN ) 中選擇Pop (GenN + 1) , 即復制下一代個體;
step 6: 進行最大保留交叉和交換變異操作, 重組Pop (GenN + 1) ;
step 7: GenN ∶= GenN + 1;轉步驟3。
演算法的具體描述過程如圖1.



圖1 遺傳演算法流程
3.3 構造染色體、產生初始種群[4]
本文採用客戶直接排列的編碼方式。用1~N間的自然數表示客戶,這些自然數的任意排列就是一個解,按照問題的約束條件,依次將解的每個數(客戶)納入車輛的配送路徑中。如12346789,首先,將客戶1納入第一條配送路徑中,判斷是否滿足問題的約束條件,如能夠滿足,則構成配送路徑0-1-0,再將客戶2納入這條配送路徑中,再計算是否滿足問題的約束條件,如仍能滿足,則構成配送路徑0-1-2-0,接著再將客戶3納入到這條配送路徑中,再計算是否滿足約束條件,如不能滿足,說明客戶3不能由第一條配送路徑配送,則重新開始一條新的配送路徑0-3-0;一直重復這個過程,直到把每個客戶都納入到配送路徑中。
這種編碼方式雖然沒有表示各條路線分界點的基因位,但這有利於將來的交叉操作,不僅排除了不可行解存在的可能性,而且所佔用的計算機存儲量也較小。
關於初始種群的選取,一些學者提出了採用啟發式演算法選擇較好的染色體作為初始種群的方法,然而其種子的選取有一定的偏見和缺乏代表性,可能產生早熟而無法求出最優解,為了避免這種缺陷,本文採用隨機產生初始解的方法,只有這樣才能達到所有狀態的遍歷,因而最優解在遺傳演算法的進化中得以生成。
3.4 適應度函數
本文選取適應度函數為fitness( )=M-( ),其中M為一個很大的值,M後為目標函數值, 為一條染色體,其中i=1,……,m.
3.5 選擇運算元的確定
將每代種群n 個染色體按適應度函數值排序,將適應度函數值最大的染色體復制一個直接進入下一代。下一代種群中剩下的n - 1 個染色體用輪盤賭選擇法產生。這樣,首先可以保證最優個體可以生存到下一代,既給了適應度較大的個體較大的機會進入下一代,又避免了個體間因適應值不同而被選入下一代的機會懸殊。
3.6 交叉概率、變異概率的確定[5]
在遺傳演算法中, 對其收斂性起決定作用的是交叉和變異運算元。在現有的求解VRP 的遺傳演算法中, 對交叉和變異概率通常的處理辦法是: 交叉概率 隨機地選擇一個較大的值, 通常取0. 5~ 1. 0; 而變異概率 取一個較小的值, 一般為0. 001~ 0. 05。為了避免發散或陷入局部最優點, 並保持種群中「好」的個體, 以及加快優化進程, 本文引入自適應機制, 動態地調整 和 , 即通過對高適應值的解降低 和 的值, 而對低適應值的解提高 和 來實現。具體為

其中, = 0. 5, = 0. 05, = 1, = 0. 1; 為種群中的最大適應值, f ′表示交叉的兩個個體中較大的適應值, 為種群的平均適應值, f 是變異個體的適應值。交叉概率隨著適應值趨向於而 減少, 當適應值等於 時, 即對具有最大適應值的解, 其 和 為零, 這樣, 種群中最好的解就直接復制到下一代(即精英選擇)。
3.7 交叉運算元、變異運算元的確定
本文選用順序交叉法[3](Order Crossover,OX),其具體交叉方法如下:
step1:從第一雙親中隨機選一個子串;
step2:將子串復制到一個空子串的相應位子,產生一個原始後代;
step3:刪去第二雙親中子串已有的客戶,得到原始後代需要的其他客戶的順序;
step4:按照這個客戶順序,從左到右將這些客戶定位到後代的空缺位置上。
過程說明見圖2,同樣步驟可用同一對雙親得到另一個後代[7 9 3 4 5 6 1 2 8]. 5 7 4 9 1 3 6 2 8
雙親1
*
*
4 9 1 3
*
*
* 原始後代
1 2 3 4 5 6 7 8 9

雙親2

2 5 4 9 1 3 6 7 8
後代

圖2 交叉過程
本文選擇基於易位變異[3]中的2-交換變異方法,即:
隨機選取個體編碼串中的兩個基因,然後交換它們的位置,如:
12345678 12375648
3.8 終止規則
事先確定演算法的迭代次數能有效控制演算法的運行時間和演算法的求解精度,因此本文採用事先確定迭代次數的終止規則,即判斷迭代的代數是否為要求代數N ,若是,停止進化,選性能最好的染色體所對應的路徑集合,作為原VRPTW 問題的優化解輸出;若不是,繼續執行循環迭代。
4、算例分析
Solomon[6]中給出的56個數據集R1、R2、C1、C2、RC1和RC2是VRPTW問題數值實驗的經典數據集。每個數據集的客戶數有25、50和100,客戶間的距離為歐式距離,並且滿足三角不等式。R1和R2的客戶位置是隨機分布的,C1和C2的客戶呈聚集狀態,RC1和RC2呈半聚集狀態。R1、C1和RC1類數據集具有較短時間窗,因而在每條路線上,允許服務的客戶數較小;R2、C2和RC2則具有較長時間窗,每條路線上允許服務的客戶數較多。而在實際問題中,客戶的分布在多數情況下更接近於R類、RC類數據集所反映的隨機和半聚集狀態。為了更接近實際情況,本文選用較短時間窗的數據R101中25個客戶集的數據來對本文提出的遺傳演算法進行編程驗證,並與文獻[1]中的結果進行比較。
表3 算例結果對比
演算法 文獻[6]的演算法 本文的演算法 本文的演算法
使用的車輛數 8 8 10
運行總距離 617.1 580.352 563.292
表中採用10輛車時最優解的運行路線為:0—7—6—2—0;0—18—15—9—4—1—0;0—14—22—21—0;0—12—23—0;0—3—8—0、0—11—0;0—5—10—0、0—16—0;0—13—0、0—17—0、0—19—0;0—25—0;0—24—0;0—20—0。運行時間為0.482秒。
採用8輛車時最優解的運行路線為:07—11—21—0;0—8—4—1—0;0—17—10—9—2—0;0—13—14—22—0;0—24—19—16—6—0;0—20—18—15—23—0;0—3—12—0;0—5—25—0。運行時間為0.437秒。
經過反復驗證,當種群數小於100時,運行結果總是趨向於局部最優的;而當種群數取為150時,便可以跳出局部最優,從而得到全局性的最優解。當迭代代數取為50時,解的平均值為670.4,平均運行時間為0.246秒;當迭代代數取為100時,解的平均值為643.7,平均運行時間為0.532秒;當迭代代數取為200時,解的平均值為636.8,平均運行時間為1.021秒。這說明迭代代數大於100後對於解的優化影響不是很大,但運行時間卻大大增加,所以本文迭代代數取為100。經過驗證,當種群數為150、迭代代數為100時,相應的選取交叉概率為0.5、變異概率0.02時,可以得到如表3所示的優化解(AMD Athlon(tm)64)。
5、結論
本文試驗中隨機運行了30次,其中最優解出現的概率為40%,優於文獻[1]中的最優解8.7%,而且求解時間較短,這說明本文採用的遺傳演算法對帶硬時間窗車輛路線問題的適應性,這對於該問題的進一步研究具有重要的參考價值。

熱點內容
醫院防汛演練方案與腳本 發布:2025-07-14 20:41:11 瀏覽:777
公網ip做域伺服器地址 發布:2025-07-14 20:40:13 瀏覽:52
php獲取幾 發布:2025-07-14 20:22:20 瀏覽:376
舊安卓如何刷入最新安卓 發布:2025-07-14 20:16:14 瀏覽:763
伺服器或網路不給力是什麼意思 發布:2025-07-14 20:15:36 瀏覽:318
爬網站資料庫 發布:2025-07-14 20:15:20 瀏覽:520
邵雍的演算法 發布:2025-07-14 20:13:49 瀏覽:119
離線燒錄加密 發布:2025-07-14 20:12:13 瀏覽:620
奧迪怎麼查配置 發布:2025-07-14 20:12:07 瀏覽:832
java視頻編程 發布:2025-07-14 19:49:22 瀏覽:524