Processo CCS per un distributore di bevande con due prezzi diversi


11

Un distributore di bevande richiede all'utente di inserire una moneta ( ), quindi premere uno dei tre pulsanti: richiede una tazza di tè , idem per il caffè e richiede un rimborso (ovvero la macchina restituisce la moneta: ). Questo distributore può essere modellato mediante il seguente processo CCS :ˉ d teaetea ˉ r ˉ bc¯d¯teaetear¯b¯

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

Una guerra civile aumenta il prezzo del caffè a due monete, mentre il prezzo del tè rimane una moneta. Vogliamo una macchina modificata che consegni il caffè solo dopo due monete e acconsenta a un rimborso dopo una o due monete. Come possiamo modellare la macchina modificata con un processo CCS?


1
Che cos'è un modello / processo CCS? Sono equivalenti ai sistemi di transizione etichettati (LTS)?
Raffaello

1
@Raphael CCS è un calcolo di processo, un precursore del calcolo pi. Un modello CCS è solo un modello in CCS. Ho aggiunto un link Wikipedia e un tag wiki.
Gilles 'SO- smetti di essere malvagio' il

Penso che la logica e i linguaggi di programmazione siano appropriati per questa domanda. Le algebre di processo sono studiate in queste aree e per questa domanda la logica sembra più appropriata, ad esempio si prega di controllare i tag di area qui .
Kaveh,

Risposte:


9

Puoi facilmente trarre profitto dalla guerra in questo modo:

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

si noti che è necessario premere il rimborso per ottenere un tè se si mettono troppe monete. Se non lo desideri, puoi adattarlo (o forse impostare un contatore (finito è sufficiente)):

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

Non capisco la tua risposta. Il primo processo che mostri ha il prezzo del caffè a una moneta e la macchina in qualche modo fa sì che l'utente inserisca una moneta. Non vedo alcun collegamento con la domanda. Il secondo processo sembra sulla strada giusta, ma cosa dovrebbe fare ?? c¯
Gilles 'SO-smetti di essere malvagio' il

@Gilles: restituisce i soldi, ma sarebbe meglio che tu ci dessi un altro nome per rispedire i soldi. c¯
Stéphane Gimenez,

@ StéphaneGimenez Hai ragione, l'ho aggiunto.
Gilles 'SO-smetti di essere malvagio' il

@Gilles e Stéphane: hai ragione, è una pessima scelta per il rimborso. (Ad esempio potresti richiedere che la macchina sia asincrona: e quindi la macchina potrebbe prenderla da sola, quindi dovrai essere veloce per prendere i tuoi soldi!) r. ( ˉ cM)c¯r.(c¯M)
jmad

@Gilles: ho scelto anche , indipendentemente da te. Immagino che questa sia la scelta canonica :-)b¯
jmad

5

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

(Ma usare processi infiniti è come imbrogliare).


Mi piace l'aspetto compositivo qui. Tuttavia, suppongo che l'automa non consenta più di due monete?
Raffaello

Bene, questo dà anche un'idea di come trattare monete con valori diversi :-)
Stéphane Gimenez
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.