具有两种不同价格的饮料分配器的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是过程演算,是pi演算的前身。CCS模型只是CCS中的模型。我添加了Wikipedia链接和标签Wiki。
吉尔(Gilles)'“ SO-别邪恶”

我认为逻辑编程语言适合该问题。过程代数是在这些领域中研究的,对于这个问题,逻辑似乎更合适,例如,请在此处检查区域标签。
卡夫

Answers:


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¯
吉尔斯(Gillles)“所以-别再邪恶了”

@Gilles:退还这笔钱,但是最好您给我们一个名字来退还这笔钱。c¯
斯特凡希门尼斯

@StéphaneGimenez是的,我已经添加了。
吉尔斯(Gilles)'所以

@Gilles和Stéphane:您是对的,是退款的非常糟糕的选择。(例如,您可能要求机器是异步的:,然后机器可以自行使用它,因此您需要快速抓钱!)c¯r.(c¯M)
jmad 2012年

@吉尔斯:我也选择了,独立于您。我猜这是规范的选择:-)b¯
贾迪(Jmad)2012年

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

(但是使用无限的过程就像作弊一样)。


我喜欢这里的构图方面。但是,我想自动机允许不超过两个硬币是可以的吗?
拉斐尔

嗯,这也提供了如何处理有不同的价值观:-)硬币的想法
斯特凡希门尼斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.