我想在MATLAB中編寫一個優先級隊列,我知道有SIMULINK工具箱的優先級隊列,但我試圖編寫它在MATLAB中。我有一個僞代碼,它使用優先隊列來調用名爲BEST First Search with Branch and Bound的方法。分支定界算法設計策略是一種狀態空間樹,用於解決優化問題。 simple explanation of what is branch and bound 我已閱讀第5章:Branch and Bound,這本書是由Richard Neapolitan和Kumarss Naimipour撰寫的第4版,其內容是關於設計算法,算法複雜性分析和計算複雜性(分析在MATLAB中實現優先隊列,以解決使用分支和約束的優化問題
Void BeFS(state_space_tree T, number& best)
{
priority _queue-of_node PQ;
node(u,v);
initialize (PQ) % initialize PQ to be empty
u=root of T;
best=value(v);
insert(PQ,v) insert(PQ,v) is a procedure that adds v to the priority queue PQ
while(!empty(PQ){ % remove node with best bound
remove(PQ,v);
remove(PQ,v) is a procedure that removes the node with the best bound and it assigns its value to v
if(bound(v) is better than best) % check if node is still promising
for (each child of u of v){
if (value (u) is better than best)
(best=value(u);
if (bound(u) is better than best)
insert(PQ,u)
}
}
}
:問題),非常有趣的書,我碰到這個僞代碼來
我不知道如何將它在MATLAB代碼,並且分支限界是尋找各種優化問題的最佳解決方案,尤其是在離散和組合優化,而不是使用啓發式找到一個有趣的通用算法因爲分支和界限減少了計算時間並且更快地找到最佳解決方案。
編輯:
我已簽到處是否已經解決方案已經實現,在這裏張貼問題之前。我來這裏瞭解如何開始實施此代碼的想法
我在這裏沒有看到問題,除非您要求其他人爲您實施算法。這對本網站來說不是一個合適的問題。請自己嘗試,如果你遇到困難,可以提出具體問題。您可能還想要谷歌來檢查解決方案是否已經實施。 –
@ Dennis Jaheruddin在來到這裏之前,我已經檢查過每個地方是否已經實施了一個解決方案,但是我找不到與我正在嘗試做的事情類似的事情,以便給我一個關於如何開始的想法。我來這裏是爲了瞭解我如何開始,我沒有要求任何人爲我實施算法,如果不是我最後一次嘗試,我不會來到這裏,因爲我時間緊迫,無論如何感謝您採取行動我的問題的時間:) – Lylia