CCS-Verfahren für einen Getränkeautomaten mit zwei unterschiedlichen Preisen

11

Getränkespender muss den Benutzer eine Münze (zum Einfügen ) und drückt eine der drei Tasten: ˉ d Tee fordert eine Tasse Tee e Tee , dito für Kaffee und ˉ r fordert eine Rückerstattung (dh die Maschine zurück gibt die Münze: ˉ b ). Dieser Spender kann durch den folgenden CCS- Prozess modelliert werden:c¯d¯teaetear¯b¯

M=defc.(dtea.e¯tea.M+dcoffee.e¯coffee.M+r.b¯.M)

Ein Bürgerkrieg erhöht den Preis für Kaffee auf zwei Münzen, während der Preis für Tee eine Münze bleibt. Wir wollen eine modifizierte Maschine, die Kaffee erst nach zwei Münzen liefert und nach einer oder zwei Münzen eine Rückerstattung akzeptiert. Wie können wir die modifizierte Maschine mit einem CCS-Prozess modellieren?

Gilles 'SO - hör auf böse zu sein'
quelle
1
Was ist ein CCS-Modell / Prozess? Entsprechen sie markierten Übergangssystemen (LTS)?
Raphael
1
@ Raphael CCS ist ein Prozesskalkül, ein Vorläufer des Pi-Kalküls. Ein CCS-Modell ist nur ein Modell in CCS. Ich habe einen Wikipedia-Link und ein Tag-Wiki hinzugefügt.
Gilles 'SO - hör auf böse zu sein'
Ich denke, Logik und Programmiersprachen sind für diese Frage angemessen. Prozessalgebren werden in diesen Bereichen untersucht, und für diese Frage scheint die Logik angemessener zu sein, z. B. überprüfen Sie bitte die Bereichs-Tags hier .
Kaveh

Antworten:

9

Auf diese Weise können Sie leicht von der Kriegsführung profitieren:

M=defc.(dtea.e¯tea.M+r.b¯.M+c.(dcoffee.e¯coffee.M+r.b¯.b¯.M))

Beachten Sie, dass Sie auf Rückerstattung drücken müssen, um einen Tee zu erhalten, wenn Sie zu viele Münzen einsetzen. Wenn Sie das nicht möchten, können Sie es anpassen (oder einen Zähler einrichten (endlich ist genug)):

M=defc.(dtea.e¯tea.M+r.b¯.M+c.(dcoffee.e¯coffee.M+dtea.b¯.e¯tea.M+r.b¯.b¯.M))
jmad
quelle
Ich verstehe deine Antwort nicht. Der erste Prozess, den Sie zeigen, hat den Preis für Kaffee bei einer Münze und veranlasst den Automaten, dass der Benutzer eine Münze einwirft. Ich sehe keinen Zusammenhang mit der Frage. Der zweite Prozess sieht auf dem richtigen Weg, aber was tun sollte ?? c¯
Gilles 'SO - hör auf böse zu sein'
@ Gilles: gibt das Geld zurück, aber es wäre besser, wenn Sie uns einen anderen Namen geben würden, um das Geld zurückzusenden. c¯
Stéphane Gimenez
@ StéphaneGimenez Du hast recht, das habe ich hinzugefügt.
Gilles 'SO - hör auf böse zu sein'
@ Gilles und Stéphane: Sie haben Recht, ist eine sehr schlechte Wahl für die Rückerstattung. (Zum Beispiel könnten Sie verlangen, dass die Maschine asynchron ist: r . ( ˉ cM ) und dann könnte die Maschine es selbst nehmen, so dass Sie schnell sein müssen, um Ihr Geld zu fangen!)c¯r.(c¯M)
jmad
@ Gilles: Ich habe auch , unabhängig von dir. Ich denke, das ist die kanonische Wahl :-)b¯
jmad
5

Diese -Maschine ist bequemer als die von Ihnen vorgeschlagene:M0

M0:=c.M1

M1:=dtea.e¯tea.M1+r.b¯.M0+c.M2

Mn:=dtea.e¯tea.Mn1+dcoffee.e¯coffee.Mn2+r.b¯.b¯.nM0+c.Mn+1

(Aber unendliche Prozesse zu benutzen ist wie zu schummeln).

Stéphane Gimenez
quelle
Ich mag den kompositorischen Aspekt hier. Ich denke jedoch, dass es in Ordnung ist, wenn der Automat nicht mehr als zwei Münzen zulässt.
Raphael
Nun, dies gibt auch eine Vorstellung davon, wie man mit Münzen umgeht, die unterschiedliche Werte haben :-)
Stéphane Gimenez