diff --git a/mip.py b/mip.py index 0170ea4..7da12ac 100644 --- a/mip.py +++ b/mip.py @@ -68,19 +68,11 @@ def design_with_mip( # 簇使用变量 (binary) y = pulp.LpVariable.dicts("use_cluster", range(max_clusters), cat="Binary") - # 目标函数:最小化总成本 (简化版:距离成本) - # 这里使用简化成本:簇内距离 + 到升压站距离 + # 目标函数:最小化总成本 (线性简化版:到升压站距离总和) + # 由于MIP线性约束,简化目标为最小化风机到升压站的距离总和(通过簇) prob += pulp.lpSum( [ - dist_matrix_full[i + 1, j + 1] * x[i][k] * x[j][k] - for i in range(n_turbines) - for j in range(n_turbines) - for k in range(max_clusters) - if i < j - ] - ) + pulp.lpSum( - [ - dist_matrix_full[0, i + 1] * y[k] # 假设每个簇连接到升压站 + dist_matrix_full[0, i + 1] * x[i][k] for i in range(n_turbines) for k in range(max_clusters) ]