刚开时数学建模,遇到这个题,这个算法是真的难到我了,
首先,我们的模型(模型不知对否哈!主要是展示代码)是
经过思考很久后,针对该问题写了如下代码
import numpy
import random
import types
yyy = []
# 发电机i成本系数
a = [1000, 970, 700, 680, 450, 370, 480, 660, 665, 670.0]
b = [16.19, 17.26, 16.60, 16.50, 19.70, 22.26, 27.74, 25.92, 27.27, 27.79]
c = [0.00048, 0.00031, 0.00200, 0.00211, 0.00398, 0.00712, 0.00079, 0.00413, 0.00222, 0.00173]
# 机组i的有功出力上限
pmax = [455, 455, 130, 130, 162, 80, 85, 55, 55, 55]
# 机组i的有功出力下限
pmin = [150, 150, 20, 20, 25, 20, 25, 10, 10, 10]
# 机组i的功率上升速度限制
ru = [225, 225, 50, 50, 60, 60, 60, 35, 35, 35]
# 机组i的功率下降速度限制
rd = [225, 225, 50, 50, 60, 60, 60, 35, 35, 35]
# 机组i的最小运行时间。
trun = [8, 8, 5, 5, 6, 3, 3, 1, 1, 1]
# 机组i的最小停止时间。
tstop = [8, 8, 5, 5, 6, 3, 3, 1, 1, 1]
# 为机组i的初始运行状态
t0 = [8, 8, -5, -5, -6, -3, -3, -1, -1, -1]
trop = ['1 1 1 1 1 1 1 1', '1 1 1 1 1 1 1 1', '1 1 1 1 1', '1 1 1 1 1', '1 1 1 1 1 1', '1 1 1', '1 1 1', '1', '1', '1']
top = ['1','1 1','1 1 1','1 1 1 1','1 1 1 1 1','1 1 1 1 1 1','1 1 1 1 1 1 1','1 1 1 1 1 1 1 1']
tsop = ['0 0 0 0 0 0 0 0', '0 0 0 0 0 0 0 0', '0 0 0 0 0', '0 0 0 0 0', '0 0 0 0 0 0', '0 0 0', '0 0 0', '0', '0', '0']
# 机组i的初始已连续运行或连续停机时间
u = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0]]
# t时段的负荷
e = [700.0, 750, 850, 950, 1000, 1100, 1150, 1200, 1300, 1400, 1450, 1500, 1400, 1300, 1200, 1050, 1000, 1100, 1200, 1400,
1300, 1100, 900, 800]
# t时段的电价
s = [29.225, 26.397, 22.47, 21.07, 23.163, 30.863, 31.556, 47.39, 49.7, 52.1, 55.35, 55.5, 57.01, 54.42, 63.12, 65.59,
67.24, 63.87, 55.61, 52.55, 51.07, 47.77, 44.89, 42.83]
# 机组i在t时段的出力
p = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0]]
# 机组i在t时段的成本
y = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
# t时刻的实际负荷
h = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0]
# t时刻的新实际负荷
hxing = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0]
# 机组i在t时段的新成本
yxing = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
# 机组i在t时段的xing出力
pxing = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
# 旋转备用
r = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
# 在t时段前机组i已经运行的时间
tr = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
# 在t时段前机组i已经停止的时间
ts = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
a8=['1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1',
'1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1',
'0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0'
,'0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0']
a6=['1 1 1 1 1 1','1 1 1 1 1 1 1','1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1',
'1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1',
'1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','0 0 0 0 0 0','0 0 0 0 0 0 0','0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0'
,'0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0',
'0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0']
a5=['1 1 1 1 1','1 1 1 1 1 1','1 1 1 1 1 1 1','1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1',
'1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1',
'1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','0 0 0 0 0','0 0 0 0 0 0','0 0 0 0 0 0 0','0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0'
,'0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0',
'0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0']
a3 = ['1 1 1','1 1 1 1','1 1 1 1 1','1 1 1 1 1 1','1 1 1 1 1 1 1','1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1',
'1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1',
'1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1',
'1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','0 0 0','0 0 0 0','0 0 0 0 0','0 0 0 0 0 0','0 0 0 0 0 0 0','0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0'
,'0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0',
'0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0']
a, b, c = numpy.array(a), numpy.array(b), numpy.array(c)
a = numpy.array(numpy.mat(a).T)
b = numpy.array(numpy.mat(b).T)
c = numpy.array(numpy.mat(c).T)
pmax, pmin, ru = numpy.array(pmax), numpy.array(pmin), numpy.array(ru)
rd, trun, tstop = numpy.array(rd), numpy.array(trun), numpy.array(tstop)
t0, u, e, s = numpy.array(t0), numpy.array(u), numpy.array(e), numpy.array(s)
p, y, h = numpy.array(p), numpy.array(y), numpy.array(h)
hxing, yxing, pxing = numpy.array(hxing), numpy.array(yxing), numpy.array(pxing)
r, tr, ts = numpy.array(r), numpy.array(tr), numpy.array(ts)
pmin = numpy.array(numpy.mat(pmin).T)
pmax = numpy.array(numpy.mat(pmax).T)
ru = numpy.array(numpy.mat(ru).T)
rd = numpy.array(numpy.mat(rd).T)
kk3 = 2**50
hhh=0
a10=[['1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1',
'1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1',
'0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0'
,'0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0'],['1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1',
'1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1',
'0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0'
,'0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0'],['1 1 1 1 1','1 1 1 1 1 1','1 1 1 1 1 1 1','1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1',
'1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1',
'1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','0 0 0 0 0','0 0 0 0 0 0','0 0 0 0 0 0 0','0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0'
,'0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0',
'0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0'],['1 1 1 1 1','1 1 1 1 1 1','1 1 1 1 1 1 1','1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1',
'1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1',
'1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','0 0 0 0 0','0 0 0 0 0 0','0 0 0 0 0 0 0','0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0'
,'0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0',
'0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0'],['1 1 1 1 1 1','1 1 1 1 1 1 1','1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1',
'1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1',
'1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','0 0 0 0 0 0','0 0 0 0 0 0 0','0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0'
,'0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0',
'0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0'],['1 1 1','1 1 1 1','1 1 1 1 1','1 1 1 1 1 1','1 1 1 1 1 1 1','1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1',
'1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1',
'1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1',
'1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','0 0 0','0 0 0 0','0 0 0 0 0','0 0 0 0 0 0','0 0 0 0 0 0 0','0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0'
,'0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0',
'0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0'],['1 1 1','1 1 1 1','1 1 1 1 1','1 1 1 1 1 1','1 1 1 1 1 1 1','1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1',
'1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1',
'1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1',
'1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1','0 0 0','0 0 0 0','0 0 0 0 0','0 0 0 0 0 0','0 0 0 0 0 0 0','0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0'
,'0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0',
'0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0','0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0'],['0','1'],['0','1'],['0','1']]
while kk3 :
key1 = 0
key2 = 0
mn = 1
ci = 0
ci2 = 0
uu = 1
pp = 1
ttt = 1
vv = 0
kk = 1
kk2=1
kkk = 0
mc = 0
# 给定初始矩阵p
for t in range(24):
p[0, t] = random.randint(150, 455)
p[1, t] = random.randint(150, 455)
p[2, t] = random.randint(20, 130)
p[3, t] = random.randint(20, 130)
p[4, t] = random.randint(25, 162)
p[5, t] = random.randint(20, 80)
p[6, t] = random.randint(25, 85)
p[7, t] = random.randint(10, 55)
p[8, t] = random.randint(10, 55)
p[9, t] = random.randint(10, 55)
# 给定满足h[t]与e[t]的值相近的矩阵p和u,约束条件
while kk:
for i in range(10):
ttt = 1
while ttt:
pi = 0
h = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0]
h=numpy.array(h)
# 定义矩阵u
j = 1
kkj = 1
while kkj:
j = 1
for ee in range(10):
aa = []
aaa = []
co = 0
j = 1
while j:
v = random.choice(a10[ee])
aa += [v]
c1 = list(map(int, list(v.split())))
aaa += c1
leng = len(c1)
co += leng
if co > 24:
j = 1
aa = []
aaa = []
co = 0
if co == 24:
j = 0
kkj = 0
u[ee, :] = aaa
# 定义矩阵h
#print(u)
for t in range(24):
for io in range(10):
h[t] += p[io, t] * u[io, t]
if h[t] > e[t] - 800 and h[t] < e[t] + 800: # 判断矩阵h与矩阵p的关系是否满足
pi += 1
else:
ttt = 1
vv += 1
if pi==24 :
ttt = 0
vv = 0
if vv > 280:
break
# p和e不满足条件时,重新定义矩阵p
if vv > 280:
for i in range(10):
nihe = 0
while nihe != 24:
for t in range(24):
p[0, t] = random.randint(150, 455)
p[1, t] = random.randint(150, 455)
p[2, t] = random.randint(20, 130)
p[3, t] = random.randint(20, 130)
p[4, t] = random.randint(25, 162)
p[5, t] = random.randint(20, 80)
p[6, t] = random.randint(25, 85)
p[7, t] = random.randint(10, 55)
p[8, t] = random.randint(10, 55)
p[9, t] = random.randint(10, 55)
# 判断速度上下限
for t in range(24):
if p[i, t] - p[i, t - 1] < ru[i] and p[i, t - 1] - p[i, t] < rd[i]:
nihe += 1
else:
nihe = 0
kk = 1
vv = 0
break
else:
kk = 0
break
while kk2 :
for t in range(24):
if h[t] > e[t] - 600 and h[t] < e[t] + 500:
mc += 1
if mc == 24:
kk2 = 0
# 求出矩阵y的值
for iv in range(10):
for tv in range(24):
y[iv, tv] = a[iv] + b[iv] * p[iv, tv] + c[iv] * p[iv, tv] ** 2
# 约束条件
ww = 0
we = 0
for i11 in range(10):
for t11 in range(24):
if h[t11] < e[t11] and i11 == 0:
ww += s[t11] * h[t11]
if h[t11] > e[t11] and i11 == 0:
ww += s[t11] * e[t11]
we += 0.67 * y[i11, t11] * u[i11, t11]
w = ww - we
yyy += [w]
print('+++++++')
print(p * u)
print('+++++++')
print(h)
print('+++++++')
print(yyy)
print("-----------")
print("利润最大值",max(yyy))
print('**********')
kk3 -= 1
print('有')
else:
kk2 = 0
kk3 -= 1
hhh += 1
print('次数:',hhh)
第一次找到的结果展示
+++++++
[[244. 393. 217. 420. 207. 423. 341. 365. 345. 236. 353. 315. 439. 157.
250. 421. 284. 372. 316. 451. 282. 211. 183. 290.]
[349. 324. 437. 165. 242. 197. 346. 348. 169. 219. 453. 418. 337. 367.
324. 317. 220. 382. 284. 272. 271. 267. 231. 437.]
[ 70. 95. 119. 88. 31. 116. 125. 35. 45. 111. 102. 44. 69. 72.
128. 53. 77. 88. 43. 82. 100. 108. 58. 101.]
[ 22. 130. 74. 111. 81. 103. 48. 84. 106. 118. 115. 84. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 100.
102. 36. 73. 106. 137. 148. 100. 76. 161. 26.]
[ 60. 71. 73. 46. 40. 34. 20. 45. 62. 32. 38. 80. 24. 39.
70. 35. 24. 44. 78. 77. 71. 68. 75. 56.]
[ 62. 63. 75. 80. 32. 31. 37. 65. 82. 80. 37. 72. 37. 70.
26. 27. 27. 40. 33. 34. 37. 51. 49. 43.]
[ 0. 24. 0. 10. 0. 45. 33. 0. 0. 30. 16. 23. 0. 13.
44. 0. 37. 0. 41. 0. 53. 10. 0. 0.]
[ 32. 0. 17. 0. 0. 0. 30. 43. 0. 32. 0. 0. 11. 0.
0. 13. 0. 0. 17. 21. 49. 30. 15. 0.]
[ 27. 38. 0. 0. 50. 55. 0. 0. 43. 32. 34. 0. 0. 34.
30. 39. 47. 0. 33. 0. 0. 38. 0. 0.]]
+++++++
[ 866. 1138. 1012. 920. 683. 1004. 980. 985. 852. 890. 1148. 1036.
917. 852. 974. 941. 789. 1032. 982. 1085. 963. 859. 772. 953.]
+++++++
[662591.2758891003]
-----------
利润最大值 662591.2758891003
**********
有
次数: 1
代码有点长,但是思路很简单。刚开始是想用python关于数学建模的库写的,但是时间不够,所以想采用暴力的穷举法,结果发现运行会太慢了,所以想了一下,某些量是在某个范围内变化的,就做了如下处理:
step1:将所有未知的量补零处理
step2:设定未知量范围,让未知量在该范围内取
step3:用大循环控制随机次数
在随机次数多的情况下,可以找出最优解。
如果增加删除已筛选数据就可以解决了,目前只想到这里。希望大佬指导指导。
欢迎使用Markdown编辑器
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
新的改变
我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:
- 全新的界面设计 ,将会带来全新的写作体验;
- 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
- 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
- 全新的 KaTeX数学公式 语法;
- 增加了支持甘特图的mermaid语法1 功能;
- 增加了 多屏幕编辑 Markdown文章功能;
- 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
- 增加了 检查列表 功能。
功能快捷键
撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
合理的创建标题,有助于目录的生成
直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC
语法后生成一个完美的目录。
如何改变文本的样式
强调文本 强调文本
加粗文本 加粗文本
标记文本
删除文本
引用文本
H2O is是液体。
210 运算结果是 1024.
插入链接与图片
链接: link.
图片:
带尺寸的图片:
居中的图片:
居中并且带尺寸的图片:
当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。
如何插入一段漂亮的代码片
去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片
.
// An highlighted block
var foo = 'bar';
生成一个适合你的列表
- 项目
- 项目
- 项目
- 项目
- 项目1
- 项目2
- 项目3
- 计划任务
- 完成任务
创建一个表格
一个简单的表格是这么创建的:
项目 | Value |
---|---|
电脑 | $1600 |
手机 | $12 |
导管 | $1 |
设定内容居中、居左、居右
使用:---------:
居中
使用:----------
居左
使用----------:
居右
第一列 | 第二列 | 第三列 |
---|---|---|
第一列文本居中 | 第二列文本居右 | 第三列文本居左 |
SmartyPants
SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:
TYPE | ASCII | HTML |
---|---|---|
Single backticks | 'Isn't this fun?' | ‘Isn’t this fun?’ |
Quotes | "Isn't this fun?" | “Isn’t this fun?” |
Dashes | -- is en-dash, --- is em-dash | – is en-dash, — is em-dash |
创建一个自定义列表
-
Markdown
- Text-to- HTML conversion tool Authors
- John
- Luke
如何创建一个注脚
一个具有注脚的文本。2
注释也是必不可少的
Markdown将文本转换为 HTML。
KaTeX数学公式
您可以使用渲染LaTeX数学表达式 KaTeX:
Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n−1)!∀n∈N 是通过欧拉积分
Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t   . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=∫0∞tz−1e−tdt.
你可以找到更多关于的信息 LaTeX 数学表达式here.
新的甘特图功能,丰富你的文章
- 关于 甘特图 语法,参考 这儿,
UML 图表
可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图::
这将产生一个流程图。:
- 关于 Mermaid 语法,参考 这儿,
FLowchart流程图
我们依旧会支持flowchart的流程图:
- 关于 Flowchart流程图 语法,参考 这儿.
导出与导入
导出
如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。
导入
如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。
注脚的解释 ↩︎