关于2018年9月16日滨海边疆区伪造州长选举的数学调查

在2018年9月16日滨海边疆区州长的第二轮选举中,代理演员见了 州长安德烈·塔拉森科(Andrei Tarasenko)和共产主义者安德烈·伊先科(Andrei Ishchenko),他们在第一轮比赛中获得亚军。 在计票过程中,CEC RF网站上显示了一个信息面板,其中包含越来越多的已处理协议和候选人投票。

在输入1484(95.74%)协议后,CEC官方网站www.izbirkom.ru上有关地块的详细数据的发布就冻结了,直到最后才恢复。 因此,当广播中的投票领导者突然从伊先科变成塔拉申科时,还不清楚这将如何发生。 媒体只是写道:“在处理了99.03%的协议后, 领导者就改变了 。”

但是,使用来自仪表板的中间汇总数据,使用简单的数学和程序设计,您可以详细确定选举后晚上的协议到底发生了什么。 我们使用Google的Python,Colab和Microsoft Research的Z3定理证明者 。 好吧,我们将通过普通的推论来完成所有工作。



调查背景和初步估算


协议数是整数参数


您经常在媒体上看到“这是处理90%的选票后的CEC数据,国际文传电讯社报道 ”或“ 在Primorye中处理的0.45%的选票:塔拉森科领导 。” 当然,对于百分比形式的整数参数进度表示,记者感到困惑,而不是``处理了0.45%的选票 ''(没人知道到计算结束时有多少张选票),您需要简单明了地编写-系统输入了1550年以来的7个协议。

可用的开放数据


  1. 数十个投票站在选举的最后两个小时显示出投票率不足,这在统计上是不可能的,它立即引起了人们的注意,并创建了一个列出了这些可疑委员会名单的网站

    按小时数分类的选民人数分布,来源-GAS Elections
  2. 已知候选人的票数和已处理协议的百分比如何变化,包括在具有详细数据的CEC网站停止更新期间(即从95.74%到最终的99.16%),数据在CEC广播中发布并在媒体上转载。
  3. GAS选举网站上,至少发布了29个观察员的书面规程,其数据与最终数据不同。
  4. 在GAS系统通过...&version = 1形式的链接进行选举时,可以使用19个部分的协议的初始版本。 此列表与上面列出的29种书面协议部分重叠:13个站点不同,CEO对此进行了更改。 也就是说,所有参与更改的站点-29 + 19-13 = 35个站点
  5. GAS还在投票站中发现了13个隐藏的协议,由于消防员访问符拉迪沃斯托克(海参div)Sovetsky区的领土选举委员会,投票被取消。
  6. 在取消选举之前,指向主要结果的链接已在服务器级别覆盖,现在,包含version参数的链接始终显示所有选择的服务器错误(示例) ,但仍可以通过略微修改的链接(用v替换为%76 来使用协议(示例)
  7. 9月17日星期一上午7:46(文章中无处显示当地时间,格林尼治标准时间+ 10),选举统计专家S. Shpilkin开始每5分钟从CEC网站保存一次数据 ,该数据显示了如何在13:45上传最后一个数据53种协议

开放数据中可以看到什么


我们用整数协议代替令人困惑的百分比,并查看在网站和CEC的视频广播中发布的已知数据表。


官方数据(伪造)

可以看到的最简单的事情是协议发生了什么阶段,其纸质版本与正式版本不同。


由于已知不同协议的数量,因此以95.74%和99.16%的数据查看,您可以了解29种与CEO不同的协议分别发生了什么。 事实证明,有16个协议以错误的编号立即输入到CEO,然后没有被触摸,有13个协议正确输入,然后才被编辑。 在首席执行官纠正的19项协议中,有13项在公众范围内都有纸质版本的扫描,因此我们有编辑结果的双重证明。 其余6个编辑仅在CEO中显示。

看看谁赢得了选举

正式击败塔拉申科。 在首席执行官和协议中-伊先科。 情节

伊先科以249,845(51.1%)的成绩获胜,而226,637(46.4%)。 通过改写协议, 伊先科的票数减少了402, 塔拉申科的票数增加了15,077。通过对CEO协议的更正,I。的票数减少了954,T. –增加了14,894。这两种类型的伪造对票数差的总影响为31327。隐藏13个部分的效果符拉迪沃斯托克(Vladivostok)的选票非常少,按照这些协议,它们的总结果非常接近-共产主义者为2 939,而统一俄罗斯为3 408。

如果您指望这些地块,那么共产主义者最初会在908个地块中获胜,俄罗斯联合党在628个地块中获胜,在14个地块中获得平局。 就是说,就地点数量而言,共产党赢得了巨大的胜利。 在9个部分的35个编辑改写中,编辑导致获胜者改为联合俄罗斯,而在剩下的26个中,联合俄罗斯获胜。 也就是说,在637个投票站中赢得了联合俄罗斯的假胜利,而在共产党中则是899。

还有趣的是,由CEO编辑的协议最初是根据书面协议引入的。 但是,根据异常数字(尤其是第28122863节)判断,乌苏里斯克几乎所有委员会的业绩均由首席执行官裁定,它们最初也发布了伪造的协议,只是没有记录在案。 这是合乎逻辑的,第二种犯罪通常发生在应对第一种犯罪的人身上。 但是本文中没有考虑这些站点,也没有尝试在统计上更准确地评估结果,因为即使是严格的方法也可以让您看到共产主义者的胜利,而统计估计数虽然会增加共产主义者的分离度,但考虑到它们的概率性质,因此难以令人信服。

协议如何在CEO中重写和编辑
通过观察者协议与CEO中协议的差异来检测协议重写。



编辑可以简单地在CEO中看到2个版本,编号不同。

有趣的是,候选人的百分比是根据该协议最新版本中的选民人数计算得出的

候选人百分百满意的网站
从最终数据还可以看出,有8个小地块,伊先科的得分为100%,塔拉森科的得分为45,塔拉申科的得分为100%,其中42个是船舶,3个是乌苏里斯克附近的村庄。

具有100%候选人结果的网站:共产主义者获得122票,联合俄罗斯党获得1874票。 “单人游戏”

统计问题已记录在案
绝对所有可疑统计的站点(最近2个小时的投票率数据都不可信)随后被记录在案; 在文件的帮助下,还找到了其他几个站点。 通过统计方法检测伪造品时,没有一个假阳性结果。 的确,根据PEC 2809,该文件不是协议本身,而是关于拒绝发布协议的声明。

调查中


我对上述伪造方法(重写协议和在CEO中进行编辑)中的每一种方法都不足以单独赢得胜利的事实感到兴趣。 我想知道这些方法是同时还是相继应用的 。 进一步的文本专门用于对此问题的详细研究。

实际上,想法是这样的-有一组整数数据(民意测验中候选人的票数)及其小计(来自CEC信息面板的数据)。 通过对所有选项的简单组合搜索,就可以准确地找出在什么时候输入或更改了哪些区域。 例如,引入了1个协议,共产主义者的票数增加了X,联合俄罗斯的票数增加了-由Y。我们对所有协议进行了排序,寻找在哪里我们有1个协议,其中X代表共产主义者,Y代表统一俄罗斯。 当然,仅对协议的最终编号进行排序是不够的,我们找不到4个协议,该协议会使共产主义者的选票减少5个,因此您需要查看CEO中所有协议的版本,因为 他们被编辑。

SAT任务说明


我们需要提供包含详细数据,4个中间变量和数十个布尔变量的极端值,这些条件需要选择。 这是一个典型的SAT任务 ,唐纳德·克努斯(Donald Knuth) 在上世纪最好的专着之一中写道:
SAT问题显然是一个杀手级应用,因为它是解决许多其他问题的关键

协议输入阶段


我会立即提出保留,我们将暂时划出符拉迪沃斯托克(Vladivostok)苏维埃区的13个部分,后来宣布选举无效。 这些投票站没有参与投票计数,选举结果的显示停留在引入的1,550个协议中的1537个,我们将考虑使用它们。 因此,在凌晨4点(我们的分析起点),仍然需要输入53个部分,并且分批介绍了它们:首先是33个协议,然后是14、4、1和1。 为了方便起见,我们将提供这些控制点名称。 可以将相同的名称称为控制点之后的阶段: 沉默 (33项协议,直到凌晨4点), 准备 (14), 奇妙 (4), 杀死 (1)和最终 (1)。



边界条件:已知在协议的所有版本中,第一个版本和最后一个版本分别为95.74%和99.16%。 众所周知,在19个更改的协议中,有16个已添加到GAS中,达到了95.74%( ),在最新更改中添加了3个( )。 中间点的投票总数也是已知的。 每个点的处理百分比为95.74%的数据将由r 9574表示。

我们将在最后阶段引入或更改的所有协议分为3个数组: oldnewcommon 。 在GAS中编辑的19个协议有16 个旧协议(在隐藏阶段之前添加,然后在隐藏阶段进行编辑)和3个新协议 (在该点之后贡献了95.74%,并在隐藏阶段进行了编辑)。 对于所有19个人,我们都知道协议中的更改会改变每个候选人的票数,因此我们将这些已知值表示为增加 。 最后一个协议中的数字被称为最后一个 ,在第一个协议中被称为第一个 ,共产主义者Ishchenko的票数索引是com ,而Tarasenko的票数是er 。 在协议最后阶段添加的其余50个协议组成了公共数组。

布尔变量


对于协议版本,我们定义了19个变量v_%d_%s ,其中%d是从0到18的数字,前16个是用于旧协议的版本,后三个是用于引入然后更改的, %s是我们考虑版本的阶段,并且第一个版本为True,被取代为False。

对于系统中存在协议的情况,我们定义了布尔变量a_%d_%s ,其中%d是从0到52的数字,前3个变量指的是在隐藏阶段添加到GAS,然后进行更改的协议,其余50个则是只是在隐藏阶段添加了这些内容,而在CEO中并没有改变(但是,其中14个协议由委员会重写)。 如果协议位于系统中指定的%s阶段,则将这些变量设置为True,否则设置为False-如果尚未设置。


在隐藏阶段编辑并输入的列表的交集方案

SAT任务解决方案


由于在最后阶段添加的协议数量很少,因此从最终状态到最终状态解决SAT问题非常方便。 例如,对于最后一个阶段,中间点99.10%的SAT条件如下:

$ r_ {9916} ^ {com} = r_ {9910} ^ {com} + \ Sigma_ {i = 0} ^ {18}(v ^ {kill} _i?gain_i ^ {com}:0)+ \ Sigma_ { i = 0} ^ {52}(a ^ {kill} _i?0:first_i ^ {com})$


$ r_ {9916} ^ {er} = r_ {9910} ^ {er} + \ Sigma_ {i = 0} ^ {18}(v ^ {kill} _i?gain_i ^ {er}:0)+ \ Sigma_ { i = 0} ^ {52}(a ^ {kill} _i?0:first_i ^ {er})$



每个阶段仅更改1个协议的条件是最终版本时False版本数量= 1的条件。

$ \ Sigma_ {i = 0} ^ {52}(a ^ {final} _i?0:1)= 1 $



我们还设置了不能``退还''协议的条件,即不引入在下一阶段的某个阶段输入的协议,并且设置了以下条件:如果输入协议的第二个版本,则不能以相同的方式删除该协议,而留下第一个版本。 那时它们是在GAS版本中制成的,因此可以以记录的方式更改错误的数据,而不删除它们。

$ \ forall i \在[0; 53)a ^ {final} _i \ geq a ^ {kill} _i $


$ \ forall j \在[0; 19)v ^ {最终} _j \ leq v ^ {kill} _j $



我们将数学符号转换为可与z3一起使用的python代码,结果类似:

python代码的一部分
# constraints on communist's or zhulik's votes
def findVariants(s, aim, cnt, suffix):
    s.add((r9916['com'] - aim['com'] == \
      Sum([If(Bool('v_%d_%s' % (i, suffix)), rewritten_pecs[i]['increase']['com'], 0) for i in range(19)]) + \
      Sum([If(Bool('a_%d_%s' % (k, suffix)), 0, approved_pecs[k]['first']['com']) for k in range(53)])))

    s.add((r9916['er'] - aim['er'] == \
      Sum([If(Bool('v_%d_%s' % (i, suffix)), rewritten_pecs[i]['increase']['er'], 0) for i in range(19)]) + \
      Sum([If(Bool('a_%d_%s' % (k, suffix)), 0, approved_pecs[k]['first']['er']) for k in range(53)])))



, -, final, kill, fantastic, prepare. - , . , . python- Colab- .

, final


Colab :

 final  get_models final max=10
 final 1. solution found:
 final  enabled: 648 with 0 of fake paper
 final  changed:  delta increased by 0 (0 protocols)

SAT- , , , 648. , .

, kill


SAT- 4 .

 final  get_models final max=10
 final 1. solution found:
 final  enabled: 648 with 0 of fake paper
 final  changed:  delta increased by 0(0 protocols)
 final  --- dive deeper to kill  --- at 2019-03-13 13:56:40.543990
   kill  get_models kill max=10
   kill 1. solution found:
   kill  enabled: P2829 with 1 of fake paper
   kill  changed: 303, 304, 318, 328, 2812, 2826 delta increased by 3751(6 protocols)
   kill 2. solution found:
   kill  enabled: P2829 with 1 of fake paper
   kill  changed: 303, 304, 318, 328, 347, 354, 2812 delta increased by 3751(7 protocols)
   kill 3. solution found:
   kill  enabled: P2829 with 1 of fake paper
   kill  changed: 304, 318, 328, 347, 2812, 2826 delta increased by 3751(6 protocols)
   kill 4. solution found:
   kill  enabled: P2829 with 1 of fake paper
   kill  changed: 304, 318, 328, 354, 2812, 2826 delta increased by 3751(6 protocols)
   kill  end kill at 2019-03-13 13:56:42.284371
 final  end final at 2019-03-13 13:56:42.415697


, 2829, : 291 , 1184 , 1475 . , 6 . 304, 318, 328, 2812 4 2 3 : (347, 2826) | (303, 2826) | (354, 2826) | (303, 347, 354).

3751 , 5226 . , , … 99.10% . , . , 7 , .

, fantastic four


4 fantastic four , . SAT- . 7 14 ( 4+4+2+4 ).

: 14 , 4 kill
 final  get_models final max=10
 final 1. solution found:
 final  enabled: 648 with 0 of fake paper
 final  changed:  delta increased by 0(0 protocols)
 final  --- dive deeper to kill  --- at 2019-03-13 13:56:42.669368
   kill  get_models kill max=10
   kill 1. solution found:
   kill  enabled: P2829 with 1 of fake paper
   kill  changed: 303, 304, 318, 328, 347, 354, 2812 delta increased by 3751(7 protocols)
   kill  --- dive deeper to fantastic  --- at 2019-03-13 13:56:43.153626
       fantastic  get_models fantastic max=10
       fantastic 1. solution found:
       fantastic  enabled: 2802, P2828, 2840, 2866 with 1 of fake paper
       fantastic  changed: 2801, 2805, 2818, 2820, 2826, 2834, 2844, 2850, 2854, 2856, 2863, 2867 delta increased by 12097(12 protocols)
       fantastic 2. solution found:
       fantastic  enabled: 1912, 1916, P2838, P2847 with 2 of fake paper
       fantastic  changed: 2801, 2820, 2826, 2834, 2844, 2850, 2854, 2856, 2863, 2867 delta increased by 10707(10 protocols)
       fantastic  end fantastic at 2019-03-13 14:47:16.016131
   kill 2. solution found:
   kill  enabled: P2829 with 1 of fake paper
   kill  changed: 304, 318, 328, 347, 2812, 2826 delta increased by 3751(6 protocols)
   kill  --- dive deeper to fantastic  --- at 2019-03-13 14:47:24.146367
       fantastic  get_models fantastic max=10
       fantastic 1. solution found:
       fantastic  enabled: 1917, 1932, 2812, P2819 with 1 of fake paper
       fantastic  changed: 303, 2801, 2805, 2818, 2820, 2834, 2844, 2850, 2854, 2856, 2863, 2867 delta increased by 11597(12 protocols)
       fantastic 2. solution found:
       fantastic  enabled: 2802, P2828, 2840, 2866 with 1 of fake paper
       fantastic  changed: 303, 354, 2801, 2805, 2818, 2820, 2834, 2844, 2850, 2854, 2856, 2863, 2867 delta increased by 12097(13 protocols)
       fantastic 3. solution found:
       fantastic  enabled: 1912, 1916, P2838, P2847 with 2 of fake paper
       fantastic  changed: 303, 354, 2801, 2820, 2834, 2844, 2850, 2854, 2856, 2863, 2867 delta increased by 10707(11 protocols)
       fantastic 4. solution found:
       fantastic  enabled: 1917, 1932, 2812, P2819 with 1 of fake paper
       fantastic  changed: 354, 2801, 2805, 2818, 2820, 2834, 2844, 2850, 2854, 2856, 2863, 2867 delta increased by 11597(12 protocols)
       fantastic  end fantastic at 2019-03-13 16:06:58.112487
   kill 3. solution found:
   kill  enabled: P2829 with 1 of fake paper
   kill  changed: 303, 304, 318, 328, 2812, 2826 delta increased by 3751(6 protocols)
   kill  --- dive deeper to fantastic  --- at 2019-03-13 16:06:59.007196
       fantastic  get_models fantastic max=10
       fantastic 1. solution found:
       fantastic  enabled: 1912, 1916, P2838, P2847 with 2 of fake paper
       fantastic  changed: 347, 354, 2801, 2820, 2834, 2844, 2850, 2854, 2856, 2863, 2867 delta increased by 10707(11 protocols)
       fantastic 2. solution found:
       fantastic  enabled: 1917, 1932, 2812, P2819 with 1 of fake paper
       fantastic  changed: 354, 2801, 2805, 2818, 2820, 2834, 2844, 2850, 2854, 2856, 2863, 2867 delta increased by 11597(12 protocols)
       fantastic 3. solution found:
       fantastic  enabled: 1917, 1932, 2812, P2819 with 1 of fake paper
       fantastic  changed: 347, 2801, 2805, 2818, 2820, 2834, 2844, 2850, 2854, 2856, 2863, 2867 delta increased by 11597(12 protocols)
       fantastic 4. solution found:
       fantastic  enabled: 2802, P2828, 2840, 2866 with 1 of fake paper
       fantastic  changed: 347, 354, 2801, 2805, 2818, 2820, 2834, 2844, 2850, 2854, 2856, 2863, 2867 delta increased by 12097(13 protocols)
       fantastic  end fantastic at 2019-03-13 16:55:17.161744
   kill 4. solution found:
   kill  enabled: P2829 with 1 of fake paper
   kill  changed: 304, 318, 328, 354, 2812, 2826 delta increased by 3751(6 protocols)
   kill  --- dive deeper to fantastic  --- at 2019-03-13 16:55:18.475100
       fantastic  get_models fantastic max=10
       fantastic 1. solution found:
       fantastic  enabled: 1917, 1932, 2812, P2819 with 1 of fake paper
       fantastic  changed: 303, 2801, 2805, 2818, 2820, 2834, 2844, 2850, 2854, 2856, 2863, 2867 delta increased by 11597(12 protocols)
       fantastic 2. solution found:
       fantastic  enabled: 1912, 1916, P2838, P2847 with 2 of fake paper
       fantastic  changed: 303, 347, 2801, 2820, 2834, 2844, 2850, 2854, 2856, 2863, 2867 delta increased by 10707(11 protocols)
       fantastic 3. solution found:
       fantastic  enabled: 1917, 1932, 2812, P2819 with 1 of fake paper
       fantastic  changed: 347, 2801, 2805, 2818, 2820, 2834, 2844, 2850, 2854, 2856, 2863, 2867 delta increased by 11597(12 protocols)
       fantastic 4. solution found:
       fantastic  enabled: 2802, P2828, 2840, 2866 with 1 of fake paper
       fantastic  changed: 303, 347, 2801, 2805, 2818, 2820, 2834, 2844, 2850, 2854, 2856, 2863, 2867 delta increased by 12097(13 protocols)
       fantastic  end fantastic at 2019-03-13 17:58:13.976612
   kill  end kill at 2019-03-13 17:58:17.370820
 final  end final at 2019-03-13 17:58:17.511852
Changed before fantastic stage 0 []
Enabled before fantastic stage 39 ['2856', '2863', '201', '202', '204', '205', '206', '207', '208', '209', '211', '212', '213', '214', '216', '217', '218', '219', '220', '221', '222', 'P1904', 'P1915', '1918', '1919', 'P1923', 'P1944', '1947', '1961', 'P1966', 'P1968', '2809', '2813', '2823', 'P2846', '2849', 'P2858', '2859', 'P2862']


:

: (1917, 1932, 2812, P2819) (2802, P2828, 2840, 2866) (1912, 1916, P2838, P2847), 1 2 .
: 2801, 2820, 2834, 2844, 2850, 2854, 2856, 2863, 2867 14 1-4 . 10 ( 10 13). 3 , , 6 17 19 ( 19 ), 3 6 2 3 ( 18 ).

47 , silence prepare


, , , ( ), .

14 47 14 fantastic . ~11 , 3 , . 3 4 , 2 4 . multiprocessing.Pool 1 , 14 14 fantastic 1 prepare, . prepare , silence , 47 14, 33 , silence. , 47 , , .


, , , , . — . — .




1. —


, — 47 0 2 11 12 (.. final+kill+fantastic 2 3, 16). , 07:03 (98.77% ) (13-14 16), , 6 , (17-19 19).




, . , , , .

2.


, , , , , . 13 , 99.16% ( ).


, plot.ly

, 3 . ( fantastic) 3 , 51.22% 51.28%, . , , .



,
19 2 , , , , 53*2^19 , 28 . ( ), , , 52*2^19 , 27. ,

$C^{4}_{51} \cdot (2^{12} + 2^{13} + 2^{13} + 2^{13}) = C^{4}_{51} \cdot 2^{12} \cdot 7 = \frac{51! \cdot 2^{12}}{4! (51-4)!} \cdot 7 \approx 7 \space  $



— 14 47; 14 . , 11 :

$C^{14}_{47} \cdot 32 = \frac{47!}{14! (47-14)!} \cdot 32 \approx 11 \space $




, , , , 19 , , . , 47 . — 19 , . , .

13


13 04:30 , . , , , . . . , . 4:30 13 (, 813), «». , , 13 , .


, , — 13 , . ( ) 13 ( 404). , , .


  1. , 3 . ( , 13 ), ( ), , izbirkom.ru.
  2. 4 , , : 2801, 2820, 2834, 2844, 2850, 2854, 2856, 2863, 2867 1-4 , 4 1 2 . , 4 , 5 ( ).
  3. 2829 .
  4. 6 7 , 304, 318, 328, 2812 2 3 .
  5. 648. .
  6. 98.77% (.. , 6 ) 15 18 2 .
  7. 6 17 , , — . , , .
  8. 51% 46%


  1. ().
  2. , 53 (3.5%) .

— , , - , , 54 (48 , 4 , 1 , 1 ) . .


, , , , . «», 2-3 , , .

, , , , , :) , .

,
kireev.livejournal.com
97.87% 04:10 newdaynews.ru
98.77% 07:03
99.03% 07:07
99.10% 07:14 Meduza, The Insider — 07:20.
99.16% 12:05 , 12:05 99.16%, .
@RuElectionData, , , , 53 , , .
2801 2805 2812 2818 2820 2834 2844 2850 2863 2867 .
318 328 1915 1923 1926 1944 1966 2801 2805 2812 2818 2819 2820 2826 2828 2829 2834 2838 2844 2845 2846 2847 2850 2858 2862 2863 2867 — .


P.S. , , , 3801 540 0 , 2809, 2823, , , .
P.P.S. . , .

UPD. , , , . , , %76ersion- . , version , %76ersion .

UPD2. , 404. , !


, - :

  • , .
  • ( ).
  • , , «» ( ) .

, : |


Source: https://habr.com/ru/post/zh-CN440092/


All Articles