在matlab中实现优先级队列,用分枝定界法求解优化问题
我试图在MATLAB中编写优先级队列,我知道有用于优先级队列的SIMULINK工具箱,但我试图在MATLAB中编写它。我有一个伪代码,它使用优先级队列实现了一个名为“带分支和绑定的最佳优先搜索”的方法。分枝定界算法设计策略是一种状态空间树,用于解决优化问题。 我已经阅读了Richard Neapolitan和Kumarss Naimipour的第四版《算法的基础》一书的第5章:分支和装订,这本书是关于设计算法、算法复杂性分析和计算复杂性(问题分析)的,非常有趣,我遇到了以下伪代码:在matlab中实现优先级队列,用分枝定界法求解优化问题,matlab,priority-queue,Matlab,Priority Queue,我试图在MATLAB中编写优先级队列,我知道有用于优先级队列的SIMULINK工具箱,但我试图在MATLAB中编写它。我有一个伪代码,它使用优先级队列实现了一个名为“带分支和绑定的最佳优先搜索”的方法。分枝定界算法设计策略是一种状态空间树,用于解决优化问题。 我已经阅读了Richard Neapolitan和Kumarss Naimipour的第四版《算法的基础》一书的第5章:分支和装订,这本书是关于设计算法、算法复杂性分析和计算复杂性(问题分析)的,非常有趣,我遇到了以下伪代码: 我不
我不知道如何在matlab中进行编码,分支定界是一种有趣的通用算法,用于寻找各种优化问题的最优解,特别是在离散优化和组合优化中,而不是使用启发式来寻找最优解,因为分支定界减少了计算时间,更快地找到最优解 编辑:
在这里发布问题之前,我已经检查了所有地方是否已经实施了解决方案。我来这里是想了解如何开始实现这段代码,我已经在你的帖子中包含了这段代码,这样人们就可以更好地了解你对他们的期望。然而,“开始实现的想法”仍然没有“如何在matlab中编写代码”更具体 不过,我仍会尝试回答:
如果你陷入其中一个障碍,并且已经搜索了某个特定问题,但没有找到答案。那么,这不是一个好问题。我看不出有什么问题,除非你要求其他人为你实现一个算法。对于这个网站来说,这不是一个合适的问题。请自己尝试一下,如果你被困在某个地方,你可以问一些具体的问题。您可能还想通过谷歌查看解决方案是否已经实施。@Dennis Jaheruddin在来这里之前,我已经检查了所有地方是否已经实施了解决方案,但我找不到任何类似于我试图做的事情,来告诉我如何开始。我来这里是想知道如何开始,我不是要求任何人为我实现一个算法,如果这不是我最后一次尝试,我也不会来这里,因为时间紧迫,无论如何,感谢你花时间回答我的问题:)我已经有了我的代码结构,我需要弄清楚如何在matlab中生成优先级队列,我遇到过用C实现优先级队列然后使用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)
}
}
}