私の意図は、日付を順番に指定することです。最初の要素として 'd = request.begin'を初期化し、順序の最後の要素として 'd' 'を初期化しました。次のコードでは、 'd1 = d.next'、 'd2 = d1.next'、および 'd3 = d2.next'を定義します。さらに、私は図書館でutilの注文を呼びました。 'open util/ordering [Date] as DateOrder'をクリックします。ただし、コードを実行する際にインスタンスが見つかりません。誰も私にコードの問題点を教えてもらえますか?特定の要素を順番に指定するには - 合金のutil orderingを使用しますか?
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
コメントの@ivchaをいただき、ありがとうございます。私は提案したように変更を加えました。ただし、構文エラーがあります:名前 "d" "を見つけることができません上記の質問セクションに更新されたコードが表示されますモデルに問題がありますか? – NHM
更新されたバージョンでは、 Request.begin = d、休日の終了日はRequest.end、ツアー日は開始日dと同じ日付、d、d1、またはd2の後の日付、またはd3、または休日の終了日d "とする。 – NHM
将来、輸送の別の日付が追加されます。 dは出発日、d1は運送日(列車など)、d2はツアー日、d3は運送日、dは休日の終了日です。 – NHM