Skip to content

Commit c525dcd

Browse files
committed
Release new alpha version 2.5.4a6
1 parent 44b19e9 commit c525dcd

File tree

6 files changed

+120
-86
lines changed

6 files changed

+120
-86
lines changed

ChangeLog.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,12 @@ Different versions of mealpy in terms of passing hyper-parameters. So please car
2323
+ amend_position() from problem. This means for problem level (transform to the correct solution)
2424
+ Fix bugs coefficients in GWO-based optimizers.
2525
+ Fig bug self.epoch in SCSO optimizer.
26+
+ Fix bug self.dyn_pop_size when pop_size is small value
27+
+ Move SHADE-based optimizers from DE to SHADE module in evolutionary_based group
28+
+ Add Improved Grey Wolf Optimization (IGWO) in GWO algorithm
29+
+ Add Tabu Search (TS) to math-based group
30+
+ Add get_all_optimizers() and get_optimizer_by_name() in Mealpy
31+
2632

2733

2834
# Version 2.5.3

README.md

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ MEALPY is the largest python library for most of the cutting-edge nature-inspire
3131
approximate optimization.
3232

3333
* **Free software:** GNU General Public License (GPL) V3 license
34-
* **Total algorithms**: 174 (102 original, 45 official variants, 27 developed variants)
34+
* **Total algorithms**: 175 (102 original, 46 official variants, 27 developed variants)
3535
* **Documentation:** https://mealpy.readthedocs.io/en/latest/
3636
* **Python versions:** 3.7.x, 3.8.x, 3.9.x, 3.10.x, 3.11.x
3737
* **Dependencies:** numpy, scipy, pandas, matplotlib
@@ -60,7 +60,7 @@ $ pip install mealpy==2.5.3
6060

6161
### Install the alpha/beta version
6262
```sh
63-
$ pip install mealpy==2.5.4a5
63+
$ pip install mealpy==2.5.4a6
6464
```
6565

6666
### Install the pre-release version
@@ -80,6 +80,9 @@ After installation, you can import Mealpy as any other Python module:
8080
$ python
8181
>>> import mealpy
8282
>>> mealpy.__version__
83+
84+
>>> print(mealpy.get_all_optimizers())
85+
>>> model = mealpy.get_optimizer_by_name("OriginalWOA")(epoch=100, pop_size=50)
8386
```
8487

8588
Let's go through a basic and advanced example.
@@ -364,14 +367,14 @@ All visualization examples: [Link](https://mealpy.readthedocs.io/en/latest/pages
364367
* Issue tracker: https://github.com/thieu1995/mealpy/issues
365368
* Notable changes log: https://github.com/thieu1995/mealpy/blob/master/ChangeLog.md
366369
* Examples with different meapy version: https://github.com/thieu1995/mealpy/blob/master/EXAMPLES.md
370+
* Official chat/support group: https://t.me/+fRVCJGuGJg1mNDg1
367371

368372
* This project also related to our another projects which are "meta-heuristics" and "neural-network", check it here
369373
* https://github.com/thieu1995/opfunu
370374
* https://github.com/thieu1995/metaheuristics
371375
* https://github.com/aiir-team
372-
373-
**Want to have an instant assistant? Join our telegram community at [link](https://t.me/+fRVCJGuGJg1mNDg1)**
374-
We share lots of information, questions, and answers there. You will get more support and knowledge there.
376+
* https://github.com/mafese
377+
* https://github.com/permetrics
375378

376379
### Cite Us
377380

@@ -383,7 +386,8 @@ If you are using mealpy in your project, we would appreciate citations:
383386
author={Van Thieu, Nguyen and Mirjalili, Seyedali},
384387
journal={Journal of Systems Architecture},
385388
year={2023},
386-
publisher={Elsevier}
389+
publisher={Elsevier},
390+
doi={10.1016/j.sysarc.2023.102871}
387391
}
388392
389393
@article{van2023groundwater,
@@ -393,7 +397,8 @@ If you are using mealpy in your project, we would appreciate citations:
393397
volume={617},
394398
pages={129034},
395399
year={2023},
396-
publisher={Elsevier}
400+
publisher={Elsevier},
401+
doi={10.1016/j.jhydrol.2022.129034}
397402
}
398403
```
399404

docs/source/pages/general/simple_guide.rst

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,26 +23,25 @@ Installation
2323

2424
**User Installation**
2525

26-
Install the [current PyPI release](https://pypi.python.org/pypi/mealpy):
26+
Install the `current PyPI release`_. ::
2727

28-
::
28+
$ pip install mealpy==2.5.3
2929

30-
$ pip install mealpy==2.5.0
30+
.. _current PyPI release: https://pypi.python.org/pypi/mealpy
3131

32-
Or install the development version from GitHub:
33-
34-
::
32+
Or install the development version from GitHub::
3533

3634
$ pip install git+https://github.com/thieu1995/mealpy
3735

3836

39-
Check the version of MEALPY:
40-
41-
::
37+
Check the version of MEALPY::
4238

4339
$ import mealpy
4440
$ mealpy.__version__
4541

42+
$ print(mealpy.get_all_optimizers())
43+
$ model = mealpy.get_optimizer_by_name("OriginalWOA")(epoch=100, pop_size=50)
44+
4645
----------------------
4746
Getting started in 30s
4847
----------------------
@@ -193,4 +192,4 @@ The returned results are 2 values :
193192
:maxdepth: 4
194193

195194
.. toctree::
196-
:maxdepth: 4
195+
:maxdepth: 4

docs/source/pages/support.rst

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,39 +2,53 @@
22
Cite Us
33
=======
44

5-
If you are using mealpy in your project, we would appreciate citations:
6-
7-
::
8-
9-
@software{nguyen_van_thieu_2022_6684223,
10-
author = {Nguyen Van Thieu and Seyedali Mirjalili},
11-
title = {{MEALPY: a Framework of The State-of-The-Art Meta-Heuristic Algorithms in Python}},
12-
month = jun,
13-
year = 2022,
14-
publisher = {Zenodo},
15-
version = {v2.5.0},
16-
doi = {10.5281/zenodo.6684223},
17-
url = {https://doi.org/10.5281/zenodo.6684223}
5+
If you are using mealpy in your project, we would appreciate citations::
6+
7+
@article{van2023mealpy,
8+
title={MEALPY: An open-source library for latest meta-heuristic algorithms in Python},
9+
author={Van Thieu, Nguyen and Mirjalili, Seyedali},
10+
journal={Journal of Systems Architecture},
11+
year={2023},
12+
publisher={Elsevier},
13+
doi={10.1016/j.sysarc.2023.102871}
1814
}
1915

16+
@article{van2023groundwater,
17+
title={Groundwater level modeling using Augmented Artificial Ecosystem Optimization},
18+
author={Van Thieu, Nguyen and Barma, Surajit Deb and Van Lam, To and Kisi, Ozgur and Mahesha, Amai},
19+
journal={Journal of Hydrology},
20+
volume={617},
21+
pages={129034},
22+
year={2023},
23+
publisher={Elsevier},
24+
doi={10.1016/j.jhydrol.2022.129034}
25+
}
26+
```
27+
28+
2029
If you have an open-ended or a research question, you can contact me via [email protected]
2130

2231

2332
===============
2433
Important links
2534
===============
2635

36+
2737
* Official source code repo: https://github.com/thieu1995/mealpy
2838
* Official document: https://mealpy.readthedocs.io/
2939
* Download releases: https://pypi.org/project/mealpy/
3040
* Issue tracker: https://github.com/thieu1995/mealpy/issues
3141
* Notable changes log: https://github.com/thieu1995/mealpy/blob/master/ChangeLog.md
3242
* Examples with different meapy version: https://github.com/thieu1995/mealpy/blob/master/EXAMPLES.md
43+
* Official chat/support group: https://t.me/+fRVCJGuGJg1mNDg1
3344

34-
* This project also related to my another projects which are "meta-heuristics" and "neural-network", check it here
45+
* This project also related to our another projects which are "meta-heuristics" and "neural-network", check it here
3546
* https://github.com/thieu1995/opfunu
3647
* https://github.com/thieu1995/metaheuristics
3748
* https://github.com/aiir-team
49+
* https://github.com/mafese
50+
* https://github.com/permetrics
51+
3852

3953

4054
====================

run.py

Lines changed: 64 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323

2424
# from mealpy.utils.problem import Problem
2525
from mealpy import Problem
26+
from mealpy import get_all_optimizers, get_optimizer_by_name
27+
2628

2729
ndim = 30
2830
f18 = F292017(ndim, f_bias=0)
@@ -63,61 +65,69 @@ def fit_func(self, solution):
6365
P1 = Squared(lb=[-10, ] * 100, ub=[10, ] * 100, minmax="min")
6466

6567
if __name__ == "__main__":
66-
model = WOA.OriginalWOA(epoch, pop_size)
67-
model = OriginalBMO(epoch, pop_size)
68-
model = OriginalTPO(epoch, pop_size)
69-
model = OriginalEHO(epoch, pop_size)
70-
model = OriginalESOA(epoch, pop_size)
71-
model = T1.BaseBBO(epoch, pop_size)
72-
model = T2.OriginalBBO(epoch, pop_size)
73-
model = BaseBBO(epoch, pop_size)
74-
model = LARO(epoch, pop_size)
75-
model = OriginalARO(epoch, pop_size)
76-
model = MGTO(epoch, pop_size)
77-
model = EOA.OriginalEOA(epoch, pop_size)
78-
model = SBO.OriginalSBO(epoch, pop_size)
79-
model = SMA.OriginalSMA(epoch, pop_size)
80-
model = SOA.DevSOA(epoch, pop_size)
81-
model = MA.OriginalMA(epoch, pop_size)
82-
model = BRO.BaseBRO(epoch, pop_size)
83-
model = BSO.ImprovedBSO(epoch, pop_size)
84-
model = CHIO.BaseCHIO(epoch, pop_size)
85-
model = FBIO.OriginalFBIO(epoch, pop_size)
86-
model = HBO.OriginalHBO(epoch, pop_size)
87-
model = QSA.BaseQSA(epoch, pop_size)
88-
model = QSA.OriginalQSA(epoch, pop_size)
89-
model = QSA.OppoQSA(epoch, pop_size)
90-
model = QSA.ImprovedQSA(epoch, pop_size)
91-
model = SARO.BaseSARO(epoch, pop_size)
92-
model = SARO.OriginalSARO(epoch, pop_size)
93-
model = TLO.BaseTLO(epoch, pop_size)
94-
model = TLO.ImprovedTLO(epoch, pop_size)
95-
model = TLO.OriginalTLO(epoch, pop_size)
96-
model = PSS.OriginalPSS(epoch, pop_size)
97-
model = ASO.OriginalASO(epoch, pop_size)
98-
model = EO.ModifiedEO(epoch, pop_size)
99-
model = EO.AdaptiveEO(epoch, pop_size)
100-
model = EO.OriginalEO(epoch, pop_size)
101-
model = FLA.OriginalFLA(epoch, pop_size)
102-
model = BFO.OriginalBFO(epoch, pop_size)
103-
model = BFO.ABFO(epoch, pop_size)
104-
model = GJO.OriginalGJO(epoch, pop_size)
105-
model = GTO.Matlab102GTO(epoch, pop_size)
106-
model = HHO.OriginalHHO(epoch, pop_size)
107-
model = MPA.OriginalMPA(epoch, pop_size)
108-
model = SeaHO.OriginalSeaHO(epoch, pop_size)
109-
model = SRSR.OriginalSRSR(epoch, pop_size)
110-
model = AVOA.OriginalAVOA(epoch, pop_size)
111-
model = SA.OriginalSA(epoch, pop_size)
112-
model = BSO.OriginalBSO(epoch, pop_size)
68+
# model = WOA.OriginalWOA(epoch, pop_size)
69+
# model = OriginalBMO(epoch, pop_size)
70+
# model = OriginalTPO(epoch, pop_size)
71+
# model = OriginalEHO(epoch, pop_size)
72+
# model = OriginalESOA(epoch, pop_size)
73+
# model = T1.BaseBBO(epoch, pop_size)
74+
# model = T2.OriginalBBO(epoch, pop_size)
75+
# model = BaseBBO(epoch, pop_size)
76+
# model = LARO(epoch, pop_size)
77+
# model = OriginalARO(epoch, pop_size)
78+
# model = MGTO(epoch, pop_size)
79+
# model = EOA.OriginalEOA(epoch, pop_size)
80+
# model = SBO.OriginalSBO(epoch, pop_size)
81+
# model = SMA.OriginalSMA(epoch, pop_size)
82+
# model = SOA.DevSOA(epoch, pop_size)
83+
# model = MA.OriginalMA(epoch, pop_size)
84+
# model = BRO.BaseBRO(epoch, pop_size)
85+
# model = BSO.ImprovedBSO(epoch, pop_size)
86+
# model = CHIO.BaseCHIO(epoch, pop_size)
87+
# model = FBIO.OriginalFBIO(epoch, pop_size)
88+
# model = HBO.OriginalHBO(epoch, pop_size)
89+
# model = QSA.BaseQSA(epoch, pop_size)
90+
# model = QSA.OriginalQSA(epoch, pop_size)
91+
# model = QSA.OppoQSA(epoch, pop_size)
92+
# model = QSA.ImprovedQSA(epoch, pop_size)
93+
# model = SARO.BaseSARO(epoch, pop_size)
94+
# model = SARO.OriginalSARO(epoch, pop_size)
95+
# model = TLO.BaseTLO(epoch, pop_size)
96+
# model = TLO.ImprovedTLO(epoch, pop_size)
97+
# model = TLO.OriginalTLO(epoch, pop_size)
98+
# model = PSS.OriginalPSS(epoch, pop_size)
99+
# model = ASO.OriginalASO(epoch, pop_size)
100+
# model = EO.ModifiedEO(epoch, pop_size)
101+
# model = EO.AdaptiveEO(epoch, pop_size)
102+
# model = EO.OriginalEO(epoch, pop_size)
103+
# model = FLA.OriginalFLA(epoch, pop_size)
104+
# model = BFO.OriginalBFO(epoch, pop_size)
105+
# model = BFO.ABFO(epoch, pop_size)
106+
# model = GJO.OriginalGJO(epoch, pop_size)
107+
# model = GTO.Matlab102GTO(epoch, pop_size)
108+
# model = HHO.OriginalHHO(epoch, pop_size)
109+
# model = MPA.OriginalMPA(epoch, pop_size)
110+
# model = SeaHO.OriginalSeaHO(epoch, pop_size)
111+
# model = SRSR.OriginalSRSR(epoch, pop_size)
112+
# model = AVOA.OriginalAVOA(epoch, pop_size)
113+
# model = SA.OriginalSA(epoch, pop_size)
114+
# model = BSO.OriginalBSO(epoch, pop_size)
113115
# model = BSO.ImprovedBSO(epoch, pop_size)
114-
model = SCSO.OriginalSCSO(epoch, pop_size)
115-
model = TS.OriginalTS(epoch, pop_size=2, tabu_size=5, neighbour_size=20, perturbation_scale=0.05)
116-
model = GWO.OriginalGWO(epoch, pop_size)
117-
model = GWO.GWO_WOA(epoch, pop_size)
118-
model = GWO.RW_GWO(epoch, pop_size)
119-
model = GWO.IGWO(epoch, pop_size, a_min=0.02, a_max=1.6)
120-
best_position, best_fitness = model.solve(P1)#, mode="thread", n_workers=4, termination=term_dict1)
116+
# model = SCSO.OriginalSCSO(epoch, pop_size)
117+
# model = TS.OriginalTS(epoch, pop_size=2, tabu_size=5, neighbour_size=20, perturbation_scale=0.05)
118+
# model = GWO.OriginalGWO(epoch, pop_size)
119+
# model = GWO.GWO_WOA(epoch, pop_size)
120+
# model = GWO.RW_GWO(epoch, pop_size)
121+
122+
## 1st way
123+
# model = GWO.IGWO(epoch, pop_size, a_min=0.02, a_max=1.6)
124+
125+
for opt_name, opt_class in get_all_optimizers().items():
126+
print(f"{opt_name}: {opt_class}")
127+
128+
## 2nd way
129+
model = get_optimizer_by_name("IGWO")(epoch, pop_size, a_min=0.02, a_max=1.6)
130+
best_position, best_fitness = model.solve(P1, mode="thread", n_workers=4, termination=term_dict1)
121131

122132
print(best_position)
123133
print(model.get_parameters())

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def readme():
1515

1616
setup(
1717
name="mealpy",
18-
version="2.5.4-alpha.5",
18+
version="2.5.4-alpha.6",
1919
author="Thieu",
2020
author_email="[email protected]",
2121
description="MEALPY: An Open-source Library for Latest Meta-heuristic Algorithms in Python",

0 commit comments

Comments
 (0)