Процес CCS для дозатора напоїв з двома різними цінами


11

Напій дозатор вимагає, щоб користувач , щоб вставити монету ( ), а потім натисніть одну з трьох кнопок: ˉ d чай просить чашку чаю е чаю , Ditto для кави, а ˉ г вимагає повернення (тобто машина дає назад монета: ˉ б ). Цей дозатор можна моделювати за допомогою наступного процесу CCS :c¯d¯teaetear¯b¯

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

Громадянська війна піднімає ціну на каву до двох монет, тоді як ціна чаю залишається однією монетою. Ми хочемо модифіковану машину, яка доставляє каву лише після двох монет, і повертається після повернення однієї або двох монет. Як ми можемо моделювати модифіковану машину за допомогою процесу CCS?


1
Що таке модель / процес CCS? Чи вони еквівалентні міченим системам переходу (LTS)?
— Рафаель

1
@Raphael CCS - це технологічне числення, попередник обчислення pi. Модель CCS - це лише модель у CCS. Я додав посилання у Вікіпедії та вікі з тегами.
— Жил "ТАК - перестань бути злим"

Я думаю, що логіка та мови програмування підходять для цього питання. Алгебри процесу вивчаються в цих областях, і для цього питання логіка здається більш прийнятною, наприклад, будь ласка, перевірте тут теги областей .
— Каве

Відповіді:


9

Ви можете легко отримати прибуток від ведення війни таким чином:

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

зауважте, що вам потрібно подати відшкодування, щоб отримати чай, якщо ви покладете занадто багато монет. Якщо ви цього не хочете, ви можете адаптувати його (або, можливо, встановити (достатньо скінченного) лічильника):

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

Я не розумію вашої відповіді. Перший процес, який ви показуєте, має ціну кави за одну монету, і машина має якось змусити користувача вставити монету. Я не бачу зв'язку з цим питанням. Другий процес виглядає на правильному шляху, але що повинен робити ?? c¯
— Жил "ТАК - перестань бути злим"

@Gilles: повертає гроші, але було б краще , я вам дав нам інше ім'я , щоб відправити гроші назад. c¯
— Стефан Гіменез

@ StéphaneGimenez Ти маєш рацію, я це додав.
— Жил "ТАК - перестань бути злим"

c¯r.(c¯∣M)

b¯ too, independently of you. I guess this is the canonical choice :-)
— jmad

5

This M0 machine is more convenient than the one you propose:

M0:=c.M1

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

Mn:=dtea.e¯tea.Mn−1+dcoffee.e¯coffee.Mn−2+r.b¯.…b¯.⏟nM0+c.Mn+1

(But using infinite processes is like cheating).


I like the compositional aspect here. However, I guess it is fine for the automaton to not allow more than two coins?
— Raphael

Well this also gives an idea of how to deal with coins that have different values :-)
— Stéphane Gimenez
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.