Skip to content

Commit

Permalink
documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
blankjul committed Apr 17, 2019
1 parent a6cdc1e commit 79eed2d
Show file tree
Hide file tree
Showing 24 changed files with 806 additions and 74 deletions.
71 changes: 56 additions & 15 deletions doc/source/algorithms/genetic_algorithm.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -13,25 +13,58 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"## Genetic Algorithm\n",
"\n",
"A simple genetic algorithm to solve single-objective problems.\n"
"This class represents a basic ($\\mu+\\lambda$) genetic algorithm for single-objective problems. The figure below shows the flow of a genetic algorithm in general. In the following, it is explained how *pymoo* does allow to customize the modules.\n",
"\n",
"1) **Initial Population:**: A starting population is sampled in the beginning. In this framework, this can be either a [Sampling](/components/sampling.html) object, which defines different initial sampling strategies, or [Population](/api/model.html#pymoo.model.population.Population) where the X and F values are set, or a simple numpy array (pop_size x n_var).\n",
"\n",
"2) **Evaluation:** It is executed using the problem defined to be solved.\n",
"\n",
"3) **Survival:** It is very often the core of the genetic algorithm that is used. For simple single-objective genetic algorithm, the individuals can be sorted by their fitness and survival of the fittest can be applied.\n",
"\n",
"4) [Selection](/components/selection.html): In the beginning of the recombination process individuals need to be slected to participate in mating. Depending on the recombination crossover a different number of parents is is used to select some individual to be the parents of a new offspring. Different kind of selections can increase the convergence of the algorithm.\n",
"\n",
"5) [Crossover](/components/crossover.html): When the parents are selected the actual mating is done. A crossover operator combines parents into one or several offspring. Commonly, problem information, such as the variable bounds, are needed to perform the mating. For more customized problems even more information might be necessary (e.g. current generation, diversity meausre of the population, ...)\n",
"\n",
"6) [Mutation](/components/mutation.html): It is performed after the offsprings are created through crossover. Usually, the mutation is executed with a predefined probability. This operator helps to increase the diversity in the population.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div style=\"display: block;margin-left: auto;margin-right: auto;width: 60%;\">\n",
"![ga_basic](../resources/images/ga_basic.png)\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Example"
]
},
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Best solution found: [0.98832869 0.94839612 0.98956022 0.99875595 0.9947746 0.80696085\n",
" 0.95649082 0.95138915 0.98460919 2.76442735 2.40642682 2.58967546\n",
" 0.90119026]\n",
"Function value: [-12.99569795]\n"
"Best solution found: \n",
"X = [-12.12776522]\n",
"F = [0.9943605 0.98738402 0.9984647 0.01348799 0.9752022 0.98865093\n",
" 0.98435692 0.93760567 0.98038214 0.96027945 2.71498595 2.76819084\n",
" 0.98262873]\n"
]
}
],
Expand All @@ -45,22 +78,30 @@
" method='ga',\n",
" method_args={\n",
" 'pop_size': 100,\n",
" 'eliminate_duplicates': False,\n",
" 'eliminate_duplicates': True,\n",
" },\n",
" termination=('n_gen', 50),\n",
" disp=False)\n",
"\n",
"print(\"Best solution found: %s\" % res.X)\n",
"print(\"Function value: %s\" % res.F)\n",
"\n"
"print(\"Best solution found: \\nX = %s\\nF = %s\" % (res.F, res.X))"
]
},
{
"cell_type": "code",
"execution_count": null,
"cell_type": "markdown",
"metadata": {},
"outputs": [],
"source": []
"source": [
"### API"
]
},
{
"cell_type": "raw",
"metadata": {
"raw_mimetype": "text/restructuredtext"
},
"source": [
".. autofunction:: pymoo.algorithms.so_genetic_algorithm.ga\n",
" :noindex:"
]
}
],
"metadata": {
Expand Down
1 change: 1 addition & 0 deletions doc/source/algorithms/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ Algorithms
differential_evolution
genetic_algorithm
nsga2
rnsga2
nsga3
unsga3
rnsga3
Expand Down
53 changes: 41 additions & 12 deletions doc/source/algorithms/nsga2.ipynb

Large diffs are not rendered by default.

76 changes: 71 additions & 5 deletions doc/source/algorithms/nsga3.ipynb

Large diffs are not rendered by default.

149 changes: 149 additions & 0 deletions doc/source/algorithms/rnsga2.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
{
"cells": [
{
"cell_type": "raw",
"metadata": {
"raw_mimetype": "text/restructuredtext"
},
"source": [
".. _nb_rnsga2:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## R-NSGA-II"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div style=\"display: block;margin-left: auto;margin-right: auto;width: 80%;\">\n",
"![nsga2_survival](../resources/images/nsga2_survival.png)\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div style=\"display: block;margin-left: auto;margin-right: auto;width: 50%;\">\n",
"![nsga2_crowding](../resources/images/nsga2_crowding.png)\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Example"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"\n",
"from pymoo.optimize import minimize\n",
"from pymoo.util import plotting\n",
"from pymop.factory import get_problem\n",
"\n",
"problem = get_problem(\"zdt1\", n_var=30)\n",
"pf = problem.pareto_front()\n",
"\n",
"# create the reference directions to be used for the optimization\n",
"ref_points = np.array([[0.5, 0.2], [0.1, 0.6]])\n",
"\n",
"res = minimize(problem,\n",
" method='rnsga2',\n",
" method_args={\n",
" 'pop_size': 40,\n",
" 'ref_points': ref_points,\n",
" 'epsilon': 0.01,\n",
" 'normalization': 'front',\n",
" 'survival_type': \"closest\",\n",
" 'extreme_points_as_reference_points': False,\n",
" 'weights': np.array([0.5, 0.5])\n",
" },\n",
" save_history=True,\n",
" termination=('n_gen', 250),\n",
" seed=1,\n",
" pf=pf,\n",
" disp=False)\n",
"\n",
"plotting.plot(pf, res.F, ref_points, show=True, labels=['pf', 'F', 'ref_points'])\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### API"
]
},
{
"cell_type": "raw",
"metadata": {
"raw_mimetype": "text/restructuredtext"
},
"source": [
".. autofunction:: pymoo.algorithms.rnsga2.rnsga2\n",
" :noindex:"
]
}
],
"metadata": {
"celltoolbar": "Raw Cell Format",
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
2 changes: 1 addition & 1 deletion doc/source/api/algorithms.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Algorithms

.. autofunction:: pymoo.algorithms.nsga2.nsga2

.. autofunction:: pymoo.algorithms.rnsga2.rnsga2
.. autofunction:: pymoo.algorithms.rnsga2.rnsga2p

.. autofunction:: pymoo.algorithms.nsga3.nsga3

Expand Down
Loading

0 comments on commit 79eed2d

Please sign in to comment.