sysu-沼泽 发表于 2019-3-29 07:59:41

Lisp解决最优化问题

对于以下不等式,
3/a+4/b+5/c+6/d≤11,且a、b、c、d均只能为1、2、3、4中这四个数字中某一个,并且需a≥b≥c≥d。请教各位前辈,如何编写lisp,能使得100a+200b+300c+400d的和最小?

fangmin723 发表于 2019-3-29 08:38:38

a≥b≥c≥d有了这个条件,a就必须从最1开始,a为1时,bcd都必须为1,才能满足a≥b≥c≥d这个条件,然后再判断3/a+4/b+5/c+6/d≤11不等式是否满足,不满足的话abcd都为2时,再判断不等式,不等式满足的话,然后判断a为2,bcd为1是否满足,如果满足那么不用再继续了,a为2,bcd为1,如果不满足,那就都为2,以此类推!!!

sysu-沼泽 发表于 2019-3-29 20:20:36

fangmin723 发表于 2019-3-29 08:38
a≥b≥c≥d有了这个条件,a就必须从最1开始,a为1时,bcd都必须为1,才能满足a≥b≥c≥d这个条件,然后再判 ...

这个题目只是举例而已,实际上可能有20几个变量,若一个一个举例程序效率太慢了。
页: [1]
查看完整版本: Lisp解决最优化问题