% solving Sudoku using CVX
% loading data
X = [5 3 0 0 7 0 0 0 0
6 0 0 1 9 5 0 0 0
0 9 8 0 0 0 0 6 0
8 0 0 0 6 0 0 0 3
4 0 0 8 0 3 0 0 1
7 0 0 0 2 0 0 0 6
0 6 0 0 0 0 2 8 0
0 0 0 4 1 9 0 0 5
0 0 0 0 8 0 0 7 9];
% CVX solution
cvx_begin quiet
variable cube(9, 9, 9);
minimize ( sum(sum(sum(abs(cube)))) );
subject to
% if X(i, j) == k, then constrain c(i, j, k) == 1, otherwise 0
for i = 1 : 9
for j = 1 : 9
if X(i,j) ~= 0
cube(i, j, X(i,j)) == 1;
end
end
end
% constrain number 1-9 appears only one time in each row and colume
sum(cube, 1) == 1;
sum(cube, 2) == 1;
sum(cube, 3) == 1;
% 1 - 9 appears only one time in each 3*3 square
for i = 1 : 3
for j = 1 : 3
for k = 1 : 9
sum(sum(cube((i-1)*3+(1:3), (j-1)*3+(1:3), k))) == 1;
end
end
end
cvx_end
% converting Cube to Result
Result = zeros(9, 9);
for i = 1 : 9
Result = Result + i*cube(:,:,i);
end
display(uint8(Result));
没有合适的资源?快使用搜索试试~ 我知道了~
Sudoku.rar_CVX_MATLAB数独_数独_数独求解
共1个文件
m:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 158 浏览量
2022-07-14
14:24:57
上传
评论
收藏 586B RAR 举报
温馨提示
数独求解算法,使用CVX软件包采用优化的方法求解一个数独。
资源推荐
资源详情
资源评论
收起资源包目录
Sudoku.rar (1个子文件)
Sudoku.m 1KB
共 1 条
- 1
资源评论
刘良运
- 粉丝: 66
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功