我试图在MATLAB中编写优先级队列,我知道有优先级队列的SIMULINK工具箱,但我试图在MATLAB中编写代码。我有一个伪代码,它使用优先级队列作为一个名为BEST First Search with Branch and Bound的方法。分支定界算法设计策略是状态空间树,用于解决优化问题。 simple explanation of what is branch and bound 我从一本名为“算法的基础”的书中读到了第5章:分支和界限,它是Richard Neapolitan和Kumarss Naimipour的第4版,文本是关于设计算法,复杂性分析的。算法和计算复杂性(问题分析),非常有趣的书,我遇到了这个伪代码:
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中编写代码,并且分支和绑定是一种有趣的通用算法,用于查找各种优化问题的最优解,尤其是在离散和组合优化中,而不是使用启发法来找到最优解决方案,因为分支和绑定减少了计算时间并更快地找到最佳解决方案。
在此处发布问题之前,我已经检查了解决方案是否已经实施。我来到这里是为了了解如何开始实施此代码
答案 0 :(得分:0)
我已将此信息包含在您的帖子中,以便人们可以更好地了解您对他们的期望。但是,开始实施的想法是什么?仍然没有比如何在matlab中编写代码更具体。'
但是,我仍然会尝试回答:
如果您遇到其中一个区块,并且已搜索但未找到特定问题的答案。那么这不是一个不好的地方。