acm-header
登录

ACM通信

BLOG@CACM

作为公开数据的投票


罗宾·k·希尔,怀俄明大学

在我最近的博客文章中[希尔2019年,我声称(1)“投票是象征性的、离散的、没有内涵的;不是沟通的行为,而是宣言的行为,一次性的,未经协商的,单方面的。”我声称(2)投票是一级工件(独立存在,受创建、销毁、检查和修改的影响)——因此它可以作为参数传递(给计数函数),并可以与其他工件进行比较。而且没有描述或标识通过设计(保持匿名)。在过去的几个月里,我一直对我们称之为投票的数据的本质很感兴趣(而且,正如你所知道的,怀俄明庆祝了女性选举权150周年)。投票的特征是什么?它们如何影响其处理?投票的本体论是什么?

不仅投票数据很重要,投票处理也很重要。投票是一个包,一堆概念,就像面向对象编程一样。但是,让我们尽可能地将自己限制在与数据结构的处理无关的数据结构的讨论中。我们把投票当作一种基准,采用“基准”这个正确的术语不仅是为了卖弄学问,而且是为了精确。也许如果我们弄清楚什么是投票,我们就能更好地保护它在处理过程中不受虐待。

首先,注意这个不可分割的物体的绝对完整性或纯粹性。在数据建模中,我们有时通过允许截断(名称)或将值强制放入受限结构(地址)或有限选择(邮政编码)或默认值来更改来自真实世界的数据。但不是靠选票。我们不接受近似。没有估算、概率或简写来代替原始的完整值。在这个领域,技术必须由人的需要来管理——事实上,是由人的需要来决定,而不是反之。

从表面上看,投票似乎是一个标量,是一个具有简单值而不是复合值的变量。这个变量应该是只读的,或者更准确地说,写一次(这是计算机科学中一个古老的艺术术语,指的是存储设备,比如CD-R)。变量的类型应该允许以某种方式进行聚合,从而可以比较聚合的相对大小。当然,完整性要求投票在一次性记录的媒介上(为了可能的重新计票),保密性要求投票与它的来源分离。

我们可以构建一个简单的场景。标准选票列出了办公室或议题,以及对每个问题的一系列选择,我们将其解释为是/否问题。假设一个上下文B,表示一个特定的选票,让我们把选票集合归结为单个布尔变量V的(实例),即选票,在时间t的某个时刻,由单个选民R对特定问题Q设置为是或否。首先,V的区别是什么?如果Q和T是固定的,V是R的函数吗?那么R不能有任何V的其他值。

我们的无记名投票规定,V不能从选民R的值计算出来,反之亦然;V不能给出R的恒等式。V是R在T处的一个属性,但此后就不再是;也就是说,R和T不仅必须被留下,而且必须被剥离。V现在是一个自由浮动的布尔数据,独立存在。如果这一切听起来有点傻,把这段话当作现象学还原[希尔2018年],其中我们忽略了程序处理或任何算法处理的约束;也就是说,我们试图弄清楚投票在我们的第一人称体验中会发生什么。

因为选票是一个进入计数的数据,我们可以问我们的概念是否适用于其他计数任务下的其他数据。我不信;这些数据要么包含在聚合中,要么保持在源的附件中。如果我们在计算事务、文件或员工,那么这些对象中的每一个都仍然存在,并具有标识事务idfile-ptrempnum在它对计数有贡献之后。如果我们在计算CPU周期,那么就不需要保留任何参与计数的对象,因此不会保留任何标识符。

所以我们的V票,在投出之后,就变成了另一种东西。V变成了一个裸值,它的存在是合理的,因为直到现在,它还与一个实体——选民r相关联。然而,在计票过程中,它将立即与其他实体合并,并与代表它所代表的选择的数据相关联。它的值(Yes或No)将成为它的关联,与范例计数任务相一致。

更重要的是,它必须保持某种同一性,在某个地方,以某种方式,完整而独特。如上所述,投票是必须审核或重新计数的对象。在分离选票来源以保持机密的做法下,如何做到这一点?一票可以重新命名吗?也就是说,它是否具有作为属性的标识符?我们想象一堆纸选票,R的选票B上的每一票V都由选民R记录和验证。这些选票V的身份地位是什么?当然,可以将人工ID分配给对象,但通常情况下,这些ID都是递增的整数,这是一种简单的实践,可以确保每个ID都是唯一的。但是这种模式提供了一种方法来确定投票在序列中的哪个位置发生,如果不是事件的实际时间的话。任何用于生成唯一人工id的模式都会留下这样的痕迹,可能会导致身份识别——这一问题类似于在从人们收集的数据中保持匿名。一叠纸质选票是通过单独的实体存在来识别的; that's how things work in the real world. In the case of some nefarious attempt to connect a vote with a particular voter, our limited mental capacity delivers confidentiality by virtue of the difficulty of distinguishing one ballot in the stack from another. But translating this wholly into computation is tricky. No solution is offered here.

我们是否应该将投票解释为布尔变量以外的某种对象?我们在选票上看到的通常是选项中的一个选择,而不是细粒度的布尔值数组。在我们心中,当我们决定我们的投票时,也许最重要的安排是他们之间的一种排序。在肯尼斯·阿罗(Kenneth Arrow)对投票的重要分析中,定义了一组选民,选民变量R的取值为1到n,选票上的备选集为X,其中有个人选择X、y、z……,其中要选出一个。没有承诺的程度。偏好配置文件是X的一组弱排序(允许有联系),每个选民r对应一个X。在这个模型中,著名的阿罗定理[SEP-ArrowsThm)暴露出人们的意愿在多大程度上受到限制。阿罗定理的解释还得等一等。要带走的一点是,投票的表示法通知了处理过程,而处理过程可能被证明具有奇怪的特征。(低级布尔变量不服从阿罗定理,因为它们没有顺序。)

可能没有任何声明的变量(标量或非标量)能够捕获个人的愿望。也许R在面对“是”或“不是”时,真正想要的是“也许”,或者是一种表达“两者都一样糟糕”的方式。或者R想记录一个“不”或“是”的度,在0到10之间。或者R想要一组基于因素的偶发事件,比如明天选票b之外的其他地方的选举结果,标量变量模型和Arrow模型都不能提供如此全面的灵活性(其他常见的投票方法也不能)。但是R理解这一点。在某个点上,必须传递一个离散值;最好现在就在这里,在选民手中。

如果投票的类型,从节目编制中所使用的宣言的意义上来说,如此重要,那么考虑一下这个问题:选民的集体意愿的类型是什么?如果我们深入研究一群选民的头脑,或者平均头脑,我们会发现什么?我们能在一个问题Q的上下文中找到布尔值吗?这是一个分数吗?一个范围?或者最好把它想象成Q以外任意因子的关系或者函数?正如程序员所知,在变量的类型声明中捕获了大量概念性工作。

对于编写一个有效的投票程序来说,这种哲学既不是必要的,也不是充分的。读者可以看出,这些沉思是深奥的思考,受到计算机的启发,但带有哲学色彩。更有根据的观点将来自社会科学,它们拥有大量和多样化的投票研究。在我们自己的领域中,真正的有血有肉的软件工程师正在实际的比特和电路投票系统中工作,编写投票对象或相关对象的实际声明,我们赞扬他们。

参考文献

[希尔2018]罗宾·希尔,2018。计算机现象学的例子。Blog@CACM.2018年3月29日。

[希尔2019]罗宾·希尔。投票、编码和代码。Blog@CACM.2019年11月27日。

SEP-ArrowsThm Morreau,迈克尔。“阿罗定理”,斯坦福哲学百科全书(2019年冬季版)。爱德华。N.扎尔塔(编)。

罗宾·k·希尔他是怀俄明大学计算机科学系的讲师,也是哲学与宗教研究系和怀俄明人文研究所的附属机构。她自1978年以来一直是ACM的成员。


没有发现记录

Baidu
map