農夫が畑に小麦あるいはとうもろこしを植えるかを選択します。 小麦ととうもろこしでは、1ヘクタール当たりの収穫量が異なります。 また、その栽培にかかる時間も異なります。農夫が働くことができる 最大日数は決められています。このような制約下で、労働時間40日間、 農地100ヘクタールの場合の最大収穫量を計算しなさい。
:- import(const_linear).farm(Area, WorkTime, AreaCorn, AreaWheat, Yield) :- corn(OutputCorn, CostsCorn), wheat(OutputWheat, CostsWheat), all_positive([AreaCorn, AreaWheat]), Area $>= AreaCorn + AreaWheat, WorkTime $>= CostsCorn * AreaCorn + CostsWheat * AreaWheat, linear_maximize(AreaCorn * OutputCorn + AreaWheat * OutputWheat, Yield). corn(0r5/2, 0r1/3). wheat(0r7/2, 0r2/3).
[user] ?- farm(100,40,AreaCorn,AreaWheat,Yield). AreaCorn = 80 AreaWheat = 20 Yield = 270 yes
| 冒頭へ |
|