本文借助于量子算法对2013年全国大学生数学建模竞赛B题的两种碎纸片(纵切和纵横切)的拼接方法进行新的探究。运用MATLAB软件,设计出了可以快速准确地将碎纸片进行复原的量子算法程序。在第一问仅有纵切的情况下,将原问题转化为旅行商问题,并借助量子蚁群算法并进行求解。在第二问中利用改进的量子聚类算法,较完美的完成了拼接任务,极大地降低了算法的时间复杂度和拼接的错误率。 With the help of quantum computing method, this paper makes a new research on the splicing method of two kinds of shreded paper (longitudinal and transverse) of problem B in the 2013 National College Students’ mathematical modeling competition. We use MATLAB software to design a program that can quickly and accurately restore the broken pieces of paper. In the case of the first question, which is only vertical, we transform the original question into a traveling salesman problem and design a quantum ant colony algorithm to solve it. In the second question, the improved quantum clustering algorithm is used to complete the splicing task perfectly, which greatly reduces the time complexity of the algorithm and the error rate of stitching.
本文借助于量子算法对2013年全国大学生数学建模竞赛B题的两种碎纸片(纵切和纵横切)的拼接方法进行新的探究。运用MATLAB软件,设计出了可以快速准确地将碎纸片进行复原的量子算法程序。在第一问仅有纵切的情况下,将原问题转化为旅行商问题,并借助量子蚁群算法并进行求解。在第二问中利用改进的量子聚类算法,较完美的完成了拼接任务,极大地降低了算法的时间复杂度和拼接的错误率。
量子蚁群算法,量子聚类算法,碎纸片拼接,旅行商问题
Yanchao Wang, Xinlei Liu, Lianglong Wu, Xiaodong Liu, Xingkui Fan*
College of Science, Qingdao University of Technology, Qingdao Shandong
Received: Aug. 6th, 2021; accepted: Aug. 31st, 2021; published: Sep. 8th, 2021
With the help of quantum computing method, this paper makes a new research on the splicing method of two kinds of shreded paper (longitudinal and transverse) of problem B in the 2013 National College Students’ mathematical modeling competition. We use MATLAB software to design a program that can quickly and accurately restore the broken pieces of paper. In the case of the first question, which is only vertical, we transform the original question into a traveling salesman problem and design a quantum ant colony algorithm to solve it. In the second question, the improved quantum clustering algorithm is used to complete the splicing task perfectly, which greatly reduces the time complexity of the algorithm and the error rate of stitching.
Keywords:Quantum Ant Colony Algorithms, Quantum Clustering Algorithms, Shredded Paper Splicing, Travelling Salesman Problem
Copyright © 2021 by author(s) and beplay安卓登录
This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).
http://creativecommons.org/licenses/by/4.0/
破碎文件及图像的自动拼接复原在物证复原、文献修复等领域有很多的应用,当碎片的数量很少时,可以采用手工拼接的方法完成。但是当碎纸的数量非常大时,如果仍然依靠手工完成,可能会耗费大量的时间、人力、物力,不但会对物证造成一定的损坏,有时还会错过最佳时机,例如在破案中如不及时拼接复原会耽误破案进度。很多国家已经对破碎文件的自动修复技术进行了大量的研究。因此,把计算机视觉和模式识别与碎片复原结合起来进行研究意义重大。然而在国内,针对这方面的研究还是比较少的。图像的拼接复原技术是一个新兴课题,具有很大的实用价值。运用先进的计算机技术作为工具,借助计算机高速运算这一优点,将极大减少复原所需时间,提高正确率。本文主要研究了规则的碎纸机破碎纸片的拼接方法,我们分别针对单面仅纵切和既纵切又横切规则碎片进行了拼接研究,并借助于量子算法找到了可行的拼接方案。
量子算法与经典算法最大的区别在于它能够凭借量子计算的一些特性(例如:量子并行性)来实现指数级加速。本文中,采用量子态来表示输入信息和输出信息,通过查询量子随机存取存储器来获取我们需要的纠缠量子,算法的核心思想是利用量子态的相干性,使客观所需的结果増强,同时使非所需的结果减弱。这样在测量的时候客观所需的结果会以相当高的概率出现。
借用MATLAB中的imread函数先将图片数据导入MATLAB软件并进行读取。实验发现,使用经过二值化处理的数据与没处理过的数据相比复原率要高,因此,我们将数据进行二值化处理,即将图片上的灰度值置为0和255,使图片仅显现黑白两种颜色 [
求解所有图片的排列顺序,其实是一个最优化问题,于是我们将碎纸片拼接问题转化为经典的旅行商问题来进行处理 [
旅行商问题是经典的组合优化中的一个NP难题,可以将它描述为:一个旅行商从指定的一个城市出发,游玩所有城市并且每个城市只能游玩一次,每个城市之间的距离是不同的,求旅行商游玩路线的最短距离。现在国内外学者提出了多种方法来解决这一问题,比如遗传算法,蚁群算法等,本文将在前人的基础上介绍一种改进的量子蚁群算法来求碎纸片拼接问题的最优解。
碎纸片之间的距离定义为 I = a a + b + c ,a为两个向量1-1配对的总数,b为两个向量不配对的总数,
c为两个向量0-0配对的总数。
将每个碎纸片看作一座城市,定义城市之间的距离D为:一条碎纸片右侧和另一条碎纸片左侧的距离。通过计算所有城市之间的距离,可以得到相关的距离矩阵(值得注意的是,城市A到城市B的距离与城市B到城市A的距离是不同的,因为它们顺序相反时对应的是碎纸片不同侧的距离)。由于文档最左侧和文档最右侧的碎纸条都为空白,所以可以形成一个哈密顿圈,由此转化为求最优解的旅行商问题。
解决旅行商问题的算法主要有神经网络算法、模拟退火算法和遗传算法等,但为了提高运算的速度和准确性,这里我们介绍一种量子蚁群算法 [
蚁群算法是由意大利学者Dorigo、Maniezzo等人于20世纪90年代提出的 [
由于量子算法具有并行性,在运算时会大大提高运算速度,下文将用量子思想对蚁群算法进行改进。我们认为蚂蚁释放的信息素是在蚂蚁当前位置留下的,蚂蚁的位置由一组量子比特的概率幅表示,蚂蚁的移动用量子旋转门实现,同时引入量子变异操作 [
X m = ( cos φ m 1 cos φ m 2 cos φ m 3 ⋯ cos φ m n sin φ m 2 sin φ m 2 sin φ m 3 ⋯ sin φ m n ) ,则蚂蚁占据的位置分别为 P m x = ( cos φ m 1 , ⋯ , cos φ m n ) 和
P m y = ( sin φ m 1 , ⋯ , sin φ m n ) [
设蚂蚁在r处的信息素为f(r),初始时全部设置为零,可见度g(r)我们用信息的可检测性来表示,即定义为实际检测强度与原有信息素强度的比值。
(1) 定义蚂蚁m由 r s 到 r t 位置的移动规则为
r t = { arg max { [ f ( r s ) ] α [ f ( r t ) ] β } ( r s ∈ R ) q ≤ q 0 r ′ s q > q 0
这里q为介于0到1之间的随机数, q 0 为0到1之间的一个常数,R为蚂蚁位置的集合, r ′ s 为目标位置。
P ( r s ) = [ f ( r s ) ] α [ f ( r t ) ] β ∑ r s , r t ∈ R [ f ( r s ) ] α [ f ( r t ) ] β
其中 α 和 β 代表着信息素强度和它的可检测性对移动的影响比重,可由实际情况定义。
(2) 接下来我们用量子旋转门来改变量子比特的相位,从而实现蚂蚁位置的改变。蚂蚁的量子比特为
X r = ( cos φ r 1 cos φ r 2 cos φ r 3 ⋯ cos φ r n sin φ r 2 sin φ r 2 sin φ r 3 ⋯ sin φ r n )
X s = ( cos φ s 1 cos φ s 2 cos φ s 3 ⋯ cos φ s n sin φ s 1 sin φ s 2 sin φ s 3 ⋯ sin φ s n )
量子旋转门转角的大小其实是十分重要的,我们要尽可能使 X r 旋转后趋近于 X s 。这里我们取0.001π到0.05π之间。记
A i = | cos φ r i cos φ s i sin φ r i sin φ s i |
转角由下式确定:
Δ θ i = − sgn ( A i ) θ 0 e − t
其中 θ 0 为迭代初值,t为优化步数,对蚂蚁进行量子旋转门操作后,蚂蚁移动到 r t 位置。
(3) 为了使蚂蚁有新的空间位置,我们用量子非门对蚂蚁进行变异处理,方法如下
[ 0 1 1 0 ] [ α s i β s i ] = [ β s i α s i ]
(4) 设蚂蚁的前一个位置为 r q ,当前位置为 r s ,移动后的位置为 r t ,可得出更新规则为
f ( r t ) = f ( r s ) + sgn ( Δ f i t ) × | Δ f i t | α
Δ f i t = f i t ( r t ) − f i t ( r s )
g ( r t ) = g ( r s ) + sgn ( Δ ∂ f i t ) × | Δ ∂ f i t | α
Δ ∂ f i t = max 1 ≤ i ≤ n ∂ f i t ∂ r t i − max 1 ≤ i ≤ n ∂ f i t ∂ r s i
f i t 为适应度函数,定义为 f i t ( x ) = A max − f ( x ) ,其中 A max 可为输入的恰当值,也可以为优化过程的最大数值。
当所有蚂蚁进行一次循环后,按照下面的公式更新信息素
f ( r u ) = { ( 1 − ρ ) f r u + ρ f i t ( r u ) r u = r ′ ( 1 − ρ ) f r u r u ≠ r ′
其中, ( 1 − ρ ) 为信息素挥发系数,大小在0到1之间, r ′ 为最优解。
(5) 算法实现步骤
步骤1:将每一只蚂蚁的信息素强度和可见度进行初始化,赋以相同的值。变异概率设为 p n ,
最大迭代次数为Max,当前迭代次数为0,随机生成初始群体为
p i = ( cos φ i 1 cos φ i 2 cos φ i 3 ⋯ cos φ i n sin φ i 1 sin φ i 2 sin φ i 3 ⋯ sin φ i n )
其中 φ i j = 2 π × q , i = 1 , 2 , 3 , ⋯ , m ; j = 1 , 2 , 3 , ⋯ , n ;m是种群规模,n是量子位数。
步骤2:对种群中的每个蚂蚁按其移动规则和转移概率用量子旋转门进行移动,随机选取蚂蚁用量子非门进行变异操作。
步骤3:按照更新规则对信息素强度和可见度进行更新。
步骤4:迭代次数加一,当t < Max时,重复b;当t > Max时,输出结果。
借用量子改进蚁群算法,按照以上步骤编写算法程序,并在计算机上进行仿真运算。结果显示:成功拼接了碎纸片,完美地还原了原图片,且无需人工干预,得到了碎纸片的拼接序列(如表1所示)。
碎纸片编号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
排列序列 | 9 | 15 | 13 | 16 | 4 | 11 | 3 | 17 | 2 | 5 | 6 | 10 | 14 | 19 | 12 | 8 | 18 | 1 | 7 |
表1. 附件1结果顺序表
还原结果图:(如图1所示)。
图1. 附件一还原的图片
量子蚁群算法由于利用了量子并行性,其运算速度得到了很大提高,本例中只有19条碎纸片,当碎纸片数量达到上千上万甚至更大后,量子算法的优越性将会更好的体现。考虑到改进的量子蚁群算法具有运算速度快,正确率高的优点,还可以把该算法运用到其他优化问题的求解中。例如银行在破碎现金的复原中,多数拼接方法因准确率问题大都需要人工辅助完成,而改进的量子蚁群算法经过测试后具有较高的准确性,可直接完成拼接任务。
为了不影响原图片且方便图像处理,我们将原图片转化为二值图像,每个像素点都用0~255之间的一个灰度值表示,每个图片就可以分别表示为一个矩阵。我们首先对碎纸片进行聚类,找到碎纸片所在的行,然后在行内借助于问题一中的方法对碎纸片进行拼接。
设a为文字上方距离上边缘的距离,b为文字最左侧的位置与左边缘的距离,c为文字最下方的位置与下边缘的距离,d为文字最下方与下边缘的距离,如果在边缘检测到了像素点,那就令对应的距离为0,设矩阵 e = [ a , b , c , d ] T 。
首先,把每个样品看作一类,并将每两个样品间的相似性转换为碎纸片的距离。其中 c i j 表示变量i和变量j之间的相关系数,看作类与类之间的距离,然后将距离最近的两类合成新的一类,每次减少一类,重新进行最近种类的合并,直至所有的变量合并成一类。
我们引入一种新型的聚类方法,是在传统的K-means算法基础上改进得来的 [
(1) 数据的量子比特的表示
空间中的任意两个点a和b,可以把点a和b表示成向量,接下来将向量a和b用量子态表示,
a = | a | | a 〉 , b = | b | | b 〉
接下来我们讨论二维情况
| a 〉 = x 1 | 0 〉 + x 2 | 1 〉 , | b 〉 = y 1 | 0 〉 + y 2 | 1 〉
其中 | 0 〉 , | 1 〉 为计算基, | a 〉 、 | b 〉 表示计算后的概率,并且对它们进行了归一化。
(2) 用量子方法,描述碎纸片间的距离,定义两个态之间的距离为:
C = | a − b | = ( | a | 〈 a | − | b | 〈 b | ) ( | a | | a 〉 − | b | | b 〉 )
添加一个辅助量子比特来构建分类点a到聚类中心b的量子纠缠态,并测量这个纠缠态,从而得到概率和欧氏距离的关系。
步骤1:根据最左边碎纸片边距要大的规律选择出最左边的11个碎纸片
E = { ( | b 1 | | b 1 〉 ) 0 , ( | b 2 | | b 2 〉 ) 0 , ⋯ , ( | b n | | b n 〉 ) 0 }
步骤2:对剩余的碎纸片归类到已有的11类中,其中归类方法是按最小距离原则进行,从而使得距离最近的碎纸片被分为一类。
步骤3:更新聚类中心,聚类中点为
( | b i | | b i 〉 ) t + 1 = ∑ j = 1 m i | a j | | a j 〉 m i
其中 m i 表示中点数, a j 为距离元素。
步骤4:若 ( | b i | | b i 〉 ) t + 1 = ( | b i | | b i 〉 ) t ,结束并输出 ∑ j = 1 m i | a j | | a j 〉 ,否则转至步骤2。
这里我们选择初始聚类中心时,没有用K-means算法的传统方法随机选取,而是通过分析数据的特点即页边距得出了初始聚类中心,大大地减少了迭代次数,从而使运算速度和正确率都有了很大程度地提升。
按照上述算法的四个步骤,利用MATLAB软件进行编程,通过详细运算成功的还原了原图像。碎纸片的聚类结果和排列顺序:(如表2所示)。
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 049 | 054 | 065 | 143 | 186 | 002 | 057 | 192 | 178 | 118 | 190 | 095 | 011 | 022 | 129 | 028 | 091 | 188 | 141 |
2 | 061 | 019 | 078 | 067 | 069 | 099 | 162 | 096 | 131 | 079 | 063 | 116 | 163 | 072 | 006 | 177 | 020 | 052 | 036 |
3 | 168 | 100 | 076 | 062 | 042 | 030 | 041 | 023 | 147 | 191 | 050 | 179 | 020 | 086 | 195 | 026 | 001 | 087 | 018 |
4 | 038 | 148 | 046 | 161 | 024 | 035 | 081 | 189 | 122 | 103 | 130 | 193 | 088 | 167 | 025 | 008 | 009 | 105 | 074 |
5 | 071 | 156 | 083 | 132 | 200 | 017 | 080 | 033 | 202 | 198 | 015 | 133 | 170 | 205 | 085 | 152 | 165 | 027 | 060 |
6 | 014 | 128 | 003 | 159 | 082 | 199 | 135 | 012 | 073 | 160 | 203 | 169 | 134 | 039 | 031 | 051 | 107 | 115 | 176 |
7 | 094 | 034 | 084 | 183 | 090 | 047 | 121 | 042 | 124 | 144 | 077 | 112 | 149 | 097 | 136 | 164 | 127 | 058 | 043 |
8 | 125 | 013 | 182 | 109 | 197 | 016 | 184 | 110 | 187 | 066 | 106 | 150 | 021 | 173 | 157 | 181 | 204 | 139 | 145 |
9 | 029 | 064 | 111 | 201 | 005 | 092 | 180 | 048 | 037 | 075 | 055 | 044 | 206 | 010 | 104 | 098 | 172 | 171 | 059 |
10 | 007 | 208 | 138 | 158 | 126 | 068 | 175 | 045 | 174 | 000 | 137 | 053 | 056 | 093 | 153 | 070 | 166 | 032 | 196 |
11 | 089 | 146 | 102 | 154 | 114 | 040 | 151 | 207 | 155 | 140 | 185 | 108 | 117 | 004 | 101 | 113 | 194 | 119 | 123 |
表2. 附件3结果顺序表
还原出的结果图:(如图2所示)。
图2. 附件三还原的结果图
事实证明,改进的量子K-means算法的聚类速度和准确率都得到了大幅提升,多次试验后,需要手工辅助的次数也比传统方法少了很多 [
由于量子算法并行性的特点,相对于传统算法具有运算速度快、准确率高等优势 [
2021年山东省大学生创新训练项目(项目编号202110429213),2020年山东省大学生创新训练项目(项目编号S202010429197)和2020年山东省本科教学改革研究重点课题(项目编号Z2020045)和资助。
王彦超,刘鑫磊,武良隆,刘晓东,范兴奎. 基于量子算法的碎纸片拼接复原问题The Problem of Splicing and Recovery of Pieces of Paper Based on Quantum Algorithm[J]. 应用数学进展, 2021, 10(09): 2988-2995. https://doi.org/10.12677/AAM.2021.109313
https://doi.org/10.12677/AAM.2021.105170
https://doi.org/10.1109/ICNN.1995.488968
https://doi.org/10.13195/j.kzyjc.2020.1302