product_plan(Products) :-
length(Products,9),
Raw1 #=< 95,
Raw2 #=< 95,
Profit #>= 40,
sum(Products,Raw1,Raw2,Profit),
labeling(Products).
product( 101,1,19,1). product( 102,2,17,2). product( 103,3,15,3).
product( 104,4,13,4). product( 105,10,8,5). product( 106,16,4,4).
product( 107,17,3,3). product( 108,18,2,2). product( 109,19,1,1).
sum(Products,Raw1,Raw2,Profit) :-
( foreach(Item,Products),
foreach(R1,R1List),
foreach(R2,R2List),
foreach(P,PList)
do
product(Item,R1,R2,P)
),
Raw1 #= sum(R1List),
Raw2 #= sum(R2List),
Profit #= sum(PList).