%%graph_to_change([[X,Y1],[X,Y2]],+) :- %% Y2 is Y1+1. graph_to_change(Graph1,Graph2,Change) :- find_height(Graph1,Height1), find_height(Graph2,Height2), ( (Height2 >= Height1, Change='+'); (Height2 < Height1, Change='-') ). find_height(Graph,Height) :- find_minimum(Graph,Minimum), find_maximum(Graph,Maximum), Height is Maximum-Minimum. find_minimum([Value|List],Minimum) :- find_minimum(Value,List,Minimum). find_minimum(Minimum,[],Minimum). find_minimum(Value,[Value1|List],Minimum) :- (Value1>=Value, find_minimum(Value,List,Minimum)); (Value1Value, find_maximum(Value1,List,Maximum)).