diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-15 04:37:38 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-15 04:37:38 +0000 |
commit | cc71da3acfeb2d6d5604237283d5490a70f6a585 (patch) | |
tree | 712f39f7131fdf04e9f0ab37f3e0329f9ae971db | |
parent | 8f8daaf9af9174a19604ce0a4715e86755cc2f8a (diff) |
automatic import of python-jmetalpy
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-jmetalpy.spec | 485 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 487 insertions, 0 deletions
@@ -0,0 +1 @@ +/jmetalpy-1.6.0.tar.gz diff --git a/python-jmetalpy.spec b/python-jmetalpy.spec new file mode 100644 index 0000000..1b6390a --- /dev/null +++ b/python-jmetalpy.spec @@ -0,0 +1,485 @@ +%global _empty_manifest_terminate_build 0 +Name: python-jmetalpy +Version: 1.6.0 +Release: 1 +Summary: Python version of the jMetal framework +License: MIT +URL: https://github.com/jMetal/jMetalPy +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/b7/29/ab3d41a6c5318ba8a438ad301e463ca1faa381c39f5c53871c86d3dfc504/jmetalpy-1.6.0.tar.gz +BuildArch: noarch + +Requires: python3-tqdm +Requires: python3-numpy +Requires: python3-pandas +Requires: python3-plotly +Requires: python3-matplotlib +Requires: python3-scipy +Requires: python3-statsmodels +Requires: python3-dask[complete] +Requires: python3-distributed +Requires: python3-pyspark +Requires: python3-isort +Requires: python3-black +Requires: python3-mypy +Requires: python3-mockito +Requires: python3-PyHamcrest +Requires: python3-isort +Requires: python3-black +Requires: python3-mypy +Requires: python3-dask[complete] +Requires: python3-distributed +Requires: python3-pyspark +Requires: python3-mockito +Requires: python3-PyHamcrest + +%description + + +[](https://github.com/jMetal/jMetalPy/actions/workflows/ci.yml) +[]() +[](https://doi.org/10.1016/j.swevo.2019.100598) +[]() +[](https://github.com/psf/black) + +A paper introducing jMetalPy is available at: https://doi.org/10.1016/j.swevo.2019.100598 + +### Table of Contents +- [Installation](#installation) +- [Usage](#hello-world-) +- [Features](#features) +- [Changelog](#changelog) +- [License](#license) + +## Installation + +You can install the latest version of jMetalPy with `pip`, + +```console +pip install jmetalpy # or "jmetalpy[distributed]" +``` + +<details><summary><b>Notes on installing with <tt>pip</tt></b></summary> +<p> + +jMetalPy includes features for parallel and distributed computing based on [pySpark](https://spark.apache.org/docs/latest/api/python/index.html) and [Dask](https://dask.org/). + +These (extra) dependencies are *not* automatically installed when running `pip`, which only comprises the core functionality of the framework (enough for most users): + +```console +pip install jmetalpy +``` + +This is the equivalent of running: + +```console +pip install "jmetalpy[core]" +``` + +Other supported commands are listed next: + +```console +pip install "jmetalpy[dev]" # Install requirements for development +pip install "jmetalpy[distributed]" # Install requirements for parallel/distributed computing +pip install "jmetalpy[complete]" # Install all requirements +``` + +</p> +</details> + +## Hello, world! 👋 + +Examples of configuring and running all the included algorithms are located [in the documentation](https://jmetal.github.io/jMetalPy/multiobjective.algorithms.html). + +```python +from jmetal.algorithm.multiobjective import NSGAII +from jmetal.operator import SBXCrossover, PolynomialMutation +from jmetal.problem import ZDT1 +from jmetal.util.termination_criterion import StoppingByEvaluations + +problem = ZDT1() + +algorithm = NSGAII( + problem=problem, + population_size=100, + offspring_population_size=100, + mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20), + crossover=SBXCrossover(probability=1.0, distribution_index=20), + termination_criterion=StoppingByEvaluations(max_evaluations=25000) +) + +algorithm.run() +``` + +We can then proceed to explore the results: + +```python +from jmetal.util.solution import get_non_dominated_solutions, print_function_values_to_file, \ + print_variables_to_file + +front = get_non_dominated_solutions(algorithm.get_result()) + +# save to files +print_function_values_to_file(front, 'FUN.NSGAII.ZDT1') +print_variables_to_file(front, 'VAR.NSGAII.ZDT1') +``` + +Or visualize the Pareto front approximation produced by the algorithm: + +```python +from jmetal.lab.visualization import Plot + +plot_front = Plot(title='Pareto front approximation', axis_labels=['x', 'y']) +plot_front.plot(front, label='NSGAII-ZDT1', filename='NSGAII-ZDT1', format='png') +``` + +<img src=docs/source/_static/NSGAII-ZDT1.png width=450 alt="Pareto front approximation"> + +## Features +The current release of jMetalPy (v1.5.7) contains the following components: + +* Algorithms: local search, genetic algorithm, evolution strategy, simulated annealing, random search, NSGA-II, NSGA-III, SMPSO, OMOPSO, MOEA/D, MOEA/D-DRA, MOEA/D-IEpsilon, GDE3, SPEA2, HYPE, IBEA. Preference articulation-based algorithms (G-NSGA-II, G-GDE3, G-SPEA2, SMPSO/RP); Dynamic versions of NSGA-II, SMPSO, and GDE3. +* Parallel computing based on Apache Spark and Dask. +* Benchmark problems: ZDT1-6, DTLZ1-2, FDA, LZ09, LIR-CMOP, unconstrained (Kursawe, Fonseca, Schaffer, Viennet2), constrained (Srinivas, Tanaka). +* Encodings: real, binary, permutations. +* Operators: selection (binary tournament, ranking and crowding distance, random, nary random, best solution), crossover (single-point, SBX), mutation (bit-blip, polynomial, uniform, random). +* Quality indicators: hypervolume, additive epsilon, GD, IGD. +* Pareto front approximation plotting in real-time, static or interactive. +* Experiment class for performing studies either alone or alongside [jMetal](https://github.com/jMetal/jMetal). +* Pairwise and multiple hypothesis testing for statistical analysis, including several frequentist and Bayesian testing methods, critical distance plots and posterior diagrams. + +|  |  | +|-------------- | ---------------- | +|  |  | + +## Changelog + +* [v1.6.0] Refactor class Problem, the single-objective genetic algorithm can solve constrained problems, performance improvements in NSGA-II, generation of Latex tables summarizing the results of the Wilcoxon rank sum test, added a notebook folder with examples. +* [v1.5.7] Use of linters for catching errors and formatters to fix style, minor bug fixes. +* [v1.5.6] Removed warnings when using Python 3.8. +* [v1.5.5] Minor bug fixes. +* [v1.5.4] Refactored quality indicators to accept numpy array as input parameter. +* [v1.5.4] Added [CompositeSolution](https://github.com/jMetal/jMetalPy/blob/master/jmetal/core/solution.py#L111) class to support mixed combinatorial problems. [#69](https://github.com/jMetal/jMetalPy/issues/69) + +## License + +This project is licensed under the terms of the MIT - see the [LICENSE](LICENSE) file for details. + + +%package -n python3-jmetalpy +Summary: Python version of the jMetal framework +Provides: python-jmetalpy +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-jmetalpy + + +[](https://github.com/jMetal/jMetalPy/actions/workflows/ci.yml) +[]() +[](https://doi.org/10.1016/j.swevo.2019.100598) +[]() +[](https://github.com/psf/black) + +A paper introducing jMetalPy is available at: https://doi.org/10.1016/j.swevo.2019.100598 + +### Table of Contents +- [Installation](#installation) +- [Usage](#hello-world-) +- [Features](#features) +- [Changelog](#changelog) +- [License](#license) + +## Installation + +You can install the latest version of jMetalPy with `pip`, + +```console +pip install jmetalpy # or "jmetalpy[distributed]" +``` + +<details><summary><b>Notes on installing with <tt>pip</tt></b></summary> +<p> + +jMetalPy includes features for parallel and distributed computing based on [pySpark](https://spark.apache.org/docs/latest/api/python/index.html) and [Dask](https://dask.org/). + +These (extra) dependencies are *not* automatically installed when running `pip`, which only comprises the core functionality of the framework (enough for most users): + +```console +pip install jmetalpy +``` + +This is the equivalent of running: + +```console +pip install "jmetalpy[core]" +``` + +Other supported commands are listed next: + +```console +pip install "jmetalpy[dev]" # Install requirements for development +pip install "jmetalpy[distributed]" # Install requirements for parallel/distributed computing +pip install "jmetalpy[complete]" # Install all requirements +``` + +</p> +</details> + +## Hello, world! 👋 + +Examples of configuring and running all the included algorithms are located [in the documentation](https://jmetal.github.io/jMetalPy/multiobjective.algorithms.html). + +```python +from jmetal.algorithm.multiobjective import NSGAII +from jmetal.operator import SBXCrossover, PolynomialMutation +from jmetal.problem import ZDT1 +from jmetal.util.termination_criterion import StoppingByEvaluations + +problem = ZDT1() + +algorithm = NSGAII( + problem=problem, + population_size=100, + offspring_population_size=100, + mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20), + crossover=SBXCrossover(probability=1.0, distribution_index=20), + termination_criterion=StoppingByEvaluations(max_evaluations=25000) +) + +algorithm.run() +``` + +We can then proceed to explore the results: + +```python +from jmetal.util.solution import get_non_dominated_solutions, print_function_values_to_file, \ + print_variables_to_file + +front = get_non_dominated_solutions(algorithm.get_result()) + +# save to files +print_function_values_to_file(front, 'FUN.NSGAII.ZDT1') +print_variables_to_file(front, 'VAR.NSGAII.ZDT1') +``` + +Or visualize the Pareto front approximation produced by the algorithm: + +```python +from jmetal.lab.visualization import Plot + +plot_front = Plot(title='Pareto front approximation', axis_labels=['x', 'y']) +plot_front.plot(front, label='NSGAII-ZDT1', filename='NSGAII-ZDT1', format='png') +``` + +<img src=docs/source/_static/NSGAII-ZDT1.png width=450 alt="Pareto front approximation"> + +## Features +The current release of jMetalPy (v1.5.7) contains the following components: + +* Algorithms: local search, genetic algorithm, evolution strategy, simulated annealing, random search, NSGA-II, NSGA-III, SMPSO, OMOPSO, MOEA/D, MOEA/D-DRA, MOEA/D-IEpsilon, GDE3, SPEA2, HYPE, IBEA. Preference articulation-based algorithms (G-NSGA-II, G-GDE3, G-SPEA2, SMPSO/RP); Dynamic versions of NSGA-II, SMPSO, and GDE3. +* Parallel computing based on Apache Spark and Dask. +* Benchmark problems: ZDT1-6, DTLZ1-2, FDA, LZ09, LIR-CMOP, unconstrained (Kursawe, Fonseca, Schaffer, Viennet2), constrained (Srinivas, Tanaka). +* Encodings: real, binary, permutations. +* Operators: selection (binary tournament, ranking and crowding distance, random, nary random, best solution), crossover (single-point, SBX), mutation (bit-blip, polynomial, uniform, random). +* Quality indicators: hypervolume, additive epsilon, GD, IGD. +* Pareto front approximation plotting in real-time, static or interactive. +* Experiment class for performing studies either alone or alongside [jMetal](https://github.com/jMetal/jMetal). +* Pairwise and multiple hypothesis testing for statistical analysis, including several frequentist and Bayesian testing methods, critical distance plots and posterior diagrams. + +|  |  | +|-------------- | ---------------- | +|  |  | + +## Changelog + +* [v1.6.0] Refactor class Problem, the single-objective genetic algorithm can solve constrained problems, performance improvements in NSGA-II, generation of Latex tables summarizing the results of the Wilcoxon rank sum test, added a notebook folder with examples. +* [v1.5.7] Use of linters for catching errors and formatters to fix style, minor bug fixes. +* [v1.5.6] Removed warnings when using Python 3.8. +* [v1.5.5] Minor bug fixes. +* [v1.5.4] Refactored quality indicators to accept numpy array as input parameter. +* [v1.5.4] Added [CompositeSolution](https://github.com/jMetal/jMetalPy/blob/master/jmetal/core/solution.py#L111) class to support mixed combinatorial problems. [#69](https://github.com/jMetal/jMetalPy/issues/69) + +## License + +This project is licensed under the terms of the MIT - see the [LICENSE](LICENSE) file for details. + + +%package help +Summary: Development documents and examples for jmetalpy +Provides: python3-jmetalpy-doc +%description help + + +[](https://github.com/jMetal/jMetalPy/actions/workflows/ci.yml) +[]() +[](https://doi.org/10.1016/j.swevo.2019.100598) +[]() +[](https://github.com/psf/black) + +A paper introducing jMetalPy is available at: https://doi.org/10.1016/j.swevo.2019.100598 + +### Table of Contents +- [Installation](#installation) +- [Usage](#hello-world-) +- [Features](#features) +- [Changelog](#changelog) +- [License](#license) + +## Installation + +You can install the latest version of jMetalPy with `pip`, + +```console +pip install jmetalpy # or "jmetalpy[distributed]" +``` + +<details><summary><b>Notes on installing with <tt>pip</tt></b></summary> +<p> + +jMetalPy includes features for parallel and distributed computing based on [pySpark](https://spark.apache.org/docs/latest/api/python/index.html) and [Dask](https://dask.org/). + +These (extra) dependencies are *not* automatically installed when running `pip`, which only comprises the core functionality of the framework (enough for most users): + +```console +pip install jmetalpy +``` + +This is the equivalent of running: + +```console +pip install "jmetalpy[core]" +``` + +Other supported commands are listed next: + +```console +pip install "jmetalpy[dev]" # Install requirements for development +pip install "jmetalpy[distributed]" # Install requirements for parallel/distributed computing +pip install "jmetalpy[complete]" # Install all requirements +``` + +</p> +</details> + +## Hello, world! 👋 + +Examples of configuring and running all the included algorithms are located [in the documentation](https://jmetal.github.io/jMetalPy/multiobjective.algorithms.html). + +```python +from jmetal.algorithm.multiobjective import NSGAII +from jmetal.operator import SBXCrossover, PolynomialMutation +from jmetal.problem import ZDT1 +from jmetal.util.termination_criterion import StoppingByEvaluations + +problem = ZDT1() + +algorithm = NSGAII( + problem=problem, + population_size=100, + offspring_population_size=100, + mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20), + crossover=SBXCrossover(probability=1.0, distribution_index=20), + termination_criterion=StoppingByEvaluations(max_evaluations=25000) +) + +algorithm.run() +``` + +We can then proceed to explore the results: + +```python +from jmetal.util.solution import get_non_dominated_solutions, print_function_values_to_file, \ + print_variables_to_file + +front = get_non_dominated_solutions(algorithm.get_result()) + +# save to files +print_function_values_to_file(front, 'FUN.NSGAII.ZDT1') +print_variables_to_file(front, 'VAR.NSGAII.ZDT1') +``` + +Or visualize the Pareto front approximation produced by the algorithm: + +```python +from jmetal.lab.visualization import Plot + +plot_front = Plot(title='Pareto front approximation', axis_labels=['x', 'y']) +plot_front.plot(front, label='NSGAII-ZDT1', filename='NSGAII-ZDT1', format='png') +``` + +<img src=docs/source/_static/NSGAII-ZDT1.png width=450 alt="Pareto front approximation"> + +## Features +The current release of jMetalPy (v1.5.7) contains the following components: + +* Algorithms: local search, genetic algorithm, evolution strategy, simulated annealing, random search, NSGA-II, NSGA-III, SMPSO, OMOPSO, MOEA/D, MOEA/D-DRA, MOEA/D-IEpsilon, GDE3, SPEA2, HYPE, IBEA. Preference articulation-based algorithms (G-NSGA-II, G-GDE3, G-SPEA2, SMPSO/RP); Dynamic versions of NSGA-II, SMPSO, and GDE3. +* Parallel computing based on Apache Spark and Dask. +* Benchmark problems: ZDT1-6, DTLZ1-2, FDA, LZ09, LIR-CMOP, unconstrained (Kursawe, Fonseca, Schaffer, Viennet2), constrained (Srinivas, Tanaka). +* Encodings: real, binary, permutations. +* Operators: selection (binary tournament, ranking and crowding distance, random, nary random, best solution), crossover (single-point, SBX), mutation (bit-blip, polynomial, uniform, random). +* Quality indicators: hypervolume, additive epsilon, GD, IGD. +* Pareto front approximation plotting in real-time, static or interactive. +* Experiment class for performing studies either alone or alongside [jMetal](https://github.com/jMetal/jMetal). +* Pairwise and multiple hypothesis testing for statistical analysis, including several frequentist and Bayesian testing methods, critical distance plots and posterior diagrams. + +|  |  | +|-------------- | ---------------- | +|  |  | + +## Changelog + +* [v1.6.0] Refactor class Problem, the single-objective genetic algorithm can solve constrained problems, performance improvements in NSGA-II, generation of Latex tables summarizing the results of the Wilcoxon rank sum test, added a notebook folder with examples. +* [v1.5.7] Use of linters for catching errors and formatters to fix style, minor bug fixes. +* [v1.5.6] Removed warnings when using Python 3.8. +* [v1.5.5] Minor bug fixes. +* [v1.5.4] Refactored quality indicators to accept numpy array as input parameter. +* [v1.5.4] Added [CompositeSolution](https://github.com/jMetal/jMetalPy/blob/master/jmetal/core/solution.py#L111) class to support mixed combinatorial problems. [#69](https://github.com/jMetal/jMetalPy/issues/69) + +## License + +This project is licensed under the terms of the MIT - see the [LICENSE](LICENSE) file for details. + + +%prep +%autosetup -n jmetalpy-1.6.0 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-jmetalpy -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 1.6.0-1 +- Package Spec generated @@ -0,0 +1 @@ +dfa2c42e060b51438da917657267e983 jmetalpy-1.6.0.tar.gz |