Meine Absicht hier ist, Datum in der Reihenfolge anzugeben. Beginne mit d, gefolgt von d1, d2, d3 und end mit d ". Ich habe 'd = request.begin' als erstes Element initialisiert, während 'd' 'das letzte Element in der Reihenfolge ist. In den folgenden Codes definiere ich 'd1 = d.next', 'd2 = d1.next' und 'd3 = d2.next'. Außerdem habe ich die util-Bestellung in der Bibliothek aufgerufen; 'open util/ordern [Datum] als DateOrder'. Bei der Ausführung der Codes wurde jedoch keine Instanz gefunden. Könnte mich bitte jemand wissen lassen, was das Problem mit den Codes ist?Wie spezifiziert man die spezifischen Elemente in der Reihenfolge - mit util Bestellung in Alloy?
open util/ordering [Date] as DateOrder
abstract sig resource {}
one sig Tour extends resource {date : one Date, destination : tour_destination}
one sig tour_destination {}
pred holiday [disjoint d,d1,d2,d3,d": some Date , r:Request, t:Tour] {
r.begin = d and r.end = d"
t.date = d or t.date = d1 or t.date = d2 or t.date = d3 or t.date = d"
d != d"}
sig Date{}
pred init [d:Date]{d= Request.begin}
fact traces {
init [first]
let d" = last | one d : Date - last |
let d1 = d.next, d2 = d1.next, d3 = d2.next |
lone t: Tour, r: Request|
holiday [d,d1,d2,d3,d",r,t]}
one sig Request{tour_request: one Tour,begin: one Date, end: one Date}
run holiday
Sie @ivcha für Ihre Kommentare danken. Ich habe eine Änderung wie vorgeschlagen vorgenommen. Es gibt jedoch einen Syntaxfehler: Der Name "d" "kann nicht gefunden werden. Die aktualisierten Codes können im obigen Frageabschnitt eingesehen werden. Ist im Modell etwas nicht in Ordnung? – NHM
In der aktualisierten Version wird das Anfangsdatum des Feiertags angezeigt ist Request.begin = d, das Enddatum des Feiertags ist Request.end, während das Tourdatum entweder das gleiche Datum wie das Anfangsdatum d oder das Datum nach d, d1 oder d2 oder d3 oder dasselbe wie das sein kann Enddatum des Feiertags d ". – NHM
In Zukunft wird ein weiteres Datum für den Transport hinzugefügt. Sagen wir, d ist das Anfangsdatum des Urlaubs, d1 ist das Transportdatum (zB Zug), d2 ist das Tourdatum, d3 ist das Transportdatum für den Bus und d "ist das Enddatum des Urlaubs. Ich würde mich sehr freuen, wenn Sie mir einen Rat geben könnten Vielen Dank – NHM