From 1a8985e2a51f41a1ad140074e6ab23f14cb5b668 Mon Sep 17 00:00:00 2001 From: Bill Huang Date: Thu, 3 Aug 2023 22:43:17 +0800 Subject: [PATCH] docs: add new contents --- docs/source/api/algorithms/mo/index.rst | 1 + docs/source/api/algorithms/mo/nsga3.rst | 7 +++ docs/source/api/monitors/evoxvis.rst | 7 +++ docs/source/api/monitors/index.rst | 10 +++++ docs/source/api/monitors/std_mo.rst | 7 +++ docs/source/api/monitors/std_so.rst | 7 +++ docs/source/api/pipelines/distributed.rst | 8 ++-- docs/source/api/pipelines/index.rst | 3 +- docs/source/api/pipelines/uni.rst | 7 +++ docs/source/api/problems/classic/dtlz.rst | 43 +++++++++++++++++++ docs/source/api/problems/classic/griewank.rst | 7 +++ docs/source/api/problems/classic/index.rst | 4 ++ .../source/api/problems/classic/rastrigin.rst | 7 +++ .../api/problems/classic/rosenbrock.rst | 7 +++ docs/source/api/problems/rl/brax.rst | 7 +++ docs/source/api/problems/rl/index.rst | 3 +- src/evox/problems/rl/brax.py | 18 ++++++++ 17 files changed, 147 insertions(+), 6 deletions(-) create mode 100644 docs/source/api/algorithms/mo/nsga3.rst create mode 100644 docs/source/api/monitors/evoxvis.rst create mode 100644 docs/source/api/monitors/index.rst create mode 100644 docs/source/api/monitors/std_mo.rst create mode 100644 docs/source/api/monitors/std_so.rst create mode 100644 docs/source/api/pipelines/uni.rst create mode 100644 docs/source/api/problems/classic/dtlz.rst create mode 100644 docs/source/api/problems/classic/griewank.rst create mode 100644 docs/source/api/problems/classic/rastrigin.rst create mode 100644 docs/source/api/problems/classic/rosenbrock.rst create mode 100644 docs/source/api/problems/rl/brax.rst diff --git a/docs/source/api/algorithms/mo/index.rst b/docs/source/api/algorithms/mo/index.rst index 00e275a4..88a5f25b 100644 --- a/docs/source/api/algorithms/mo/index.rst +++ b/docs/source/api/algorithms/mo/index.rst @@ -8,4 +8,5 @@ Multi-objective ibea moead nsga2 + nsga3 rvea \ No newline at end of file diff --git a/docs/source/api/algorithms/mo/nsga3.rst b/docs/source/api/algorithms/mo/nsga3.rst new file mode 100644 index 00000000..4c217a1e --- /dev/null +++ b/docs/source/api/algorithms/mo/nsga3.rst @@ -0,0 +1,7 @@ +======== +NSGA-III +======== + +.. autoclass:: evox.algorithms.NSGA3 + :members: + :inherited-members: \ No newline at end of file diff --git a/docs/source/api/monitors/evoxvis.rst b/docs/source/api/monitors/evoxvis.rst new file mode 100644 index 00000000..517ff051 --- /dev/null +++ b/docs/source/api/monitors/evoxvis.rst @@ -0,0 +1,7 @@ +=============== +EvoXVis Monitor +=============== + +.. autoclass:: evox.monitors.EvoXVis + :members: + :inherited-members: diff --git a/docs/source/api/monitors/index.rst b/docs/source/api/monitors/index.rst new file mode 100644 index 00000000..20e9cff1 --- /dev/null +++ b/docs/source/api/monitors/index.rst @@ -0,0 +1,10 @@ +======== +Monitors +======== + +.. toctree:: + :maxdepth: 1 + + std_so + std_mo + evoxvis \ No newline at end of file diff --git a/docs/source/api/monitors/std_mo.rst b/docs/source/api/monitors/std_mo.rst new file mode 100644 index 00000000..0f7269f6 --- /dev/null +++ b/docs/source/api/monitors/std_mo.rst @@ -0,0 +1,7 @@ +================================ +Standard Multi-objective Monitor +================================ + +.. autoclass:: evox.monitors.StdMOMonitor + :members: + :inherited-members: diff --git a/docs/source/api/monitors/std_so.rst b/docs/source/api/monitors/std_so.rst new file mode 100644 index 00000000..629db297 --- /dev/null +++ b/docs/source/api/monitors/std_so.rst @@ -0,0 +1,7 @@ +================================= +Standard Single-objective Monitor +================================= + +.. autoclass:: evox.monitors.StdSOMonitor + :members: + :inherited-members: diff --git a/docs/source/api/pipelines/distributed.rst b/docs/source/api/pipelines/distributed.rst index a37d1f0a..a6221803 100644 --- a/docs/source/api/pipelines/distributed.rst +++ b/docs/source/api/pipelines/distributed.rst @@ -1,7 +1,7 @@ -==================== -Distributed Pipeline -==================== +============================== +Ray-based Distributed Workflow +============================== -.. autoclass:: evox.pipelines.DistributedPipeline +.. autoclass:: evox.pipelines.RayDistributedWorkflow :members: :inherited-members: diff --git a/docs/source/api/pipelines/index.rst b/docs/source/api/pipelines/index.rst index 5708fc94..5e1c8a2b 100644 --- a/docs/source/api/pipelines/index.rst +++ b/docs/source/api/pipelines/index.rst @@ -6,4 +6,5 @@ Pipelines :maxdepth: 1 standard - distributed \ No newline at end of file + distributed + uni \ No newline at end of file diff --git a/docs/source/api/pipelines/uni.rst b/docs/source/api/pipelines/uni.rst new file mode 100644 index 00000000..57f497ff --- /dev/null +++ b/docs/source/api/pipelines/uni.rst @@ -0,0 +1,7 @@ +================== +Universal Workflow +================== + +.. autoclass:: evox.pipelines.UniWorkflow + :members: + :inherited-members: diff --git a/docs/source/api/problems/classic/dtlz.rst b/docs/source/api/problems/classic/dtlz.rst new file mode 100644 index 00000000..385cd319 --- /dev/null +++ b/docs/source/api/problems/classic/dtlz.rst @@ -0,0 +1,43 @@ +=========== +DTLZ Family +=========== + +.. autoclass:: evox.problems.classic.DTLZ + :members: + :inherited-members: + +.. autoclass:: evox.problems.classic.DTLZ1 + :members: + :inherited-members: + +.. autoclass:: evox.problems.classic.DTLZ2 + :members: + :inherited-members: + +.. autoclass:: evox.problems.classic.DTLZ3 + :members: + :inherited-members: + +.. autoclass:: evox.problems.classic.DTLZ4 + :members: + :inherited-members: + +.. autoclass:: evox.problems.classic.DTLZ5 + :members: + :inherited-members: + +.. autoclass:: evox.problems.classic.DTLZ6 + :members: + :inherited-members: + +.. autoclass:: evox.problems.classic.DTLZ7 + :members: + :inherited-members: + +.. autoclass:: evox.problems.classic.DTLZ8 + :members: + :inherited-members: + +.. autoclass:: evox.problems.classic.DTLZ9 + :members: + :inherited-members: diff --git a/docs/source/api/problems/classic/griewank.rst b/docs/source/api/problems/classic/griewank.rst new file mode 100644 index 00000000..a672c782 --- /dev/null +++ b/docs/source/api/problems/classic/griewank.rst @@ -0,0 +1,7 @@ +======== +Griewank +======== + +.. autoclass:: evox.problems.classic.Griewank + :members: + :inherited-members: diff --git a/docs/source/api/problems/classic/index.rst b/docs/source/api/problems/classic/index.rst index e58b32a5..b4aa7f8c 100644 --- a/docs/source/api/problems/classic/index.rst +++ b/docs/source/api/problems/classic/index.rst @@ -6,5 +6,9 @@ Numerical Benchmarks :maxdepth: 1 ackley + dtlz + griewank + rastrigin + rosenbrock sphere zdt \ No newline at end of file diff --git a/docs/source/api/problems/classic/rastrigin.rst b/docs/source/api/problems/classic/rastrigin.rst new file mode 100644 index 00000000..5177fa12 --- /dev/null +++ b/docs/source/api/problems/classic/rastrigin.rst @@ -0,0 +1,7 @@ +========= +Rastrigin +========= + +.. autoclass:: evox.problems.classic.Rastrigin + :members: + :inherited-members: diff --git a/docs/source/api/problems/classic/rosenbrock.rst b/docs/source/api/problems/classic/rosenbrock.rst new file mode 100644 index 00000000..c70e2de9 --- /dev/null +++ b/docs/source/api/problems/classic/rosenbrock.rst @@ -0,0 +1,7 @@ +========== +Rosenbrock +========== + +.. autoclass:: evox.problems.classic.Rosenbrock + :members: + :inherited-members: diff --git a/docs/source/api/problems/rl/brax.rst b/docs/source/api/problems/rl/brax.rst new file mode 100644 index 00000000..842ca9ff --- /dev/null +++ b/docs/source/api/problems/rl/brax.rst @@ -0,0 +1,7 @@ +================== +Brax-based Problem +================== + +.. autoclass:: evox.problems.rl.Brax + :members: + :inherited-members: diff --git a/docs/source/api/problems/rl/index.rst b/docs/source/api/problems/rl/index.rst index 67e52ddf..1cd36aef 100644 --- a/docs/source/api/problems/rl/index.rst +++ b/docs/source/api/problems/rl/index.rst @@ -5,4 +5,5 @@ RL .. toctree:: :maxdepth: 1 - gym \ No newline at end of file + brax + gym diff --git a/src/evox/problems/rl/brax.py b/src/evox/problems/rl/brax.py index ef6e1067..9c84bff9 100644 --- a/src/evox/problems/rl/brax.py +++ b/src/evox/problems/rl/brax.py @@ -19,6 +19,24 @@ def __init__( cap_episode: int, fitness_is_neg_reward: bool = True, ): + """Contruct a brax-based problem + + Parameters + ---------- + policy + A function that accept two arguments + the first one is the parameter and the second is the input. + env_name + The environment name. + batch_size + The number of brax environments to run in parallel. + Usually this should match the population size at the algorithm side. + cap_episode + The maximum number episodes to run. + fitness_is_neg_reward + Whether to return the fitness value as the negative of reward or not. + Default to True. + """ self.batched_policy = jit(vmap(policy)) self.env = envs.wrappers.VmapWrapper(envs.create(env_name=env_name)) self.batch_size = batch_size