我找不到合适的最优解

问题描述 投票:0回答:1

我怎样才能得到好的解决方案?? 我需要一个乘积 od 矩阵和变量向量的最小化并尝试这些线我只得到最佳解决方案是 0...

!pip install gekko

from gekko import GEKKO
import numpy as np
import pandas as pd

lista1 = [0,1,2,3,4,3,2,1,2]
lista2 = [1,0,1,2,3,3,2,2,1]
lista3 = [2,1,0,1,2,3,3,3,2]
lista4 = [3,2,1,0,1,2,1,2,2]
lista5 = [4,3,2,1,0,1,2,3,3]
lista6 = [3,3,3,2,1,0,1,2,2]
lista7 = [2,2,3,1,2,1,0,1,1]
lista8 = [1,2,3,2,3,2,1,0,2]
lista9 = [2,1,2,2,3,2,1,2,0]
df_distancias = pd.DataFrame(list(zip(lista1,lista2,lista3,lista4,lista5,lista6,lista7,lista8,lista9)),columns=['col1','col2','col3','col4','col5','col6','col7','col8','col9'])
df_distancias

func_obj = df_distancias.to_numpy()

func_obj

m = GEKKO()

q = m.Array(m.Var,(9,6),lb=0,ub=1,integer=True)

producto_matricial = np.dot(func_obj,q)

m.Minimize(sum(producto_matricial[i,j]*q[i,j] for i in range(9) for j in range(6)))

vector_columna = m.Param(value=[3,5,4,4,4,3])
vector_fila =  m.Param(value=[4,3,2,4,2,2,2,2,2])
vector_fila

for i in range(6):
  m.Equation(m.sum(q[i,j] for j in range(9))==vector_columna[i])

for i in range(9):
  m.Equation(m.sum(q[i,j] for j in range(6))==vector_fila[i])

m.options.SOLVER = 1


我需要最小化矩阵和变量向量的乘积并尝试这些线我只得到最佳解决方案是 0 ...

python matrix optimization gekko minimization
1个回答
0
投票

我试图用 GEKKO 包解决 MILNP,但我无法在这个小例子中得到正确的解决方案……我得到的解决方案是 0。 当我的目标函数是(方矩阵 * 变量向量)的矩阵乘积时,我需要知道如何解决非线性规划优化问题。我将需要它用于一个巨大的维度,但是有一个简单的例子是很好的

© www.soinside.com 2019 - 2024. All rights reserved.