Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- % Data sets
- % a(Column, Row, Profit)
- % b(Column, Row, Profit)
- a(65, 66, -0.82).
- a(65, 65.5, -1.32).
- a(65, 65, -1.82).
- a(65.5, 66, -1.07).
- a(65.5, 65.5, -1.57).
- a(65.5, 65, -1.57).
- a(66, 66, -1.3).
- a(66, 65.5, -1.3).
- a(66, 65, -1.3).
- b(65, 66, -1).
- b(65, 65.5, -0.5).
- b(65, 65, 1.72).
- b(65.5, 66, -0.5).
- b(65.5, 65.5, 1.48).
- b(65.5, 65, 1.48).
- b(66, 66, 1.25).
- b(66, 65.5, 1.25).
- b(66, 65, 1.25).
- min_row(Row) :-
- a(Col, Row, _),
- \+ (a(_,Row2,_), Row2 < Row),!.
- max_row(Row) :-
- a(Col, Row, _),
- \+ (a(_,Row2,_), Row2 > Row),!.
- is_profit(ColA, ColB, Row, P) :-
- a(ColA, Row, Profit1),
- b(ColB, Row, Profit2),
- Profit is Profit1 + Profit2,
- ( Profit > 0 -> P is 1 ; P is 0),!.
- count_profits(ColA, ColB, Row1, P) :-
- max_row(Row),
- Row1 =:= Row,
- is_profit(ColA, ColB, Row1, P).
- count_profits(ColA, ColB, Row1, P) :-
- a(ColA,Row2,_),
- Row2 > Row1,
- count_profits(ColA, ColB, Row2, P2),
- is_profit(ColA, ColB, Row1, P1),
- P is P1+P2.
- count_profits(ColA, ColB, P) :-
- min_row(Row1),
- count_profits(ColA, ColB, Row1, P),!.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement