2022-03-02 · 知道合伙人软件行家
你不把你的问题的具体内容说清楚,别人是很难理解你的思路的。比如J列的满足条件是什么意思,根本就不知所云。
你的约束条件貌似也有问题。约束条件只能用于规划求解时的可变单元格,或一些引用了可变单元格进行公式计算的单元格。而看你的截图,约束的是一些输入了具体数据的单元格。如B11:I11要大于等于500,而你的B11:I11中是已输入了具体数据的单元格吧,且没有一个数据满足你的约束条件。难道B2:I11都是可变单元格?但你的求解设置中只有第12行是可变单元格。如果是已输入的具体数字,添加约束条件又有何意义呢?打个比方,某单位招聘员工,要求年龄在20~55周岁之间,招聘时可按这个条件来选择人员(有效约束),如果把每个人比做一个单元格话,那就是可变的。但已招聘后,再来规定,年龄要求在30~40周岁之间。还起作用吗?人家在20~30,或40~55之间,你再怎么去约束规定,他也不会变成30~40。约束无解(规定无效)。
可变单元格的数据范围是什么,提问中没看到。本类相似问题,貌似应该是0或1——二进制数。
B2:I11共10行数据对成本的影响或关联是什么?无法从提问看到。
第13行的成本是如何得来的?是否与B2:I11有关?无法得知。
可变单元格B14,从常规理解应该是各种营养元素与价格的乘积的总和。而你的公式是MIN(成本*是否选择),它表示什么意义?你大概是希望总成本要最小,就用了MIN吧。但这肯定是有问题。因为规划求解的目的是要使B14最小,这里就用不着用MIN了。至少应该是:
=SUMPRODUCT(B12:I12*B13:I13)
这样类似的乘积总和。
但仅把B14修改成上面的公式,你的求解模型仍是不成立的。原因如上面说的那么多条。即使改成这个公式,也还是没有与表中的数据建立符合求解要求的逻辑关系。修改的公式只是说明你的MIN是一个毫无意义的公式。
7. 假设你有约束:B12:I11取0或1,总成本也是上面所修改的公式。那么如肯定还得一个其他条件,大概应该就是J列的条件。如果没有 另外的条件,那么满足B14最小的解当然是就B12:I12全为0,B14为0,满足最小的条件。而J列与B14或B12:I12没有建立任何关联,有与没有一样。所以即使B2:I11是可变的,以满足J列的条件,但对求解也毫无作用。
总之,感觉你还根本没有建立一个有效的数据模型,甚至基本的逻辑关系都没理清。却去给穿上一个规划求解的外衣。当然是无法得到结果的。话可能说得有些直,但目的是帮你分析问题。要不半夜睡觉不舒服多了,呵呵。
建议多学习下规划求解的一些案例,网上应该能搜索到一大把。看看别人是如何建立数据模型的,重点是数据与可变单元格,与结果是如何建立关联的。掌握了一些基本的规律后再来建立本问题的数学模型,也许会事半功倍。