Proces CCS dla dystrybutora napojów w dwóch różnych cenach


11

Dozownik napojów wymaga od użytkownika włożenia monety ( c¯ ), a następnie naciśnięcia jednego z trzech przycisków: prosi o filiżankę herbaty , to samo na kawę, i prosi o zwrot pieniędzy (tzn. maszyna zwraca monetę: ). Dozownik można modelować za pomocą następującego procesu CCS :eherbaty ˉ R ˉ bre¯herbatamiherbatar¯b¯

M.=remifado.(reherbata.mi¯herbata.M.+reKawa.mi¯Kawa.M.+r.b¯.M.)

Wojna domowa podnosi cenę kawy do dwóch monet, podczas gdy cena herbaty pozostaje jedną monetą. Chcemy zmodyfikowanego urządzenia, które dostarcza kawę dopiero po dwóch monetach, i przyznaje zwrot pieniędzy po jednej lub dwóch monetach. Jak możemy modelować zmodyfikowaną maszynę za pomocą procesu CCS?


1
Co to jest model / proces CCS? Czy są one równoważne z oznakowanymi systemami przejściowymi (LTS)?
— Raphael

1
@Raphael CCS to rachunek procesowy, prekursor rachunku różniczkowego pi. Model CCS to tylko model w CCS. Dodałem link do Wikipedii i tag wiki.
— Gilles „SO- przestań być zły”

Myślę, że logika i języki programowania są odpowiednie dla tego pytania. Algebry procesowe są badane w tych obszarach i dla tego pytania logika wydaje się bardziej odpowiednia, np. Sprawdź tutaj znaczniki obszaru .
— Kaveh

Odpowiedzi:


9

W ten sposób możesz łatwo czerpać zyski z działań wojennych:

M.=remifado.(reherbata.mi¯herbata.M.+r.b¯.M.+do.(reKawa.mi¯Kawa.M.+r.b¯.b¯.M.))

pamiętaj, że musisz wcisnąć zwrot, aby dostać herbatę, jeśli włożysz zbyt wiele monet. Jeśli tego nie chcesz, możesz go dostosować (lub może skonfigurować licznik (wystarczy skończonego)):

M.=remifado.(reherbata.mi¯herbata.M.+r.b¯.M.+do.(reKawa.mi¯Kawa.M.+reherbata.b¯.mi¯herbata.M.+r.b¯.b¯.M.))

Nie rozumiem twojej odpowiedzi. Pierwszy pokazany proces ma cenę kawy za jedną monetę, a urządzenie w jakiś sposób powoduje, że użytkownik wkłada monetę. Nie widzę żadnego związku z pytaniem. Drugi proces wygląda na dobrej drodze, ale co robić ?? do¯
— Gilles „SO- przestań być zły”

@Gilles: oddaje pieniądze, ale byłoby lepiej, że podałeś nam inną nazwę, by je odesłać. do¯
— Stéphane Gimenez

@ StéphaneGimenez Masz rację, dodałem to.
— Gilles „SO - przestań być zły”

@Gilles i Stéphane: masz rację, jest bardzo złym wyborem na refundację. (Na przykład możesz wymagać, aby maszyna była asynchroniczna: r . ( ˉ c ∣ M ), a następnie maszyna sama by to do¯r.(do¯∣M.)
— zrobiła,

@Gilles: Ja też wybrałem , niezależnie od ciebie. Myślę, że to kanoniczny wybór :-)b¯
— jmad

5

Ta maszyna jest wygodniejsza niż ta, którą proponujesz:M.0

M.0: =do.M.1

M.1: =reherbata.mi¯herbata.M.1+r.b¯.M.0+do.M.2)

M.n: =reherbata.mi¯herbata.M.n-1+reKawa.mi¯Kawa.M.n-2)+r.b¯.…b¯.⏟nM.0+do.M.n+1

(Ale używanie nieskończonych procesów jest jak oszustwo).


Podoba mi się tutaj aspekt kompozytorski. Wydaje mi się jednak, że automat nie dopuszcza więcej niż dwóch monet?
— Raphael

Cóż, daje to także wyobrażenie o tym, jak radzić sobie z monetami o różnych wartościach :-)
— Stéphane Gimenez,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.