作业帮 > 综合 > 作业

用matlab的哪种算法可以较好地解决下面这种优化问题?

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/07/13 10:03:32
用matlab的哪种算法可以较好地解决下面这种优化问题?
我有从x1到x600这600个未知数,都限定为整数,每个未知数都有自身的范围,同时未知数总和也有范围,这些未知数会同时与其他确定的数相乘得出一个目标值,又同时与另一组确定的数相乘得到另一目标值,最后希望能通过选择合适的算法使得这两个目标值之和最小.我用了lingo编写但求解时间太长了,想通过matlab选择较好的算法,那样可以缩短时间,请问一下哪种算法比较适合,可否简要说一下参数的设定?
用matlab的哪种算法可以较好地解决下面这种优化问题?
Matlab最优算法只能解0,1变量的整数规划,其他整数变量据我所知还解不了.智能算法倒是可以试试,或者选择其他软件.不知道你是想最优求解,还是近优求解?
再问: 我那个问题一般没有最优解,比较复杂,近忧求解就行了。我不是求解0 1 我最后要求解出这600个未知数的值,智能算法哪个比较好呢?好像也没有什么别的软件比较适合了吧?
再答: 我的版本R2008a里智能算法有GA,SA和阀值接受算法等,你可以试试。不用Matlab的话,可能需要自己编程(至少是修改现有代码)来求解你的问题。
再问: 那请问一下,用matlab的话,是直接在m文件下编写,还是用工具箱? 好像不能直接用工具想吧?是不是都是应该自己应该在m文件下编写?
再答: 你说的应该是一个在M文件编写,调用例如GA算法,另一种optimtool,界面操作。二者功能相同,调用的核心函数是一个。前者灵活些,后者方便些。看你的问题难易而定。你可以先试下optimtool。