Ich versuche, ein Modell in minizinc zu machen, die in Arrays unten mit dem maxsum, 3 Zahlen in Folge findet:minizinc aufeinanderfolgende Zahlen in Array suchen
[2,3,4,**10,22,11**,17]).
[1,2,3,4,**10,22,11**,11,10,24]).
[2,3,4,5,10,23,**10,22,11**,17]).
ich mein Modell ausgegeben werden soll, diese Zahlen, deren Indizes und ihre Summe.
Ich versuchte dies:.
array[int] of int : list1 = [2,3,4,10,22,11,17];
array[int] of int : list2 = [1,2,3,4,10,22,11,11,10,24];
array[int] of int : list3 = [2,3,4,5,10,23,10,22,11,17];
array[1..3] of var int: values;
array[1..3] of var int: indices;
constraint forall(i in 1..3, j in list1)(
values[i]=list1[j]
);
constraint exists (i in 1..length(list1)-2)(
exists(j in 1..length(list2)-2)(
exists(k in 1..length(list3)-2)
(list1[i]=list2[j]/\list2[j]=list3[k] /\
list1[i+1]=list2[j+1]/\list2[j+1]=list3[k+1]/\
list1[i+2]=list2[j+2]/\list2[j+2]=list3[k+2]
/\values[1]=list1[i]/\values[2]=list1[i+1]/\values[3]=list1[i+2]
/\indices[1]=i/\indices[2]=j/\indices[3]=k
)));
var int: max_sum;
constraint max_sum=sum(values);
solve maximize max_sum;
aber unerfüllbar :(
Sie sollten klare Informationen darüber geben, was Sie erwarten und was Sie für diesen Moment erhalten. Bitte überlegen Sie, die Frage zu bearbeiten. –
natürlich ... ich erhalte dies: WARNUNG: Modellinkonsistenz erkannt C:/Benutzer/ /Desktop/ /bebee.mzn: 8: im Aufruf "forall" in Array Verständnis Ausdruck mit i = 1 mit j = 3 C:/Benutzer/ /Desktop/ /bebee.mzn:9: binär '=' Operator Ausdruck bebee.mzn Lauf ===== ===== unerfüllbar Finished in 77msec Ich erwarte dies: Werte = [10, 22, 11]; Indizes = [4, 5, 7]; Summe = 43; ---------- – Kotsos