# BLEAQ2
Version uploaded on 22nd April 2017
Readme file for Bilevel Evolutionary Algorithm based on Quadratic Approximations - Version 2
Quick instruction for execution:
------------------------------------------------------------------------
Code the upper level optimization task in ulExternalProblem.m
Code the lower level optimization task in llExternalProblem.m
xu and xl are the upper and lower level decision vectors respectively
Provide the problem and algorithm parameters in externalProblem.m
Execute it as: externalProblem()
The code is written for maximization at both levels. Feasibility is given as g(x)<=0 and h(x)=0.
The code also allows handling of multiple objectives at upper level. Check the sample implementation in externalProblemMulti.m
BLEAQ2
------------------------------------------------------------------------
BLEAQ2 is the second version of a computationally efficient evolutionary algorithm for non-linear bilevel optimization problems. More information about the working of the algorithm can be found from the following paper.
Sinha, Ankur, Zhichao Lu, Kalyanmoy Deb, and Pekka Malo, "Bilevel Optimization based on Iterative Approximation of Multiple Mappings." Journal of Heuristics (2019 Forthcoming).
Sinha, Ankur, Zhichao Lu, Kalyanmoy Deb, and Pekka Malo, "Bilevel Optimization based on Iterative Approximation of Multiple Mappings." arXiv preprint arXiv:1702.03394 (2017).
The current implementation is built on earlier versions and also supports solving bilevel optimization problems with multiple objectives at the upper level. Following papers provide further information about the algorithm.
BLEAQ Papers (First version)
Sinha, Ankur, Pekka Malo, and Kalyanmoy Deb. "Evolutionary algorithm for bilevel optimization using approximations of the lower level optimal solution mapping." European Journal of Operational Research 257.2 (2017): 395-411.
Sinha, Ankur, Pekka Malo, and Kalyanmoy Deb. "Efficient evolutionary algorithm for single-objective bilevel optimization." arXiv preprint arXiv:1303.3901 (2013).
Sinha, Ankur, Pekka Malo, and Kalyanmoy Deb. "An improved bilevel evolutionary algorithm based on Quadratic Approximations." In 2014 IEEE Congress on Evolutionary Computation, 2014.
m-BLEAQ Papers (For multiobjective bilevel problems)
Sinha, Ankur, Pekka Malo, Kalyanmoy Deb, Pekka Korhonen, and Jyrki Wallenius. "Solving bilevel multicriterion optimization problems with lower level decision uncertainty." IEEE Transactions on Evolutionary Computation 20, no. 2 (2016): 199-217.
Sinha, Ankur, Pekka Malo, and Kalyanmoy Deb. "Towards understanding bilevel multi-objective optimization with deterministic lower level decisions." International Conference on Evolutionary Multi-Criterion Optimization. Springer International Publishing, 2015.
Files in the package
------------------------------------------------------------------------
There are the following Matlab (.m) files in this package:
ulSearch.m: Performs search at the upper level.
llSearch.m: Performs search at the lower level.
quadApprox.m: Supporting file for quadratic creating quadratic approximations.
ulTestProblem.m: Source code for upper level SMD and TP suite.
llTestProblem.m: Source code for lower level SMD and TP suite.
ulExternalProblem.m: Source code for upper level optimization task for a user defined problem.
ulExternalProblem.m: Source code for lower level optimization task for a user defined problem
terminationCheck.m: Source code for the termination criteria used in the algorithm. This can be modified based on the user's requirements.
smd1.m - smd14.m: These files contain the problem and algorithm parameters for SMD-Suite. The implementation for the test problems can be found in the ulTestProblem.m and llTestProblem.m files.
tp1.m - tp10.m: These files contain the problem and algorithm parameters for TP-Suite. The implementation for the test problems can be found in the ulTestProblem.m and llTestProblem.m files.
externalProblem.m: It contains the problem and algorithm parameters for a user defined problem.
msmd1: This file contains the problem and algorithm parameters for a sample multiobjective bilevel optimization problem. The implementation for the test problem can be found in the ulTestProblem.m and llTestProblem.m files.
Following are other supporting files
------------------------------------------------------------------------
calculateCrowdingDistance.m
nonDominatedSorting.m
getMappings.m
getLowerLevelVariableFromMapping.m
getOptimalSolutionSMD.m
Executing a user-defined problem
------------------------------------------------------------------------
To execute a user-defined problem, code the upper level optimization task in ulExternalProblem.m and the lower level optimization task in llExternalProblem.m. The functions inside the files contain arguments xu and xl, which represent the upper level decision vector and lower level decision vector respectively.
Provide the problem and algorithm parameters for user-defined problem in externalProblem.m and call the following command to execute the user-defined bilevel optimization task.
externalProblem()
The results of the execution are printed on the screen as well as stored in 'externalProblem.mat'. A sample bilevel optimization problem is already coded as an external problem.
Problem parameters to be defined in externalProblem.m
ulDim: Number of dimensions at upper level.
llDim: Number of dimensions at lower level.
ulDimMax: Vector defining maximum values for upper level variables.
ulDimMin: Vector defining minimum values for upper level variables.
llDimMax: Vector defining maximum values for lower level variables.
llDimMin: Vector defining minimum values for lower level variables.
Algorithm parameters to be defined in externalProblem.m
ulPopSize: Upper level population size.
llPopSize: Lower level population size.
ulMaxGens: Upper level maximum generations.
llMaxGens: Lower level maximum generations.
ulStoppingCriteria: Stopping parameter at upper level. Smaller the value higher the accuracy.
llStoppingCriteria: Stopping parameter at lower level. Smaller the value higher the accuracy.
There are other parameters in the algorithm. However, most of them are either adaptive or not necessary to be adjusted.
Output of the execution
ulEliteFunctionValue: Upper level function value for the elite member.
llEliteFunctionValue: Lower level function value for the elite member.
ulEliteIndiv: Upper level elite member.
llEliteIndiv: Lower level elite member.
ulFunctionEvaluations: Upper level function evaluations required during the exection.
llFunctionEvaluations: Lower level function evaluations required during the exection.
Executing the SMD or TP suite
------------------------------------------------------------------------
To execute one of the SMD test problems (say SMD1), the following command needs to be called:
smd1()
This executes the SMD1 test problem with problem and algorithm parameters coded in smd1.m. It executes a 5 variable SMD1 problem with 2 upper level variables and 3 lower level variables. The results are printed on the screen as well as stored in 'smd1.mat'
To execute one of the problems in TP-Suite (say TP1), the following command needs to be called:
tp1()
This executes tp1 with problem and algorithm parameters coded in tp1.m. The results are printed on the screen as well as stored in 'tp1.mat'
Contact
------------------------------------------------------------------------
In case you have any questions, comments, suggestions, or you want to report any bugs, you can send an email to Ankur Sinha ([email protected])
Ankur Sinha, PhD
Indian Institute of Management
Ahmedabad, India
[email protected]
没有合适的资源?快使用搜索试试~ 我知道了~
基于双层优化算法求解单目标问题附matlab源码 上传.zip
共46个文件
m:41个
mat:4个
md:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 3 下载量 188 浏览量
2022-10-16
10:48:18
上传
评论 1
收藏 60KB ZIP 举报
温馨提示
1.版本:matlab2019a,不会运行可私信 2.领域:【智能优化算法-双层优化算法】 3.内容:基于双层优化算法求解单目标问题附matlab源码 4.适合人群:本科,硕士等教研学习使用
资源推荐
资源详情
资源评论
收起资源包目录
【智能优化算法-双层优化算法】基于双层优化算法求解单目标问题附matlab源码 上传.zip (46个子文件)
smd8.m 2KB
ulSearch.m 50KB
llSearch.m 43KB
smd2.m 2KB
tp10.m 1KB
quadApprox.m 3KB
externalProblem_temp.mat 6KB
doLocalSearch2.m 14KB
getOptimalSolutionSMD.m 5KB
tp2.m 1KB
tp5.m 1KB
smd1_temp.mat 2KB
smd14.m 2KB
externalProblem.m 1KB
tp7.m 1KB
smd4.m 2KB
llTestProblem.m 17KB
calculateCrowdingDistance.m 1KB
smd3.m 2KB
tp8.m 1KB
tp1.m 1KB
smd12.m 2KB
tp3.m 1KB
terminationCheck.m 6KB
smd13.m 2KB
smd5.m 2KB
getMappings.m 4KB
getLowerLevelVariableFromMapping.m 7KB
smd9.m 2KB
smd1.mat 2KB
tp6.m 1KB
ulExternalProblem.m 527B
ulTestProblem.m 19KB
msmd1.m 1KB
smd10.m 2KB
tp4.m 1KB
initialization.m 10KB
nonDominatedSorting.m 943B
smd6.m 2KB
README.md 8KB
smd7.m 2KB
smd1.m 2KB
tp9.m 1KB
externalProblem.mat 1KB
smd11.m 2KB
llExternalProblem.m 529B
共 46 条
- 1
资源评论
- zzkq11123323132022-12-18资源内容详尽,对我有使用价值,谢谢资源主的分享。
- 莫若凡尘2023-04-13资源使用价值高,内容详实,给了我很多新想法,感谢大佬分享~
- Fernx2023-04-06这个资源对我启发很大,受益匪浅,学到了很多,谢谢分享~
天天Matlab科研工作室
- 粉丝: 3w+
- 资源: 7258
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功