我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:双彩网 > 约束矩阵 >

求高手用matlab编程求解矩阵的最大值问题有约束条件。

归档日期:06-22       文本归类:约束矩阵      文章编辑:爱尚语录

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部抱歉,我没有能力帮你解决这个问题,但可以谈几点看法,供参考(看到楼主有另外一个高悬赏的提问question/577326380.html,那个留给更有能力解决问题的人回答吧):

  1、在另一个提问里,有人建议用bintprog,那是不可行的,因该函数仅适用于线性约束的情况,而你的问题当中包含非线、分析一下约束条件:

  X是一个4x10的矩阵,由最后一个条件可知,其元素只能是0或1,其它各约束条件的含义分析如下:

  (2)求列元素乘积的式子只能有两种结果:0或1,当且仅当该列元素全为1时结果为1,所以第2个约束条件的含义就是10列当中有4列元素全为1。

  (3)这个约束条件似乎是多余的,是不是搞错了?如前所述,求列乘积的式子只有0和1两种可能:

  如果该列元素全为1,则列乘积为1,那么不等式的左边结果为0,不等式成立;

  如果改列元素不全为1,列乘积为0,则列求和的结果不会超过3,不等式也成立。

  (1)用非整数规划的算法,加约束条件xij*(xij-1)=0(共40个),但可能存在两个问题:a、容易陷入局部最优;b、怎样找到初始可行解;

  (3)试试其它规划软件,据说LINGO求解整数规划的能力不错但我没试过。其它比较著名的还有AMPL和NAG等,你可以自己查阅相关信息。

  (4)总的说起来,0-1整数规划属于臭名昭著的NP问题(卡普的二十一个NP-完全问题),最坏条件下,可能遍历全部2^n个组合,就这个问题而言,2^40≈10^12,问题规模较大,实在不容乐观。

  现在,最当务之急的是,楼主看看第三个约束条件是不是有问题,把条件确认了我再想想办法。

  尽管没能完全解决问题,上面这些也是花了不少时间思考的,如果觉得有帮助,希望能采纳(我如果想出更好的办法,会到另一个提问去回答)。

  追问多谢热心网友,这个我在走投无路的时候用C++来求解了,肯定没有matlab和lingo容易,尝试过用lingo做,会简单一点,但是过程很繁琐,很想知道用matlab的做法,十分好奇,第三个约束条件没错的,这是一个0——1线性规划问题,前面一个系数是0或者1,关键是后面相加是否=3,如果你能用matlab做出,去那边我给分你,我十分好奇matlab如何编程。追答编程好说,最主要是考虑用什么算法。非线整数规划到现在为止好像还没有特别有效的算法,我担心编出程序来要算很久,几十分钟我可以等,但如果算几天就受不了了。

  另外,你确定第三个约束条件没问题吗?我说的有问题并非说它错了,而是指,这个条件始终是满足的(见我上面的分析),所以也就是多余的。欢迎继续讨论,也许是我理解错误。

本文链接:http://ksbuilders1.com/yueshujuzhen/26.html