Proses CCS untuk dispenser minuman dengan dua harga berbeda

11

Dispenser minuman mengharuskan pengguna untuk memasukkan koin ( ), lalu tekan salah satu dari tiga tombol: meminta secangkir teh , selain kopi , dan meminta pengembalian uang (yaitu mesin mengembalikan koin: ). Dispenser ini dapat dimodelkan dengan proses CCS berikut :ˉ d teheteh ˉ r ˉ bc¯d¯teaetear¯b¯

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

Perang saudara menaikkan harga kopi menjadi dua koin, sementara harga teh tetap satu koin. Kami menginginkan mesin yang dimodifikasi yang mengirimkan kopi hanya setelah dua koin, dan menyetujui pengembalian dana setelah satu atau dua koin. Bagaimana kita bisa memodelkan mesin yang dimodifikasi dengan proses CCS?

Gilles 'SANGAT berhenti menjadi jahat'
sumber
1
Apa itu model / proses CCS? Apakah setara dengan sistem transisi berlabel (LTS)?
Raphael
1
@Raphael CCS adalah proses kalkulus, pendahulu dari kalkulus pi. Model CCS hanyalah model di CCS. Saya telah menambahkan tautan Wikipedia dan tag wiki.
Gilles 'SO- stop being evil'
Saya pikir logika dan bahasa pemrograman sesuai untuk pertanyaan ini. Aljabar proses dipelajari dalam bidang-bidang ini, dan untuk pertanyaan ini, logika tampaknya lebih sesuai, misalnya, periksa tanda area di sini .
Kaveh

Jawaban:

9

Anda dapat dengan mudah mendapat keuntungan dari peperangan seperti itu:

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

perhatikan bahwa Anda harus menekan pengembalian dana untuk mendapatkan teh jika Anda memasukkan terlalu banyak koin. Jika Anda tidak menginginkannya, Anda dapat mengadaptasinya (atau mungkin menyiapkan penghitung (terbatas sudah)):

M=defc.(dtea.e¯tea.M+r.b¯.M+c.(dcoffee.e¯coffee.M+dtea.b¯.e¯tea.M+r.b¯.b¯.M))
jmad
sumber
Saya tidak mengerti jawaban Anda. Proses pertama yang Anda tunjukkan memiliki harga kopi pada satu koin, dan memiliki mesin yang entah bagaimana menyebabkan pengguna memasukkan koin. Saya tidak melihat hubungan dengan pertanyaan itu. Proses penampilan kedua di jalur yang benar, tapi apa seharusnya dilakukan ?? c¯
Gilles 'SO- stop being evil'
@Gilles: mengembalikan uang, tetapi akan lebih baik jika Anda memberi kami nama lain untuk mengirim kembali uang itu. c¯
Stéphane Gimenez
@ StéphaneGimenez Anda benar, saya telah menambahkannya.
Gilles 'SANGAT berhenti menjadi jahat'
@Gilles dan Stéphane: Anda benar, adalah pilihan yang sangat buruk untuk pengembalian uang. (Misalnya Anda dapat meminta mesin agar tidak sinkron: dan kemudian mesin dapat mengambilnya sendiri sehingga Anda harus cepat menangkap uang Anda!)c¯r.(c¯M)
jmad
@Gilles: Saya memilih juga, terlepas dari Anda. Saya kira ini adalah pilihan kanonik :-)b¯
jmad
5

Ini mesin lebih mudah daripada yang Anda usulkan: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

(Tetapi menggunakan proses yang tak terbatas seperti menipu).

Stéphane Gimenez
sumber
Saya suka aspek komposisi di sini. Namun, saya kira itu baik-baik saja untuk robot tidak membiarkan lebih dari dua koin?
Raphael
Nah ini juga memberi gambaran bagaimana cara menangani koin yang memiliki nilai berbeda :-)
Stéphane Gimenez