Methods of optimization of non-linear function with a binary variable.

64 Views Asked by At

I am trying to do an optimization problem:

I have 500 customers and $N$ facilities, and $C_{i,j}$ indicates whether customer $i$ is assigned to facility $j$. Each customer is assigned to at most one facility, and at least 475 customers needs to be assigned. Each facility has a capacity of 150 resources, and $D$ indicates the number of resources that each costumer need (being a matriz 500 x 1). The distance of the customer to the facility that the costumer is assigned should be at most 85 units, and the matrix $L$ is a matrix $N$x$2$ which shows the localition of the facility in meters (in x,y coordinates). The matrix $G$ is a matrix $N$x$2$ which shows the localition of the costumer in meters (and we assume that a costumer can not move its position). Then, as we will bilt the facilities, I have to minimize the number of facilities and minimize the distance of the facility from each costumer.

So my formulation of the problem is the following:

  1. \begin{equation} \sum_{i=1}^{500}\sum_{j=1}^{N}C_{i,j}\geq 475 \end{equation}

  2. \begin{equation} \sum_{i=1}^{500}C_{i,j}D_{i,1} \leq 150 \, , \,\, \forall j \in \{1, ..., N\} \end{equation}

  3. \begin{equation} \sum_{j=1}^{N}C_{i,j}\cdot \sqrt{(G_{i,1}-L_{j,1})^2 + (G_{i,2}-L_{j,2})^2} \leq 85 \, , \,\, \forall i \in \{1,2, ..., 500\} \end{equation}

  4. \begin{equation} \sum_{j=1}^{N}C_{i,j} \leq 1\, , \,\, \forall i \in \{1,2, ..., 500\} \end{equation}

  5. \begin{equation} C_{i,j} \in \{0, 1\} \end{equation}

The optimization function is this one:

\begin{equation} f_1 = min \, \sum_{i=1}^{500}\sum_{j=1}^{N}C_{i,j}\cdot \sqrt{(G_{i,1}-L_{j,1})^2 + (G_{i,2}-L_{j,2})^2} \end{equation}

\begin{equation} f_2 = min \, N \end{equation}

To solve it, I thought about transforming this multiobjective problem into a set of monoobjective problems, by solving it for $N=1, N=2, ..., N=500$ (and I'll have to minimize only the function $f_1$ for different values of N). I have all the values of $G_{i,j}$ and $D_{i,j}$ given. I thought using The variable $C_{i,j}$ is a binary variable which can assume either the value 0 or 1, the variable $L_{i,j}$ can be any given real value. Do you guys can recommend me a optmization algorithm to accomplish such thing?

1

There are 1 best solutions below

1
On BEST ANSWER

So you have $500$ customers and $100$ facilities, and $C_{i,j}$ indicates whether customer $i$ is assigned to facility $j$. Constraint 4 assigns each customer to at most one facility, and constraint 1 forces at least $475$ customers to be assigned. Constraint 2 imposes a capacity of $150$ on each facility. Constraint 3 looks like you are trying to assign customer $i$ at $(G_{i,1},G_{i,2})$ to a facility at location $(L_{j,1},L_{j,2})$ at most $85$ units away.

You might try searching for (capacitated) multi-source Weber problem.