多目标背包问题:MOJAYA求解多目标背包问题(Multi-objective Knapsack Problem,MOKP)提供Matlab代码

55 篇文章 11 订阅
5 篇文章 1 订阅

一、多目标背包问题

1.1多目标背包问题描述

多目标背包问题(Multi-objective Knapsack Problem,MOKP)是一种重要的组合优化问题,在生活的许多领域都有着十分广泛的应用。多目标背包问题可以描述为:给定一个背包和n种物品,其中,背包的容量为 V V V ,第i 种物品的质量为 c i c_{i} ci ,价值为 p i p_{i} pi ,如何通过物品选择,使得装入背包中的物品总价值最大 f 1 f_{1} f1,总体积最小 f 2 f_{2} f2。其数学模型如下:
f 1 = max ⁡ ∑ i = 1 n p i x i f 2 = min ⁡ ∑ i = 1 n c i x i  s.t.  ∑ i = 1 n c i x i ≤ V , i = 1 , 2 , … , n x i = 0 , 1 f_{1}=\max \sum_{i=1}^{n} p_{i} x_{i}\\f_{2}=\min \sum_{i=1}^{n} c_{i} x_{i}\\\begin{array}{ll} \text { s.t. } & \sum_{i=1}^{n} c_{i} x_{i} \leq V, i=1,2, \ldots, n \\& x_{i}=0,1\end{array} f1=maxi=1npixif2=mini=1ncixi s.t. i=1ncixiV,i=1,2,,nxi=0,1
其中, f 1 f_{1} f1为物品总价值最大, f 2 f_{2} f2为物品总体积最小,该问题为多目标优化问题。

1.2背包问题测试集

选取9个经典的背包问题测试集,下表中, c c c为物品的质量, p p p为物品的价值, V V V为背包的最大容量。
在这里插入图片描述
参考文献:
[1]耿亚,吴访升.基于粒子群-模拟退火算法的背包问题研究[J].控制工程,2019,26(05):991-996.DOI:10.14107/j.cnki.kzgc.161767.
[2]李枝勇,马良,张惠珍.蝙蝠算法在多目标多选择背包问题中的应用[J].计算机仿真,2013,30(10):350-353.

二、MOJAYA

多目标Jaya算法(Multi-objective Jaya Algorithm,MOJAYA)由Fateh Berrouk 等人于2018年提出。
在这里插入图片描述
MOJAYA算法描述:
在这里插入图片描述
在这里插入图片描述
参考文献:
[1] Berrouk F , Bouchekara H R E H , Chaib A E , et al. A New Multi-objective Jaya Algorithm for Solving the Optimal Power Flow Problem[J]. Journal of Electrical Systems, 2018, 14(3).
[2]C. Venkaiah and R. V. Jain, “Multi-objective JAYA algorithm based optimal location and sizing of distributed generation in a radial distribution system,” 2017 IEEE PES Asia-Pacific Power and Energy Engineering Conference (APPEEC), 2017, pp. 1-6, doi: 10.1109/APPEEC.2017.8308965.

三、MOJAYA求解多目标背包问题

%%
TestProblem='F1';%F1-F9
MultiObj = GetFunInfo(TestProblem);
MultiObjFnc=MultiObj.name;%问题名
% Parameters
params.Np =150;        % Population size 种群大小
params.maxgen =100;    % Maximum number of generations 最大迭代次数
% MOJAYA
[Xbest,Fbest] = MOJAYA(params,MultiObj);
ShowResult;
%%
% Display info
disp('Repository fitness values are stored in Fbest');
disp('Repository particles positions are store in Xbest');

部分结果如下:

3.1数据集1求解结果

在这里插入图片描述
在这里插入图片描述
20个非支配解的结果如下:

第1个结果:
所求得的背包总价值 : 295
所求得的背包的容量 : 269
算法选取的物品序号 : 2   3   4   8   9  10
算法选取的物品质量 : 4  60  32  62  65  46
算法选取的物品价值 : 10  47   5  61  85  87
第2个结果:
所求得的背包总价值 : 294
所求得的背包的容量 : 260
算法选取的物品序号 : 2   3   5   8   9  10
算法选取的物品质量 : 4  60  23  62  65  46
算法选取的物品价值 : 10  47   4  61  85  87
第3个结果:
所求得的背包总价值 : 290
所求得的背包的容量 : 237
算法选取的物品序号 : 2   3   8   9  10
算法选取的物品质量 : 4  60  62  65  46
算法选取的物品价值 : 10  47  61  85  87
第4个结果:
所求得的背包总价值 : 280
所求得的背包的容量 : 233
算法选取的物品序号 : 3   8   9  10
算法选取的物品质量 : 60  62  65  46
算法选取的物品价值 : 47  61  85  87
第5个结果:
所求得的背包总价值 : 252
所求得的背包的容量 : 232
算法选取的物品序号 : 2   4   5   8   9  10
算法选取的物品质量 : 4  32  23  62  65  46
算法选取的物品价值 : 10   5   4  61  85  87
第6个结果:
所求得的背包总价值 : 248
所求得的背包的容量 : 209
算法选取的物品序号 : 2   4   8   9  10
算法选取的物品质量 : 4  32  62  65  46
算法选取的物品价值 : 10   5  61  85  87
第7个结果:
所求得的背包总价值 : 247
所求得的背包的容量 : 200
算法选取的物品序号 : 2   5   8   9  10
算法选取的物品质量 : 4  23  62  65  46
算法选取的物品价值 : 10   4  61  85  87
第8个结果:
所求得的背包总价值 : 243
所求得的背包的容量 : 177
算法选取的物品序号 : 2   8   9  10
算法选取的物品质量 : 4  62  65  46
算法选取的物品价值 : 10  61  85  87
第9个结果:
所求得的背包总价值 : 233
所求得的背包的容量 : 173
算法选取的物品序号 : 8   9  10
算法选取的物品质量 : 62  65  46
算法选取的物品价值 : 61  85  87
第10个结果:
所求得的背包总价值 : 219
所求得的背包的容量 : 171
算法选取的物品序号 : 3   9  10
算法选取的物品质量 : 60  65  46
算法选取的物品价值 : 47  85  87
第11个结果:
所求得的背包总价值 : 191
所求得的背包的容量 : 170
算法选取的物品序号 : 2   4   5   9  10
算法选取的物品质量 : 4  32  23  65  46
算法选取的物品价值 : 10   5   4  85  87
第12个结果:
所求得的背包总价值 : 187
所求得的背包的容量 : 147
算法选取的物品序号 : 2   4   9  10
算法选取的物品质量 : 4  32  65  46
算法选取的物品价值 : 10   5  85  87
第13个结果:
所求得的背包总价值 : 186
所求得的背包的容量 : 138
算法选取的物品序号 : 2   5   9  10
算法选取的物品质量 : 4  23  65  46
算法选取的物品价值 : 10   4  85  87
第14个结果:
所求得的背包总价值 : 182
所求得的背包的容量 : 115
算法选取的物品序号 : 2   9  10
算法选取的物品质量 : 4  65  46
算法选取的物品价值 : 10  85  87
第15个结果:
所求得的背包总价值 : 148
所求得的背包的容量 : 108
算法选取的物品序号 : 8  10
算法选取的物品质量 : 62  46
算法选取的物品价值 : 61  87
第16个结果:
所求得的背包总价值 : 106
所求得的背包的容量 : 105
算法选取的物品序号 : 2   4   5  10
算法选取的物品质量 : 4  32  23  46
算法选取的物品价值 : 10   5   4  87
第17个结果:
所求得的背包总价值 : 102
所求得的背包的容量 : 82
算法选取的物品序号 : 2   4  10
算法选取的物品质量 : 4  32  46
算法选取的物品价值 : 10   5  87
第18个结果:
所求得的背包总价值 : 101
所求得的背包的容量 : 73
算法选取的物品序号 : 2   5  10
算法选取的物品质量 : 4  23  46
算法选取的物品价值 : 10   4  87
第19个结果:
所求得的背包总价值 : 97
所求得的背包的容量 : 50
算法选取的物品序号 : 2  10
算法选取的物品质量 : 4  46
算法选取的物品价值 : 10  87
第20个结果:
所求得的背包总价值 : 15
所求得的背包的容量 : 36
算法选取的物品序号 : 2  4
算法选取的物品质量 : 4  32
算法选取的物品价值 : 10   5

3.2数据集7求解结果

在这里插入图片描述

在这里插入图片描述
16个非支配解的结果如下:

第1个结果:
所求得的背包总价值 : 6486
所求得的背包的容量 : 1911
算法选取的物品序号 : 2   3   4   6   7  10  11  12  13  14  15  16  17  18  20  21  22  23  24  25  26  28  29  30  31  32  33  34  35  36  37  39  41  43  46  47  49  54  55  57  58
算法选取的物品质量 : 133  130   11  123   20   66  105   43   18    5   37   90   22   85   80   70   17   60   35   57   35   40    8   50   32   40   72   35  100    2    7   28   22   30   47   68   10   37   17    3   21
算法选取的物品价值 : 310  300  295  287  283  270  265  251  230  220  215  212  207  203  200  198  196  190  182  181  175  155  154  140  132  125  110  105  101   92   83   75   72   69   58   45   38   23   20   10    9
第2个结果:
所求得的背包总价值 : 6092
所求得的背包的容量 : 1613
算法选取的物品序号 : 2   3   4   5   6   7   8   9  10  13  14  15  17  20  21  22  23  24  25  26  28  29  31  32  34  35  36  39  40  41  43  46  49  54  55  57  58
算法选取的物品质量 : 133  130   11  128  123   20   75    9   66   18    5   37   22   80   70   17   60   35   57   35   40    8   32   40   35  100    2   28   10   22   30   47   10   37   17    3   21
算法选取的物品价值 : 310  300  295  290  287  283  280  272  270  230  220  215  207  200  198  196  190  182  181  175  155  154  132  125  105  101   92   75   73   72   69   58   38   23   20   10    9
第3个结果:
所求得的背包总价值 : 5968
所求得的背包的容量 : 1563
算法选取的物品序号 : 2   4   7   8  10  11  12  13  14  15  16  17  18  19  21  22  23  24  25  26  28  29  30  31  33  34  35  36  37  39  40  46  47  49  54  57  58
算法选取的物品质量 : 133   11   20   75   66  105   43   18    5   37   90   22   85    9   70   17   60   35   57   35   40    8   50   32   72   35  100    2    7   28   10   47   68   10   37    3   21
算法选取的物品价值 : 310  295  283  280  270  265  251  230  220  215  212  207  203  202  198  196  190  182  181  175  155  154  140  132  110  105  101   92   83   75   73   58   45   38   23   10    9
第4个结果:
所求得的背包总价值 : 5770
所求得的背包的容量 : 1498
算法选取的物品序号 : 2   4   6   7   8  10  12  13  14  15  16  17  18  19  22  23  24  25  26  28  29  30  31  34  35  36  37  39  41  43  46  47  49  54  55  57  58
算法选取的物品质量 : 133   11  123   20   75   66   43   18    5   37   90   22   85    9   17   60   35   57   35   40    8   50   32   35  100    2    7   28   22   30   47   68   10   37   17    3   21
算法选取的物品价值 : 310  295  287  283  280  270  251  230  220  215  212  207  203  202  196  190  182  181  175  155  154  140  132  105  101   92   83   75   72   69   58   45   38   23   20   10    9
第5个结果:
所求得的背包总价值 : 5755
所求得的背包的容量 : 1421
算法选取的物品序号 : 2   4   7   8   9  10  12  13  14  15  16  17  18  19  20  22  23  24  25  28  29  30  31  33  34  35  37  39  42  46  49  50  53  54  55  56  57
算法选取的物品质量 : 133   11   20   75    9   66   43   18    5   37   90   22   85    9   80   17   60   35   57   40    8   50   32   72   35  100    7   28   27   47   10   12   20   37   17    4    3
算法选取的物品价值 : 310  295  283  280  272  270  251  230  220  215  212  207  203  202  200  196  190  182  181  155  154  140  132  110  105  101   83   75   70   58   38   36   27   23   20   19   10
第6个结果:
所求得的背包总价值 : 5519
所求得的背包的容量 : 1382
算法选取的物品序号 : 2   4   7   8  10  12  13  14  15  16  17  18  21  22  23  24  25  26  28  29  30  31  33  34  35  36  37  39  40  41  46  49  54  57
算法选取的物品质量 : 133   11   20   75   66   43   18    5   37   90   22   85   70   17   60   35   57   35   40    8   50   32   72   35  100    2    7   28   10   22   47   10   37    3
算法选取的物品价值 : 310  295  283  280  270  251  230  220  215  212  207  203  198  196  190  182  181  175  155  154  140  132  110  105  101   92   83   75   73   72   58   38   23   10
第7个结果:
所求得的背包总价值 : 5396
所求得的背包的容量 : 1228
算法选取的物品序号 : 1   2   4   7   8   9  10  12  13  14  17  19  20  21  22  23  24  25  28  29  31  32  34  35  37  39  41  49  55  57  58
算法选取的物品质量 : 135  133   11   20   75    9   66   43   18    5   22    9   80   70   17   60   35   57   40    8   32   40   35  100    7   28   22   10   17    3   21
算法选取的物品价值 : 350  310  295  283  280  272  270  251  230  220  207  202  200  198  196  190  182  181  155  154  132  125  105  101   83   75   72   38   20   10    9
第8个结果:
所求得的背包总价值 : 5232
所求得的背包的容量 : 1225
算法选取的物品序号 : 2   4   9  10  11  12  13  14  17  18  19  20  21  22  23  24  25  26  27  29  30  32  34  36  39  40  41  46  49  50  53  55  57
算法选取的物品质量 : 133   11    9   66  105   43   18    5   22   85    9   80   70   17   60   35   57   35   61    8   50   40   35    2   28   10   22   47   10   12   20   17    3
算法选取的物品价值 : 310  295  272  270  265  251  230  220  207  203  202  200  198  196  190  182  181  175  160  154  140  125  105   92   75   73   72   58   38   36   27   20   10
第9个结果:
所求得的背包总价值 : 5142
所求得的背包的容量 : 1205
算法选取的物品序号 : 2   4   5   6   7   9  10  12  13  14  17  18  19  20  22  23  25  26  29  32  36  38  39  40  41  43  46  52  53  54  59
算法选取的物品质量 : 133   11  128  123   20    9   66   43   18    5   22   85    9   80   17   60   57   35    8   40    2   19   28   10   22   30   47   11   20   37   10
算法选取的物品价值 : 310  295  290  287  283  272  270  251  230  220  207  203  202  200  196  190  181  175  154  125   92   77   75   73   72   69   58   31   27   23    4
第10个结果:
所求得的背包总价值 : 5073
所求得的背包的容量 : 1165
算法选取的物品序号 : 2   4   7   9  10  12  13  14  15  17  19  21  22  23  24  25  26  28  29  31  32  34  35  36  39  41  43  46  54  55  57  59  60
算法选取的物品质量 : 133   11   20    9   66   43   18    5   37   22    9   70   17   60   35   57   35   40    8   32   40   35  100    2   28   22   30   47   37   17    3   10   67
算法选取的物品价值 : 310  295  283  272  270  251  230  220  215  207  202  198  196  190  182  181  175  155  154  132  125  105  101   92   75   72   69   58   23   20   10    4    1
第11个结果:
所求得的背包总价值 : 4913
所求得的背包的容量 : 1101
算法选取的物品序号 : 4   7   8   9  12  13  14  16  17  19  22  23  24  25  26  27  28  29  30  31  32  33  34  37  39  41  45  46  49  52  55  57  58
算法选取的物品质量 : 11  20  75   9  43  18   5  90  22   9  17  60  35  57  35  61  40   8  50  32  40  72  35   7  28  22  91  47  10  11  17   3  21
算法选取的物品价值 : 295  283  280  272  251  230  220  212  207  202  196  190  182  181  175  160  155  154  140  132  125  110  105   83   75   72   60   58   38   31   20   10    9
第12个结果:
所求得的背包总价值 : 4765
所求得的背包的容量 : 938
算法选取的物品序号 : 7   8   9  10  12  13  14  15  17  19  20  21  22  23  24  25  26  28  29  31  32  36  39  40  41  46  49  55  57  58
算法选取的物品质量 : 20  75   9  66  43  18   5  37  22   9  80  70  17  60  35  57  35  40   8  32  40   2  28  10  22  47  10  17   3  21
算法选取的物品价值 : 283  280  272  270  251  230  220  215  207  202  200  198  196  190  182  181  175  155  154  132  125   92   75   73   72   58   38   20   10    9
第13个结果:
所求得的背包总价值 : 4173
所求得的背包的容量 : 866
算法选取的物品序号 : 4   7   9  10  12  13  14  17  18  19  21  26  28  29  31  32  34  35  36  37  39  40  41  43  46  52  54  57  58
算法选取的物品质量 : 11   20    9   66   43   18    5   22   85    9   70   35   40    8   32   40   35  100    2    7   28   10   22   30   47   11   37    3   21
算法选取的物品价值 : 295  283  272  270  251  230  220  207  203  202  198  175  155  154  132  125  105  101   92   83   75   73   72   69   58   31   23   10    9
第14个结果:
所求得的背包总价值 : 3656
所求得的背包的容量 : 796
算法选取的物品序号 : 4   7   8   9  10  12  13  14  17  20  23  26  31  32  34  35  36  41  50  52  53  54  55  57  58
算法选取的物品质量 : 11   20   75    9   66   43   18    5   22   80   60   35   32   40   35  100    2   22   12   11   20   37   17    3   21
算法选取的物品价值 : 295  283  280  272  270  251  230  220  207  200  190  175  132  125  105  101   92   72   36   31   27   23   20   10    9
第15个结果:
所求得的背包总价值 : 3575
所求得的背包的容量 : 767
算法选取的物品序号 : 4   5   7   8   9  13  14  15  16  17  24  29  32  34  36  39  40  41  43  49  53  55  56  57  58  60
算法选取的物品质量 : 11  128   20   75    9   18    5   37   90   22   35    8   40   35    2   28   10   22   30   10   20   17    4    3   21   67
算法选取的物品价值 : 295  290  283  280  272  230  220  215  212  207  182  154  125  105   92   75   73   72   69   38   27   20   19   10    9    1
第16个结果:
所求得的背包总价值 : 3488
所求得的背包的容量 : 759
算法选取的物品序号 : 4   6   7   8   9  10  12  13  14  20  28  31  32  34  36  37  39  50  51  53  54  57  59
算法选取的物品质量 : 11  123   20   75    9   66   43   18    5   80   40   32   40   35    2    7   28   12   43   20   37    3   10
算法选取的物品价值 : 295  287  283  280  272  270  251  230  220  200  155  132  125  105   92   83   75   36   33   27   23   10    4

3.3数据集9求解结果

在这里插入图片描述在这里插入图片描述

26个非支配解的结果如下:

第1个结果:
所求得的背包总价值 : 11190
所求得的背包的容量 : 2913
算法选取的物品序号 : 1   2   3   4   6   7   9  10  11  12  13  14  15  16  17  20  21  22  25  26  27  28  29  30  32  33  34  36  37  38  40  41  42  43  45  46  47  49  52  53  57  59  61  62  64  65  68  69  70  71  72  73  76  78  79  82  87  91  93  94  95  96  99
算法选取的物品质量 : 54  95  36  18  71  83  27  84  88  45  94  64  14  80   4  36  90  20  58   6  14  86  84  59  21  30  22  49  81  48  28   6  84  19  88  38  51  79  53  64   1  32  42  45  22  49   1  78  43  85  24  96  57   8  10  89   6   6  45  59  26  13   5
算法选取的物品价值 : 297  295  293  292  289  284  283  283  281  280  279  277  276  275  273  257  250  236  235  233  232  232  228  218  214  211  208  204  203  201  194  193  193  192  190  187  187  184  179  176  160  123  113  107  101  100   98   97   94   94   93   91   73   63   63   60   48   35   22   22   18   15    6
第2个结果:
所求得的背包总价值 : 11145
所求得的背包的容量 : 2667
算法选取的物品序号 : 1   2   3   4   5   6   7   9  10  11  12  13  14  15  16  17  20  21  22  24  25  26  27  28  30  32  33  34  35  36  39  40  41  42  45  46  47  49  50  52  53  57  59  61  64  65  66  69  70  72  73  77  78  87  89  91  93  97
算法选取的物品质量 : 54  95  36  18   4  71  83  27  84  88  45  94  64  14  80   4  36  90  20  32  58   6  14  86  59  21  30  22  96  49  37  28   6  84  88  38  51  79  55  53  64   1  32  42  22  49  37  78  43  24  96  23   8   6  84   6  45   8
算法选取的物品价值 : 297  295  293  292  291  289  284  283  283  281  280  279  277  276  275  273  257  250  236  235  235  233  232  232  218  214  211  208  205  204  196  194  193  193  190  187  187  184  184  179  176  160  123  113  101  100  100   97   94   93   91   72   63   48   40   35   22   12
第3个结果:
所求得的背包总价值 : 10885
所求得的背包的容量 : 2612
算法选取的物品序号 : 1   2   3   4   5   6   7   9  10  11  12  13  14  15  16  17  20  21  22  25  26  27  28  30  32  34  36  37  38  39  40  41  42  46  47  49  50  52  53  55  58  59  61  62  64  68  69  71  72  73  77  78  79  87  91  93  96  99
算法选取的物品质量 : 54  95  36  18   4  71  83  27  84  88  45  94  64  14  80   4  36  90  20  58   6  14  86  59  21  22  49  81  48  37  28   6  84  38  51  79  55  53  64  61  64  32  42  45  22   1  78  85  24  96  23   8  10   6   6  45  13   5
算法选取的物品价值 : 297  295  293  292  291  289  284  283  283  281  280  279  277  276  275  273  257  250  236  235  233  232  232  218  214  208  204  203  201  196  194  193  193  187  187  184  184  179  176  172  128  123  113  107  101   98   97   94   93   91   72   63   63   48   35   22   15    6
第4个结果:
所求得的背包总价值 : 10661
所求得的背包的容量 : 2518
算法选取的物品序号 : 1    2    3    4    5    6    9   10   11   12   13   14   15   16   17   20   22   24   25   26   27   28   30   33   34   35   36   37   39   40   41   43   45   46   47   49   52   53   57   59   61   62   64   66   68   69   70   71   72   73   77   78   81   87   91   93   96   97   99  100
算法选取的物品质量 : 54  95  36  18   4  71  27  84  88  45  94  64  14  80   4  36  20  32  58   6  14  86  59  30  22  96  49  81  37  28   6  19  88  38  51  79  53  64   1  32  42  45  22  37   1  78  43  85  24  96  23   8  59   6   6  45  13   8   5   9
算法选取的物品价值 : 297  295  293  292  291  289  283  283  281  280  279  277  276  275  273  257  236  235  235  233  232  232  218  211  208  205  204  203  196  194  193  192  190  187  187  184  179  176  160  123  113  107  101  100   98   97   94   94   93   91   72   63   61   48   35   22   15   12    6    5
第5个结果:
所求得的背包总价值 : 10412
所求得的背包的容量 : 2435
算法选取的物品序号 : 1   2   3   4   5   6   9  10  11  12  13  14  15  17  18  20  21  22  25  27  30  32  33  34  36  37  39  40  41  42  43  46  47  48  49  52  53  55  57  58  61  62  64  65  66  69  71  72  73  78  79  87  91  93  95  96  99
算法选取的物品质量 : 54  95  36  18   4  71  27  84  88  45  94  64  14   4  23  36  90  20  58  14  59  21  30  22  49  81  37  28   6  84  19  38  51  52  79  53  64  61   1  64  42  45  22  49  37  78  85  24  96   8  10   6   6  45  26  13   5
算法选取的物品价值 : 297  295  293  292  291  289  283  283  281  280  279  277  276  273  264  257  250  236  235  232  218  214  211  208  204  203  196  194  193  193  192  187  187  184  184  179  176  172  160  128  113  107  101  100  100   97   94   93   91   63   63   48   35   22   18   15    6
第6个结果:
所求得的背包总价值 : 10106
所求得的背包的容量 : 2347
算法选取的物品序号 : 1   2   3   4   5   6   9  10  11  13  14  15  16  17  20  22  25  26  27  28  30  32  33  34  36  37  39  40  41  42  46  47  49  50  52  53  57  59  61  62  64  65  66  68  69  71  72  73  77  78  87  91  92  93  96  99
算法选取的物品质量 : 54  95  36  18   4  71  27  84  88  94  64  14  80   4  36  20  58   6  14  86  59  21  30  22  49  81  37  28   6  84  38  51  79  55  53  64   1  32  42  45  22  49  37   1  78  85  24  96  23   8   6   6  19  45  13   5
算法选取的物品价值 : 297  295  293  292  291  289  283  283  281  279  277  276  275  273  257  236  235  233  232  232  218  214  211  208  204  203  196  194  193  193  187  187  184  184  179  176  160  123  113  107  101  100  100   98   97   94   93   91   72   63   48   35   28   22   15    6
第7个结果:
所求得的背包总价值 : 9980
所求得的背包的容量 : 2325
算法选取的物品序号 : 1   2   3   4   5   6   9  10  11  13  14  15  16  17  20  21  22  24  25  26  27  30  32  33  34  36  37  40  41  42  45  46  47  49  52  53  57  59  61  64  65  68  69  71  72  73  77  79  87  91  92  93  95  96  99
算法选取的物品质量 : 54  95  36  18   4  71  27  84  88  94  64  14  80   4  36  90  20  32  58   6  14  59  21  30  22  49  81  28   6  84  88  38  51  79  53  64   1  32  42  22  49   1  78  85  24  96  23  10   6   6  19  45  26  13   5
算法选取的物品价值 : 297  295  293  292  291  289  283  283  281  279  277  276  275  273  257  250  236  235  235  233  232  218  214  211  208  204  203  194  193  193  190  187  187  184  179  176  160  123  113  101  100   98   97   94   93   91   72   63   48   35   28   22   18   15    6
第8个结果:
所求得的背包总价值 : 9942
所求得的背包的容量 : 2316
算法选取的物品序号 : 2   3   4   5   6   9  10  11  13  14  15  16  17  20  21  22  24  25  26  27  30  32  33  34  36  37  38  39  40  41  46  47  49  52  53  55  57  59  61  62  64  65  69  70  71  73  77  78  79  87  91  92  93  95  96  99
算法选取的物品质量 : 95  36  18   4  71  27  84  88  94  64  14  80   4  36  90  20  32  58   6  14  59  21  30  22  49  81  48  37  28   6  38  51  79  53  64  61   1  32  42  45  22  49  78  43  85  96  23   8  10   6   6  19  45  26  13   5
算法选取的物品价值 : 295  293  292  291  289  283  283  281  279  277  276  275  273  257  250  236  235  235  233  232  218  214  211  208  204  203  201  196  194  193  187  187  184  179  176  172  160  123  113  107  101  100   97   94   94   91   72   63   63   48   35   28   22   18   15    6
第9个结果:
所求得的背包总价值 : 9920
所求得的背包的容量 : 2311
算法选取的物品序号 : 1   2   3   4   5   6   9  10  11  13  14  15  16  17  20  22  24  25  27  28  30  32  33  34  36  37  39  40  41  45  46  47  49  50  52  53  57  59  61  64  65  66  68  69  71  72  73  77  87  91  92  93  99
算法选取的物品质量 : 54  95  36  18   4  71  27  84  88  94  64  14  80   4  36  20  32  58  14  86  59  21  30  22  49  81  37  28   6  88  38  51  79  55  53  64   1  32  42  22  49  37   1  78  85  24  96  23   6   6  19  45   5
算法选取的物品价值 : 297  295  293  292  291  289  283  283  281  279  277  276  275  273  257  236  235  235  232  232  218  214  211  208  204  203  196  194  193  190  187  187  184  184  179  176  160  123  113  101  100  100   98   97   94   93   91   72   48   35   28   22    6
第10个结果:
所求得的背包总价值 : 9843
所求得的背包的容量 : 2291
算法选取的物品序号 : 1    2    3    4    5    7    9   10   12   14   15   16   17   18   20   22   24   26   27   28   30   31   33   34   35   36   37   39   40   43   45   46   47   52   57   58   59   61   62   64   65   66   68   69   70   71   72   82   84   87   91   93   96   97   99  100
算法选取的物品质量 : 54  95  36  18   4  83  27  84  45  64  14  80   4  23  36  20  32   6  14  86  59  71  30  22  96  49  81  37  28  19  88  38  51  53   1  64  32  42  45  22  49  37   1  78  43  85  24  89  40   6   6  45  13   8   5   9
算法选取的物品价值 : 297  295  293  292  291  284  283  283  280  277  276  275  273  264  257  236  235  233  232  232  218  217  211  208  205  204  203  196  194  192  190  187  187  179  160  128  123  113  107  101  100  100   98   97   94   94   93   60   53   48   35   22   15   12    6    5
第11个结果:
所求得的背包总价值 : 9814
所求得的背包的容量 : 2208
算法选取的物品序号 : 1   2   3   4   5   6   9  10  11  13  14  15  16  17  18  20  22  24  25  27  30  32  34  36  37  40  41  42  46  47  49  50  52  53  55  57  59  61  62  64  65  66  68  69  71  72  77  78  87  91  92  93  96  99
算法选取的物品质量 : 54  95  36  18   4  71  27  84  88  94  64  14  80   4  23  36  20  32  58  14  59  21  22  49  81  28   6  84  38  51  79  55  53  64  61   1  32  42  45  22  49  37   1  78  85  24  23   8   6   6  19  45  13   5
算法选取的物品价值 : 297  295  293  292  291  289  283  283  281  279  277  276  275  273  264  257  236  235  235  232  218  214  208  204  203  194  193  193  187  187  184  184  179  176  172  160  123  113  107  101  100  100   98   97   94   93   72   63   48   35   28   22   15    6
第12个结果:
所求得的背包总价值 : 9768
所求得的背包的容量 : 2197
算法选取的物品序号 : 1   3   4   6   9  10  11  12  13  14  15  16  17  18  20  21  22  23  26  27  29  30  31  32  33  34  36  37  38  40  41  46  49  52  53  55  57  59  61  64  65  66  68  69  71  79  87  91  93  95  96  99
算法选取的物品质量 : 54  36  18  71  27  84  88  45  94  64  14  80   4  23  36  90  20  77   6  14  84  59  71  21  30  22  49  81  48  28   6  38  79  53  64  61   1  32  42  22  49  37   1  78  85  10   6   6  45  26  13   5
算法选取的物品价值 : 297  293  292  289  283  283  281  280  279  277  276  275  273  264  257  250  236  236  233  232  228  218  217  214  211  208  204  203  201  194  193  187  184  179  176  172  160  123  113  101  100  100   98   97   94   63   48   35   22   18   15    6
第13个结果:
所求得的背包总价值 : 9744
所求得的背包的容量 : 2171
算法选取的物品序号 : 1   2   3   4   5   6   8   9  10  11  13  14  15  16  17  20  22  24  25  27  30  32  33  34  37  39  40  41  46  47  49  50  52  55  57  59  61  63  64  65  66  68  71  72  73  77  78  81  87  91  92  93  96  97  98  99
算法选取的物品质量 : 54  95  36  18   4  71  16  27  84  88  94  64  14  80   4  36  20  32  58  14  59  21  30  22  81  37  28   6  38  51  79  55  53  61   1  32  42  34  22  49  37   1  85  24  96  23   8  59   6   6  19  45  13   8  26   5
算法选取的物品价值 : 297  295  293  292  291  289  284  283  283  281  279  277  276  275  273  257  236  235  235  232  218  214  211  208  203  196  194  193  187  187  184  184  179  172  160  123  113  105  101  100  100   98   94   93   91   72   63   61   48   35   28   22   15   12   11    6
第14个结果:
所求得的背包总价值 : 9710
所求得的背包的容量 : 2128
算法选取的物品序号 : 1   2   3   4   5   6   9  10  11  12  13  14  15  16  17  20  22  24  25  27  28  30  32  33  34  36  37  39  40  41  46  47  49  52  53  57  59  61  62  64  66  69  72  77  78  85  87  91  92  93  95  96  97  99
算法选取的物品质量 : 54  95  36  18   4  71  27  84  88  45  94  64  14  80   4  36  20  32  58  14  86  59  21  30  22  49  81  37  28   6  38  51  79  53  64   1  32  42  45  22  37  78  24  23   8  46   6   6  19  45  26  13   8   5
算法选取的物品价值 : 297  295  293  292  291  289  283  283  281  280  279  277  276  275  273  257  236  235  235  232  232  218  214  211  208  204  203  196  194  193  187  187  184  179  176  160  123  113  107  101  100   97   93   72   63   52   48   35   28   22   18   15   12    6
第15个结果:
所求得的背包总价值 : 9677
所求得的背包的容量 : 2121
算法选取的物品序号 : 1   2   3   4   5   6   7   9  10  11  13  14  15  16  17  20  22  24  25  26  27  30  32  33  34  36  38  39  40  41  42  46  47  49  52  57  59  61  64  65  68  69  71  73  78  87  91  92  93  95  96  99
算法选取的物品质量 : 54  95  36  18   4  71  83  27  84  88  94  64  14  80   4  36  20  32  58   6  14  59  21  30  22  49  48  37  28   6  84  38  51  79  53   1  32  42  22  49   1  78  85  96   8   6   6  19  45  26  13   5
算法选取的物品价值 : 297  295  293  292  291  289  284  283  283  281  279  277  276  275  273  257  236  235  235  233  232  218  214  211  208  204  201  196  194  193  193  187  187  184  179  160  123  113  101  100   98   97   94   91   63   48   35   28   22   18   15    6
第16个结果:
所求得的背包总价值 : 9514
所求得的背包的容量 : 2117
算法选取的物品序号 : 1   2   3   4   5   6   9  10  11  13  14  15  16  17  20  22  24  25  27  28  30  32  33  34  36  37  39  40  41  46  47  49  52  53  57  61  62  64  65  66  68  69  72  73  77  78  87  91  92  93  96  99
算法选取的物品质量 : 54  95  36  18   4  71  27  84  88  94  64  14  80   4  36  20  32  58  14  86  59  21  30  22  49  81  37  28   6  38  51  79  53  64   1  42  45  22  49  37   1  78  24  96  23   8   6   6  19  45  13   5
算法选取的物品价值 : 297  295  293  292  291  289  283  283  281  279  277  276  275  273  257  236  235  235  232  232  218  214  211  208  204  203  196  194  193  187  187  184  179  176  160  113  107  101  100  100   98   97   93   91   72   63   48   35   28   22   15    6
第17个结果:
所求得的背包总价值 : 9329
所求得的背包的容量 : 2103
算法选取的物品序号 : 1   2   3   4   5   7   9  10  11  13  14  15  16  17  20  24  25  28  30  32  33  34  36  37  39  40  41  43  46  47  49  50  52  55  57  61  62  63  64  65  66  69  72  77  78  87  91  92  93  96  99
算法选取的物品质量 : 54  95  36  18   4  83  27  84  88  94  64  14  80   4  36  32  58  86  59  21  30  22  49  81  37  28   6  19  38  51  79  55  53  61   1  42  45  34  22  49  37  78  24  23   8   6   6  19  45  13   5
算法选取的物品价值 : 297  295  293  292  291  284  283  283  281  279  277  276  275  273  257  235  235  232  218  214  211  208  204  203  196  194  193  192  187  187  184  184  179  172  160  113  107  105  101  100  100   97   93   72   63   48   35   28   22   15    6
第18个结果:
所求得的背包总价值 : 9142
所求得的背包的容量 : 2064
算法选取的物品序号 : 1   2   3   4   5   6   9  11  13  14  15  16  17  18  19  20  22  24  26  28  30  32  33  34  35  36  37  40  41  46  47  49  52  57  59  61  62  69  71  72  76  77  78  87  91  93  94  96
算法选取的物品质量 : 54  95  36  18   4  71  27  88  94  64  14  80   4  23  75  36  20  32   6  86  59  21  30  22  96  49  81  28   6  38  51  79  53   1  32  42  45  78  85  24  57  23   8   6   6  45  59  13
算法选取的物品价值 : 297  295  293  292  291  289  283  281  279  277  276  275  273  264  260  257  236  235  233  232  218  214  211  208  205  204  203  194  193  187  187  184  179  160  123  113  107   97   94   93   73   72   63   48   35   22   22   15
第19个结果:
所求得的背包总价值 : 9076
所求得的背包的容量 : 2057
算法选取的物品序号 : 1   2   3   4   5   8   9  10  11  13  14  16  17  18  22  24  25  32  33  34  36  39  40  41  43  46  47  48  49  50  52  54  55  57  59  61  63  64  65  66  67  73  77  78  82  87  91  92  93  96  99
算法选取的物品质量 : 54  95  36  18   4  16  27  84  88  94  64  80   4  23  20  32  58  21  30  22  49  37  28   6  19  38  51  52  79  55  53  99  61   1  32  42  34  22  49  37  33  96  23   8  89   6   6  19  45  13   5
算法选取的物品价值 : 297  295  293  292  291  284  283  283  281  279  277  275  273  264  236  235  235  214  211  208  204  196  194  193  192  187  187  184  184  184  179  173  172  160  123  113  105  101  100  100   99   91   72   63   60   48   35   28   22   15    6
第20个结果:
所求得的背包总价值 : 9013
所求得的背包的容量 : 1941
算法选取的物品序号 : 1   2   3   4   5   6   7   9  10  11  14  15  16  17  20  22  24  26  27  28  30  32  33  34  37  39  40  41  46  47  50  52  54  56  57  61  62  66  68  77  85  87  90  91  92  93  99
算法选取的物品质量 : 54  95  36  18   4  71  83  27  84  88  64  14  80   4  36  20  32   6  14  86  59  21  30  22  81  37  28   6  38  51  55  53  99  86   1  42  45  37   1  23  46   6  83   6  19  45   5
算法选取的物品价值 : 297  295  293  292  291  289  284  283  283  281  277  276  275  273  257  236  235  233  232  232  218  214  211  208  203  196  194  193  187  187  184  179  173  171  160  113  107  100   98   72   52   48   40   35   28   22    6
第21个结果:
所求得的背包总价值 : 8991
所求得的背包的容量 : 1896
算法选取的物品序号 : 1   3   4   5   6   9  10  11  14  15  16  18  20  21  22  24  25  27  28  30  32  33  34  38  39  40  41  43  46  47  49  50  52  57  61  62  64  66  68  71  77  78  79  87  90  91  92  93  96  99
算法选取的物品质量 : 54  36  18   4  71  27  84  88  64  14  80  23  36  90  20  32  58  14  86  59  21  30  22  48  37  28   6  19  38  51  79  55  53   1  42  45  22  37   1  85  23   8  10   6  83   6  19  45  13   5
算法选取的物品价值 : 297  293  292  291  289  283  283  281  277  276  275  264  257  250  236  235  235  232  232  218  214  211  208  201  196  194  193  192  187  187  184  184  179  160  113  107  101  100   98   94   72   63   63   48   40   35   28   22   15    6
第22个结果:
所求得的背包总价值 : 8616
所求得的背包的容量 : 1843
算法选取的物品序号 : 1   3   4   5   9  10  11  13  14  15  17  18  20  21  24  25  27  30  32  33  34  36  39  40  41  43  47  50  52  55  57  61  62  63  64  65  66  67  69  72  73  77  78  87  91  92  93  96  98  99
算法选取的物品质量 : 54  36  18   4  27  84  88  94  64  14   4  23  36  90  32  58  14  59  21  30  22  49  37  28   6  19  51  55  53  61   1  42  45  34  22  49  37  33  78  24  96  23   8   6   6  19  45  13  26   5
算法选取的物品价值 : 297  293  292  291  283  283  281  279  277  276  273  264  257  250  235  235  232  218  214  211  208  204  196  194  193  192  187  184  179  172  160  113  107  105  101  100  100   99   97   93   91   72   63   48   35   28   22   15   11    6
第23个结果:
所求得的背包总价值 : 8321
所求得的背包的容量 : 1836
算法选取的物品序号 : 1   3   4   5   6   9  10  11  13  14  15  16  17  22  24  25  30  32  33  34  36  37  39  40  41  46  47  49  50  52  55  59  61  62  65  66  69  77  78  79  87  91  92  93  96  99
算法选取的物品质量 : 54  36  18   4  71  27  84  88  94  64  14  80   4  20  32  58  59  21  30  22  49  81  37  28   6  38  51  79  55  53  61  32  42  45  49  37  78  23   8  10   6   6  19  45  13   5
算法选取的物品价值 : 297  293  292  291  289  283  283  281  279  277  276  275  273  236  235  235  218  214  211  208  204  203  196  194  193  187  187  184  184  179  172  123  113  107  100  100   97   72   63   63   48   35   28   22   15    6
第24个结果:
所求得的背包总价值 : 8239
所求得的背包的容量 : 1785
算法选取的物品序号 : 1   3   4   5   7   9  10  11  13  14  15  16  18  20  22  24  30  32  33  34  36  39  40  41  46  47  49  50  52  54  57  61  64  65  66  72  73  77  78  79  87  91  92  93  96
算法选取的物品质量 : 54  36  18   4  83  27  84  88  94  64  14  80  23  36  20  32  59  21  30  22  49  37  28   6  38  51  79  55  53  99   1  42  22  49  37  24  96  23   8  10   6   6  19  45  13
算法选取的物品价值 : 297  293  292  291  284  283  283  281  279  277  276  275  264  257  236  235  218  214  211  208  204  196  194  193  187  187  184  184  179  173  160  113  101  100  100   93   91   72   63   63   48   35   28   22   15
第25个结果:
所求得的背包总价值 : 7938
所求得的背包的容量 : 1642
算法选取的物品序号 : 1   2   3   4   5   9  10  11  14  15  17  20  22  24  25  30  32  33  34  36  37  39  40  41  46  47  49  50  52  55  57  59  64  66  67  73  77  87  91  92  93  96  99
算法选取的物品质量 : 54  95  36  18   4  27  84  88  64  14   4  36  20  32  58  59  21  30  22  49  81  37  28   6  38  51  79  55  53  61   1  32  22  37  33  96  23   6   6  19  45  13   5
算法选取的物品价值 : 297  295  293  292  291  283  283  281  277  276  273  257  236  235  235  218  214  211  208  204  203  196  194  193  187  187  184  184  179  172  160  123  101  100   99   91   72   48   35   28   22   15    6
第26个结果:
所求得的背包总价值 : 7062
所求得的背包的容量 : 1547
算法选取的物品序号 : 1   3   4   5   7   9  10  11  13  15  17  18  24  25  30  32  33  36  39  40  41  43  50  57  58  59  61  62  65  66  67  77  78  79  83  87  90  91  92  93  96  97  99
算法选取的物品质量 : 54  36  18   4  83  27  84  88  94  14   4  23  32  58  59  21  30  49  37  28   6  19  55   1  64  32  42  45  49  37  33  23   8  10  95   6  83   6  19  45  13   8   5
算法选取的物品价值 : 297  293  292  291  284  283  283  281  279  276  273  264  235  235  218  214  211  204  196  194  193  192  184  160  128  123  113  107  100  100   99   72   63   63   56   48   40   35   28   22   15   12    6

四、完整MATLAB代码

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
目标背包问题Multi-objective knapsack problem,简称MKP)是指在给定的n个物品和一个可装载重量为c的背包中,每个物品有m个不同的性质或价值,要求在不超过背包容量的前提下,选择一定数量的物品,使得m个目标函数的值最大(或最小)。 在处理MKP问题时,可以使用线性规划(LP)的方法来解决。LP的基本思想是:将目标函数和约束条件都转化为线性方程,然后使用线性规划程序求解。但是,由于MKP问题是一种NP难问题,全局最优解或者接近最优的解是非常难以求得的。 在matlab中,可以利用多目标优化工具箱(Multi-Objective Optimization Toolbox)来解决MKP问题。该工具箱提供了多种优化算法,如Pareto前沿、NSGA-II、MOGA等,可用于求解目标背包问题。其中,Pareto前沿算法是一种很常用的方法,其基本思想是在考虑多个目标函数的情况下,通过寻找最优的平衡点得到最优解。NSGA-II和MOGA算法也是比较流行的算法,可以根据具体问题选择不同算法。 除了多目标优化工具箱,matlab提供了一些函数可以用于MKP问题的求解,如knapsack函数和intlinprog函数等。其中,knapsack函数可用于求解小规模的MKP问题,而intlinprog函数可以用于求解大规模、复杂的MKP问题。这些函数都可以轻松实现对MKP问题的求解。 总之,在matlab中处理MKP问题,可以利用多目标优化工具箱、knapsack函数、intlinprog函数等,选择不同的算法和函数根据问题的规模和具体特点进行求解,从而找到最优解或接近最优的解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值