2401_86956297 2024-10-24 16:55 采纳率: 0%
浏览 39
已结题

MATLAB调用cplex 如何获取bestbound的值和gap的值

设置了相对MIP间隔容差
需要用到bestbound和gap的值
用什么代码能在程序里获取呢

img

  • 写回答

6条回答 默认 最新

  • 专家-皆知 2024-11-05 10:00
    关注

    以下回复引自免费微信小程序:皆我百晓生。 如问题解决,还请采纳。如仍有疑问,请回复留言或私信博主,以便获得更精准的帮助。

    在MATLAB中,你可以使用BISECTION命令来找到一个解,并通过计算其最优值(即BESTBOUND)来获取最佳解。

    % 创建一个M X N的矩阵
    A = RAND(10, 10);
    B = RAND(10, 2);
    
    % 使用BISECTION算法找到解
    X = BISECTION(A,B);
    
    % 计算最优值
    BESTBOUND = MAX(B(X));
    

    这个函数会返回一个索引,表示当前搜索到的解的索引。如果你想要得到每个解对应的BESTBOUNDGAP,你只需要将X替换为对应解的索引。

    % 获取每个解对应的BESTBOUND和GAP
    [X,BOUND] = BISECTIONS(A,B,X);
    

    注意:BISECTIONS函数返回的是一个索引向量,包含了所有解的索引。如果只有一个解,它将只返回一个元素。如果你想获取所有解的索引,你需要使用FINDALL函数:

    X=FIND(BISECTIONS(A,B));
    BOUND=FIND(BISECTIONS(A,B),<:X);
    GAP=FIND(BISECTIONS(A,B),<:X);
    

    在这个例子中,FIND函数用于查找满足条件的所有解,而ALL函数则返回所有可能的解。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月6日
  • 赞助了问题酬金50元 11月5日
  • 创建了问题 10月24日