CCS процесс для диспенсера для напитков с двумя разными ценами

11

Диспенсер для напитков требует, чтобы пользователь вставил монету ( ), а затем нажмите одну из трех кнопок: запрашивает чашку чая , то же самое для кофе , и запрашивает возврат (т. е. автомат возвращает монету: ). Этот дозатор может быть смоделирован следующим процессом 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 - это исчисление процессов, предшественник пи-исчисления. Модель CCS - это просто модель в CCS. Я добавил ссылку на Википедию и тег вики.
Жиля SO- перестать быть злым »
Я думаю, что логика и языки программирования подходят для этого вопроса. Алгебры процессов изучаются в этих областях, и для этого вопроса логика кажется более подходящей, например, проверьте метки области здесь .
Каве

Ответы:

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))
jmad
источник
Я не понимаю ваш ответ. В первом процессе, который вы показываете, цена кофе составляет одну монету, а машина каким-то образом заставляет пользователя вставлять монету. Я не вижу никакой связи с вопросом. Второй процесс выглядит на правильном пути, но что должен делать ?? с¯
Жиль "ТАК - перестань быть злым"
@ Жиль: вернет деньги, но было бы лучше, если бы вы дали нам другое имя, чтобы вернуть деньги. с¯
Стефан Гименес
@ StéphaneGimenez Вы правы, я добавил это.
Жиль "ТАК - перестань быть злым"
@ Жиль и Стефан: вы правы, - очень плохой выбор для возврата. (Например, вы могли бы потребовать, чтобы машина была асинхронной: r . ( ˉ cM ), и тогда машина могла бы взять ее сама, поэтому вам нужно быть быстрым, чтобы поймать ваши деньги!)с¯р,(с¯|M)
jmad
@ Жиль: Я тоже выбрал , независимо от тебя. Я предполагаю, что это канонический выбор :-)б¯
jmad
5

Эта машина более удобна, чем та, которую вы предлагаете:M0

M0знак равнос,M1

M1знак равноdчай,е¯чай,M1+р,б¯,M0+с,M2

MNзнак равноdчай,е¯чай,MN-1+dкофе,е¯кофе,MN-2+р,б¯,...б¯,NM0+с,MN+1

(Но использование бесконечных процессов похоже на обман).

Стефан Хименес
источник
Мне нравится композиционный аспект здесь. Тем не менее, я думаю, это нормально для автомата, чтобы не допустить более двух монет?
Рафаэль
Ну, это также дает представление о том, как обращаться с монетами, которые имеют разные значения :-)
Стефан Гименес