稀疏优化算法求解

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
稀疏优化算法求解数独
什么是数独
数独(Sudoku,也叫九宫格,如下图)是 一种数字游戏,在格的大九宫格中有9个格 的小九宫格,并提供一定数量的数字。根 据这些数字,利用逻辑和推理,在其它的 空格上填入1到9的数字。每个数字在每个 小九宫格内只能出现一次,每个数字在每 行、每列也只能出现一次。
传统数独求解算法
(1)
其中row,col,box分别表示每行、每列、每 个小九宫格只出现一次数字1-9。
• 实数编码 由于问题(1)也是一个整数规划问题,求解困难, 因此采用一种编码方法,将x放宽到实数域,然后去 除整数约束。
所要的编码方法,将原来的整数编码中的每一个 xij 用 9 个 0-1 之间的实数 xijk (k=1,2,,9)表示
I99 I99 I99 0954 I99 I99 I99 0954 I99 I99 I99 09540 x 191
• 第2个小九宫格:
0927 I99 I99 I99 09270927 I99 I99 I99 0927 0927 I99 I99 I99 09513 x
min 1
rowi ( x) 1, 2, ,9 , coli ( x) 1, 2, ,9 , st. boxi ( x) 1, 2, ,9 , Cluei ( x) Cluei , x 1, 2, ,9 , ij
Aeq x beq .
其中在约束条件中可以让x在实数范围内取 值,而且依照上述所表达的式子中可以知道 此约束是线性的。这时矩阵的行数为324+, 表示已知数独提示的数字数目,而的维数为 729,因此上述方程显然是一个欠定方程组。
• 稀疏优化
Min
x
0
s.t.
Aeq x beq .
xij
xij
191
• 第3个小九宫格:
0954 I99 I99 I99 0954 I99 I99 I99 0954 I99 I99 I99 09486 x
191
• 填充约束条件(每一个格子中的数必须是19之间的数,以第一行第一列的格子为列)
1 10 0 x 1 720 9
1 2 3 4 5
100000000 0.50.500000000 0.50.40.100000000 0.50.30.10.100000000 0.50.20.10.10.100000000
0
已知提示数目34
芬兰数学家设计的世界“最难”数独。
• 作业: 1. 编程得到关于数独求解的线性方程组 2. 将问题1的数独形式推广到任意阶的情形, 如16*16, 25*25等.
I 99 0972 I99 0972 x 191 9
• 第2列可以写为:
099 I99 0963 099 I99 0963 x 191 9
• 小九宫格约束条件(以左上角的小九宫格开 始编号,编号为1,第一行小九宫格从左到右 编号,再到第二行小九宫格,再到第三行小 九宫格,右下角的小九宫格编号为9)
xij I ( xij k ),
xij k ( xijk max( xijk )).
k
(2) (3)
上述式中 I( )是指示函数,等式成立时为 1,不成立是为 0.
图2 实数编码
• 约束条件 依据上述的实数编码方法去除整数约束,同 时转换成为一个线性方程组。下面我们分别 描述行、列等所要满足的约束条件。
关于数独的求解方法有暴力破解法、约束规划、 比较排除法等,比较排除法是一系列直观的求解方 法。(能否更加具体点说明比较排除法)暴力破解 (Brute-Force)法,缺陷就是需要大量的时间和 内存;而约束规划是通过设置一个目标函数与约束 函数,采用分支定界法求解,由于它本质上为一个 NP-C问题,所以需要的时间较多,而且对初值的 选取很敏感,相对约束规划求解方法的一种改进方 法是采用随机搜索或智能优化,随机生成解,然后 计算误差,通过不断迭代使得误差为0,这种方法 比前面的稍快,但同样需要大量的时间,而且性能 不稳定。
• 提示数字约束条件 依据已经给出的提出数字可以得出相应的约 束条件: 第1行,第3列的提示数字8:
0 0 000000010 0 0 x 1 702 18
• 第1行,第4列的提示数字3:
0 0 0010 0 x 1 699 27
• 百度文库约束条件 第1行可以写为:
I 99 I 99 I99 09648 x 191 9
第2行可以写为:
0981 I99 I99 I99 09567 x 191 9
• 列约束条件 第1列可以写为:
基于稀疏优化算法的数独求解
基本思想是通过将数独的填字数字1-9映射 为只含有0和1的向量,对数独所要满足的 求解条件,建立相应的线性方程。这时, 数独的求解问题就转化为求解线性方程的 最大稀疏解问题,即所谓的0-范数问题。0范数问题由于近年来压缩感知理论的盛行, 得到极大的关注。
• 基本思想和原理 给出一个数独,假设解为x,则依据数独的约 束条件可得一约束规划问题:
则第 i 行,第 j 列的提示数字 n( i, j , n 1, 2, ,9 ) : 设 m=81(i-1)+9(j-1)+n-1
0 010 0 x 1 720 m m
• 因此所有的约束条件转换成一个线性方程组 简单的可以表示为:
相关文档
最新文档