最小化每一步的累计值

时间:2018-06-27 20:50:44

标签: optimization tabu-search

我目前正在处理一个问题: 我有几个周期要分配的位置。对于每个位置,都有一个磁通,并且这些磁通随着周期累积。

例如,在这种情况下:

Location: 1 2 3 4 5 6
Flux:     4 1 8 1 5 7

如果一个物体进入位置3,5,然后到达1,则最终将具有8 + 5 + 4 = 17的累积通量。当物体处于给定周期的位置时,另一个物体不能处于在同一个地方。

现在我有28个对象,196个位置(每个位置都有一个通量值)和7个循环。 我的第一个目标是使物体之间的总累积通量之差最小。我是通过禁忌搜索来做到这一点的,它为我提供了累积通量的结果(线对应于不同的对象,列对应于不同的循环):

 0.5816    1.4293   25.4065   76.8503   77.4187  136.6698  200.3161
 0.8307   64.6363   67.2245  125.7241  136.9424  197.4404  199.9021
 0.6058   53.1175  118.5429  142.7146  143.6404  146.7749  199.8301
 0.7702    1.6455   55.5451   85.6992  139.4876  195.9645  199.7902
 0.8771   66.7841   67.7526   93.6602  137.3848  195.1756  199.7000
 0.6868   50.5214  104.0117  131.3844  134.1012  141.7810  199.9149
 0.6041    8.6149   68.1412   76.6420  130.5282  138.2783  198.8705
 0.7816    1.6084   45.3783   74.9618  133.4950  141.0442  200.3820
 3.0922    5.6652   10.1231   62.4969  115.4155  146.9356  199.9432
 3.8996   65.5592   66.3063  118.3036  182.1707  192.9948  200.4383
 3.8875   56.3984   68.1369  121.5241  129.5970  192.4334  200.4369
 8.3907   16.2188   73.8488  126.7931  134.2722  191.8316  200.1157
 11.3619  12.2858   68.1432  122.1711  133.5624  187.2255  198.8294
 53.8037  54.6764   55.5288  109.3596  111.3048  141.2284  200.1923
 52.0620  52.6561   96.3642  147.7550  148.5716  199.8243  200.5068
 29.2521  57.0771   58.9211   62.0156   92.3465  145.9352  199.5902
 26.6577  68.4486   99.4957  107.7340  135.5826  146.5506  199.9271
 31.9282  32.8237   65.8313  115.9958  143.2445  170.1270  199.7448
 60.9665  61.6391   62.3172  114.4951  115.4132  166.9041  200.5435
 65.7344  69.6626   70.4986   82.5036  142.3685  171.6213  200.1920
 41.6865  81.5338  135.0199  143.3494  145.3374  169.0886  199.9640
 51.7154 104.5191  105.3969  133.2749  189.6045  197.3475  199.8932
 49.2345  56.8147  102.7353  136.5101  139.2118  196.5379  200.2588
 41.8892  86.1495   87.0312   95.0476  141.0435  144.9995  199.8407
 51.2268  97.3526  144.7970  146.7862  194.2443  197.0977  199.7094
 41.9218  80.9393  120.8801  147.8040  195.7625  198.2516  200.1334
 47.4438  88.6672  134.6058  146.0954  191.7577  196.2414  200.0423
 42.9657  90.2496  141.7318  148.9092  152.8436  159.4467  200.2776

现在的问题是,我想添加一个次要目标,即在给定周期内对象之间的最大差异有限,当然,第一个周期除外,因为它不受限制。例如,在循环4中,我的最大差值为148.9092-62.0156 = 86.8936,我仍然希望获得非常接近的总累积通量值(右列),而不必一定是最佳值,并且可以将其最小化第二优先级是每个周期的最大差异。

我为成本函数考虑了线性编程中“ Big M”方法的模拟方法,但似乎并没有得到令人满意的结果。

对于这个问题,是否存在一种已知的方法,具有两个目标,一个比另一个重要?

谢谢!

0 个答案:

没有答案