资源简介
这是最优传输理论(optimal transport theory)实现的工具箱,里面包含了完整的matlab代码。代码绝对可行!!!
代码片段和文件信息
clear all;
clc;
flat = @(x)x(:);
Cols = @(n0n1)sparse( flat(repmat(1:n1 [n0 1])) ...
flat(reshape(1:n0*n1n0n1) ) ...
ones(n0*n11) );
Rows = @(n0n1)sparse( flat(repmat(1:n0 [n1 1])) ...
flat(reshape(1:n0*n1n0n1)‘ ) ...
ones(n0*n11) );
Sigma = @(n0n1)[Rows(n0n1);Cols(n0n1)];
%%
maxit = 1e4; tol = 1e-9;
otransp = @(Cp0p1)reshape( perform_linprog( ...
Sigma(length(p0)length(p1)) ...
[p0(:);p1(:)] C(:) 0 maxit tol) [length(p0) length(p1)] );
%%
n0 = 60;
n1 = 80;
%%
gauss = @(qac)a*randn(2q)+repmat(c(:) [1 q]);
X0 = randn(2n0)*.3;
X1 = [gauss(n1/2.5 [0 1.6]) gauss(n1/4.3 [-1 -1]) gauss(n1/4.3 [1 -1])];
%%
normalize = @(a)a/sum(a(:));
p0 = normalize(rand(n01));
p1 = normalize(rand(n11));
%%
myplot = @(xymscol)plot(xy ‘o‘ ‘MarkerSize‘ ms ‘MarkerEdgeColor‘ ‘k‘ ‘MarkerFaceColor‘ col ‘LineWidth‘ 2);
%%
clf; hold on;
for i=1:length(p0)
myplot(X0(1i) X0(2i) p0(i)*length(p0)*10 ‘b‘);
end
for i=1:length(p1)
myplot(X1(1i) X1(2i) p1(i)*length(p1)*10 ‘r‘);
end
axis([min(X1(1:)) max(X1(1:)) min(X1(2:)) max(X1(2:))]); axis off;
%%
C = repmat( sum(X0.^2)‘ [1 n1] ) + ...
repmat( sum(X1.^2) [n0 1] ) - 2*X0‘*X1;
%%
gamma = otransp(Cp0p1);
%%
fprintf(‘Number of non-zero: %d (n0+n1-1=%d)\n‘ full(sum(gamma(:)~=0)) n0+n1-1);
%%
fprintf(‘Constraints deviation (should be 0): %.2e %.2e.\n‘ norm(sum(gamma2)-p0(:)) norm(sum(gamma1)‘-p1(:)));
%%
[IJgammaij] = find(gamma);
%%
clf;
tlist = linspace(016);
for i=1:length(tlist)
t=tlist(i);
Xt = (1-t)*X0(:I) + t*X1(:J);
subplot(23i);
hold on;
for i=1:length(gammaij)
myplot(Xt(1i) Xt(2i) gammaij(i)*length(gammaij)*6 [t 0 1-t]);
end
title([‘t=‘ num2str(t2)]);
axis([min(X1(1:)) max(X1(1:)) min(X1(2:)) max(X1(2:))]); axis off;
end
%%
n0 = 40;
n1 = n0;
%%
X0 = randn(2n0)*.3;
X1 = [gauss(n1/2.5 [0 1.6]) gauss(n1/4.3 [-1 -1]) gauss(n1/4.3 [1 -1])];
%%
p0 = ones(n01)/n0;
p1 = ones(n11)/n1;
%%
C = repmat( sum(X0.^2)‘ [1 n1] ) + ...
repmat( sum(X1.^2) [n0 1] ) - 2*X0‘*X1;
%%
clf; hold on;
myplot(X0(1:) X0(2:) 10 ‘b‘);
myplot(X1(1:) X1(2:) 10 ‘r‘);
axis equal; axis off;
%%
gamma = otransp(Cp0p1);
%%
clf;
imageplot(gamma);
%%
clf; hold on;
[IJ~] = find(gamma);
for k=1:length(I)
h = plot( [X0(1I(k)) X1(1J(k))] [X0(2I(k)) X1(2J(k))] ‘k‘ );
set(h ‘LineWidth‘ 2);
end
myplot(X0(1:) X0(2:) 10 ‘b‘);
myplot(X1(1:) X1(2:) 10 ‘r‘);
axis equal; axis off;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-02-12 16:31 最优传输工具箱\
文件 2655 2017-02-12 19:23 最优传输工具箱\numericaltour.m
目录 0 2017-02-12 16:26 最优传输工具箱\toolbox_general\
文件 729 2014-10-19 14:59 最优传输工具箱\toolbox_general\apply_multiple_ouput.m
文件 669 2014-10-19 14:59 最优传输工具箱\toolbox_general\assign.m
文件 149 2014-10-19 14:59 最优传输工具箱\toolbox_general\atan2.sci
文件 127 2014-10-19 14:59 最优传输工具箱\toolbox_general\axis.sci
文件 9362 2014-10-19 14:59 最优传输工具箱\toolbox_general\binornd.m
文件 59 2014-10-19 14:59 最优传输工具箱\toolbox_general\camlight.sci
文件 73 2014-10-19 14:59 最优传输工具箱\toolbox_general\cat3.m
文件 721 2014-10-19 14:59 最优传输工具箱\toolbox_general\cat3.sci
文件 421 2014-10-19 14:59 最优传输工具箱\toolbox_general\cell_add.m
文件 161 2014-10-19 14:59 最优传输工具箱\toolbox_general\cell_get.m
文件 190 2014-10-19 14:59 最优传输工具箱\toolbox_general\cell_get.sci
文件 164 2014-10-19 14:59 最优传输工具箱\toolbox_general\cell_set.m
文件 192 2014-10-19 14:59 最优传输工具箱\toolbox_general\cell_set.sci
文件 185 2014-10-19 14:59 最优传输工具箱\toolbox_general\cell_sub.m
文件 267 2014-10-19 14:59 最优传输工具箱\toolbox_general\cell_sub.sci
文件 420 2014-10-19 14:59 最优传输工具箱\toolbox_general\certify_adjoint.m
文件 471 2014-10-19 14:59 最优传输工具箱\toolbox_general\circshift.sci
文件 342 2014-10-19 14:59 最优传输工具箱\toolbox_general\clamp.m
文件 347 2014-10-19 14:59 最优传输工具箱\toolbox_general\clamp.sci
文件 58 2014-10-19 14:59 最优传输工具箱\toolbox_general\colormap.sci
文件 205 2014-10-19 14:59 最优传输工具箱\toolbox_general\compute_max.m
文件 310 2014-10-19 14:59 最优传输工具箱\toolbox_general\compute_max.sci
文件 201 2014-10-19 14:59 最优传输工具箱\toolbox_general\compute_min.m
文件 306 2014-10-19 14:59 最优传输工具箱\toolbox_general\compute_min.sci
文件 899 2014-10-19 14:59 最优传输工具箱\toolbox_general\crop.m
文件 804 2014-10-19 14:59 最优传输工具箱\toolbox_general\crop.sci
文件 851 2014-10-19 14:59 最优传输工具箱\toolbox_general\det3.m
文件 1389 2014-10-19 14:59 最优传输工具箱\toolbox_general\dump_struct.m
............此处省略251个文件信息
- 上一篇:数字信号处理原理及其MATLAB实现
- 下一篇:三维重建算法 MATLAB 点云数据
相关资源
- Optimal Estimation of Dynamic Systems
- matlab计算最优潮流
- Optimal State Estimation(最优状态估计)
- optimal placement of dg
- OPTIMAL-CAPACITOR-PLACEMENT
- 30 Bus Network2 Kabiri
- OptimalControlOfWindPowerGeneration 《风力发
- Desktop2781849
- optimal_PV-WTand--SVC 含分布式电源的配电
- GA-opf 利用遗传算法解决电力系统最优
- optimal_PVandSVC 含分布式发电的配电网有
- -Optimal-Power-Flow 首先介绍了辐射状配电
- Applied-Optimal-Control 应用最优控制[英文
- pso-optimal-power-flow 使用粒子群优化算法
- optimal_PSO 包含分布式电源的配电网无
评论
共有 条评论