Doubly stochastic matrix in linear programming

How may I get the vector x by using linprog(f,A,b), where b=Wy(y is a known vector) and W is all possible doubly stochastic matrix? Or other methods will work for lp given constraints involve doubly stochastic matrix, especially if W is high dimensional and enumeration seems infeasible?

 채택된 답변

Torsten
Torsten 2015년 1월 16일

0 개 추천

You mean how you can formulate the above problem for linprog ?
min: f'x
s.c.
A*x-Z*y=0
sum_i z_ij = 1
sum_j z_ij = 1
0 <= z_ij <= 1
Or what exactly are you asking for ?
Best wishes
Torsten.

댓글 수: 3

Xia
Xia 2015년 1월 16일
Firstly, thanks a lot Torsten for your anwer. Yes, it is exactly the formulation of optimization. So how can I use linprog() function to solve x and Z?
The first constraint looks like it should be an inequality,
A*x-Z*y<=0
Xia
Xia 2015년 1월 16일
편집: Xia 2015년 1월 16일
No, and actually just the opposite. It’s an application of Investment test. However, your answer and codes are helpful and inspiring. Thank you so much Matt, for your time and kindness. Again, thanks Torsten. Merci guys.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Matt J
Matt J 2015년 1월 16일
편집: Matt J 2015년 1월 16일

0 개 추천

This assumes that A will always be non-empty.
[m,n]=size(A);
p=m^2+n; %all unknowns
fwx=f; fwx(p)=0;
Awx=[kron(-y.',speye(m)), A];
bwx=zeros(m,1);
C= kron(speye(m), ones(1,m));
R= kron(ones(1,m), speye(m));
Aeq=[C;R]; Aeq(end,p)=0;
beq= ones(2*m,1);
lb=-inf(1,p); lb(1:m^2)=0;
ub=+inf(1,p; lb(1:m^2)=1;
WX=linprog(fwx,Awx,bwx,Aeq,beq,lb,ub);
W=reshape(WX(1:m^2),m,[]);
x=WX(m^2+1:p);

댓글 수: 1

No, and actually just the opposite.
You mean you definitely want equality in
A*x-Z*y=0
If so, modify the call to linprog as follows
WX=linprog(fwx,[],[],[Aeq;Awx], [beq; bwx ],lb,ub);

댓글을 달려면 로그인하십시오.

카테고리

질문:

Xia
2015년 1월 16일

댓글:

2015년 1월 16일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by