Let’s consider the following convex optimization problem of minimizing the log barrier function:
$$\min_{\textbf{x}\in \Re^n}f(\textbf{x})=\min_{\textbf{x}\in \Re^n}\bigg{\textbf{c}^T\textbf{x}-\sum\limits_{i=1}^mlog(b_i-\textbf{a}_i^T\textbf{x})\bigg}$$
where x\in \Re^{n\times 1} \text{, } c\in \Re^{n\times 1} \text{, } b\in \Re^{m\times 1} \text{, } A\in \Re^{m\times n} \text{.} I am trying to solve this problem for the unconstrained case using Matlab CVX software before trying Newton’s method. I initially tried without using any constraint and I got the result that the problem is unbounded and that the optimal value is -inf. This error makes sense since some of the b_i-\textbf{a}_i^T\textbf{x} are less than 1 and then minimizing over a set of complex numbers doesn’t make sense. Then I thought that it’s OK to add the constraint b_i-\textbf{a}_i^T\textbf{x}>0 \text{ for } i=1,2,...,m because of the logarithm. But I got the same results. I don’t know what to do to avoid this. Each element of the matrices \textbf{A}, \textbf{b} and \textbf{c} is produced randomly in [0,1] (uniformly distributed samples). Should I produce these values in some other way?
Here is the Matlab code:
clear, clc, close all
%Dimension of the problem
n = 2;
%Number of summation terms
m = 20;
%Random vector c
c = rand(n, 1);
%Random vector b
b = rand(m, 1);
%Random array A
A = rand(m, n);
%CVX optimization
cvx_begin
variable x(n)
minimize(c.'*x - sum(log(b - A*x)))
subject to %Initially without this line
b - A*x > 0 %Initially without this line
cvx_end