File: evolving_a_population.rst

package info (click to toggle)
pagmo 2.19.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 85,228 kB
  • sloc: cpp: 1,753,592; makefile: 223; sh: 121; python: 46
file content (33 lines) | stat: -rw-r--r-- 1,168 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
.. _cpp_tutorial_evolving_population:

Evolving a population
=====================

Solving an optimization problem using an optimization algorithm is, in pagmo,
described as *evolving* a population. In the scientific literature, an
interesting
discussion has developed over the past decades on whether evolution is or not
a form of
optimization. In pagmo we take the opposite standpoint and we regard
optimization,
of all types, as a form of evolution. Regardless on whether you will
be using an SQP,
an interior point optimizer or an evolutionary strategy solver, in pagmo you
will always have to call a method called ``evolve()`` to improve over your
initial solutions,
i.e., your *population*.

After following the :ref:`installation guide <install>`,
you will be able to compile and run
C++ pagmo programs. The following example shows the use with no
multithreading of an algorithmic evolution:

.. literalinclude:: ../../../../../tutorials/nsga2_example.cpp
   :language: c++
   :linenos:

Place it into a ``nsga2.cpp`` text file and compile it (for example) with:

.. code-block:: console

   $ g++ -O2 -DNDEBUG -std=c++17 nsga2.cpp -ltbb -lboost_serialization