필터 지우기
필터 지우기

Integer programing for minimization

조회 수: 1 (최근 30일)
Corto Rasp
Corto Rasp 2016년 5월 24일
답변: Nihar Deodhar 2016년 6월 23일
- How to solve the following integer optimization problem :
Find B and D such that B,D = Min |Y- XDB|||
where the matrices X,Y are given.
The matrix D must be a diagonal matrix where its diagonal elements are 0 or 1.
  댓글 수: 2
Torsten
Torsten 2016년 5월 25일
Which norm do you use ?
Is it correct that the same B appears on both sides of the equation
B = Min |Y- XDB|
?
Best wishes
Torsten.
Corto Rasp
Corto Rasp 2016년 5월 25일
No indeed, thank you to underline this mistake. The purpose to this problem is to find both matrices D and B with the matrix D sparse as possible.

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

답변 (1개)

Nihar Deodhar
Nihar Deodhar 2016년 6월 23일
Your problem could be solved using fmincon. See Matlab documentation on fmincon for more info.
Set up the objective function as
J = abs(Y- X*D*B);
where I guess X is a known matrix/vector.
Set up B using b1,b2,b3.... etc. the number of variables needed would depend on size of B. choose n number of elements d1,d2,....dn for the square matrix D based on its size.
for instance if B is 3x3, set up b1, b2, ......b9 and if D is 3x3 as well (which would have to be given the size of B) choose d1, d2 and d3 as optimization variables ad set the off diagonal elements in D = 0. So the problem will involve (9+3 = 12) optimization variables in this case. Now you said that diagonal of D should be populated by 1 or 0. Set this range for the parameter bounds in fmincon. It is possible that you might get fractions between 0 and 1 as the optimum, just round it up to either 0 or 1 in the end.

카테고리

Help CenterFile Exchange에서 Solver Outputs and Iterative Display에 대해 자세히 알아보기

태그

제품

Community Treasure Hunt

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

Start Hunting!

Translated by