Skip to content

Commit

Permalink
modify reference format
Browse files Browse the repository at this point in the history
  • Loading branch information
Zhenyu2Liang committed Aug 23, 2023
1 parent 753da24 commit 3861c27
Show file tree
Hide file tree
Showing 16 changed files with 171 additions and 68 deletions.
17 changes: 12 additions & 5 deletions src/evox/algorithms/mo/bce_ibea.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
# --------------------------------------------------------------------------------------
# 1. Bi-criterion evolution based IBEA algorithm is described in the following papers:
#
# Title: Pareto or Non-Pareto: Bi-Criterion Evolution in Multiobjective Optimization
# Link: https://ieeexplore.ieee.org/abstract/document/7347391
#
# 2. This code has been inspired by PlatEMO.
# More information about PlatEMO can be found at the following URL:
# GitHub Link: https://github.com/BIMK/PlatEMO
# --------------------------------------------------------------------------------------

import jax
import jax.numpy as jnp

Expand Down Expand Up @@ -162,11 +173,7 @@ def body_fun(i, vals):

@jit_class
class BCEIBEA(Algorithm):
"""Bi-criterion evolution based IBEA
link: https://ieeexplore.ieee.org/abstract/document/7347391
Inspired by PlatEMO.
"""
Note: The number of outer iterations needs to be set to Maximum Generation*2+1.
Args:
Expand Down
15 changes: 11 additions & 4 deletions src/evox/algorithms/mo/bige.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
# --------------------------------------------------------------------------------------
# 1. BiGE algorithm is described in the following papers:
#
# Title: Bi-goal evolution for many-objective optimization problems
# Link: https://doi.org/10.1016/j.artint.2015.06.007
#
# 2. This code has been inspired by PlatEMO.
# More information about PlatEMO can be found at the following URL:
# GitHub Link: https://github.com/BIMK/PlatEMO
# --------------------------------------------------------------------------------------

import jax
import jax.numpy as jnp
from jax import vmap
Expand Down Expand Up @@ -51,10 +62,6 @@ def calc_sh(fit_a, pr_a, fit_b, pr_b, r):

@jit_class
class BiGE(Algorithm):
"""BiGE algorithm
link: https://doi.org/10.1016/j.artint.2015.06.007
"""

def __init__(
self,
Expand Down
17 changes: 12 additions & 5 deletions src/evox/algorithms/mo/eagmoead.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,15 @@
# --------------------------------------------------------------------------------------
# 1. EAG-MOEA/D algorithm is described in the following papers:
#
# Title: An External Archive Guided Multiobjective Evolutionary Algorithm Based on Decomposition for Combinatorial
# Optimization
# Link: https://ieeexplore.ieee.org/abstract/document/6882229
#
# 2. This code has been inspired by PlatEMO.
# More information about PlatEMO can be found at the following URL:
# GitHub Link: https://github.com/BIMK/PlatEMO
# --------------------------------------------------------------------------------------

import jax
import jax.numpy as jnp
from functools import partial
Expand Down Expand Up @@ -28,11 +40,6 @@ def environmental_selection(fitness, n):

@jit_class
class EAGMOEAD(Algorithm):
"""EAG-MOEA/D algorithm
link: https://ieeexplore.ieee.org/abstract/document/6882229
Inspired by PlatEMO.
"""

def __init__(
self,
Expand Down
17 changes: 11 additions & 6 deletions src/evox/algorithms/mo/gde3.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,16 @@
# --------------------------------------------------------------------------------------
# 1. GDE3 algorithm is described in the following papers:
#
# Title: GDE3: the third evolution step of generalized differential evolution
# Link: https://ieeexplore.ieee.org/document/1554717
#
# 2. This code has been inspired by PlatEMO.
# More information about PlatEMO can be found at the following URL:
# GitHub Link: https://github.com/BIMK/PlatEMO
# --------------------------------------------------------------------------------------

import jax
import jax.numpy as jnp
from jax import vmap
from functools import partial

from evox import Algorithm, jit_class, State
from evox.operators import (
Expand All @@ -13,10 +22,6 @@

@jit_class
class GDE3(Algorithm):
"""GDE3 algorithm
link: https://ieeexplore.ieee.org/document/1554717
"""

def __init__(
self,
Expand Down
11 changes: 11 additions & 0 deletions src/evox/algorithms/mo/hype.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
# --------------------------------------------------------------------------------------
# 1. HypE algorithm is described in the following papers:
#
# Title: HypE: An Algorithm for Fast Hypervolume-Based Many-Objective Optimization
# Link: https://direct.mit.edu/evco/article-abstract/19/1/45/1363/HypE-An-Algorithm-for-Fast-Hypervolume-Based-Many
#
# 2. This code has been inspired by PlatEMO.
# More information about PlatEMO can be found at the following URL:
# GitHub Link: https://github.com/BIMK/PlatEMO
# --------------------------------------------------------------------------------------

import jax
import jax.numpy as jnp
from functools import partial
Expand Down
16 changes: 11 additions & 5 deletions src/evox/algorithms/mo/ibea.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
# --------------------------------------------------------------------------------------
# 1. IBEA algorithm is described in the following papers:
#
# Title: Indicator-Based Selection in Multiobjective Search
# Link: https://link.springer.com/chapter/10.1007/978-3-540-30217-9_84
#
# 2. This code has been inspired by PlatEMO.
# More information about PlatEMO can be found at the following URL:
# GitHub Link: https://github.com/BIMK/PlatEMO
# --------------------------------------------------------------------------------------

import jax
import jax.numpy as jnp

Expand All @@ -23,11 +34,6 @@ def cal_fitness(pop_obj, kappa):

@jit_class
class IBEA(Algorithm):
"""IBEA algorithm
link: https://link.springer.com/chapter/10.1007/978-3-540-30217-9_84
Inspired by PlatEMO.
"""

def __init__(
self,
Expand Down
15 changes: 11 additions & 4 deletions src/evox/algorithms/mo/knea.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
# --------------------------------------------------------------------------------------
# 1. KnEA algorithm is described in the following papers:
#
# Title: A Knee Point-Driven Evolutionary Algorithm for Many-Objective Optimization
# Link: https://ieeexplore.ieee.org/document/6975108
#
# 2. This code has been inspired by PlatEMO.
# More information about PlatEMO can be found at the following URL:
# GitHub Link: https://github.com/BIMK/PlatEMO
# --------------------------------------------------------------------------------------

import jax
import jax.numpy as jnp
from functools import partial
Expand Down Expand Up @@ -26,10 +37,6 @@ def calc_DW(fit, k):

@jit_class
class KnEA(Algorithm):
"""KnEA algorithm
link: https://ieeexplore.ieee.org/document/6975108
"""

def __init__(
self,
Expand Down
16 changes: 11 additions & 5 deletions src/evox/algorithms/mo/moead.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
# --------------------------------------------------------------------------------------
# 1. MOEA/D algorithm is described in the following papers:
#
# Title: MOEA/D: A Multiobjective Evolutionary Algorithm Based on Decomposition
# Link: https://ieeexplore.ieee.org/document/4358754
#
# 2. This code has been inspired by PlatEMO.
# More information about PlatEMO can be found at the following URL:
# GitHub Link: https://github.com/BIMK/PlatEMO
# --------------------------------------------------------------------------------------

import jax
import jax.numpy as jnp

Expand All @@ -9,11 +20,6 @@

@jit_class
class MOEAD(Algorithm):
"""MOEA/D algorithm
link: https://ieeexplore.ieee.org/document/4358754
Inspired by PlatEMO.
"""

def __init__(
self,
Expand Down
16 changes: 11 additions & 5 deletions src/evox/algorithms/mo/moeaddra.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
# --------------------------------------------------------------------------------------
# 1. MOEA/D-DRA algorithm is described in the following papers:
#
# Title: The performance of a new version of MOEA/D on CEC09 unconstrained MOP test instances
# Link: https://ieeexplore.ieee.org/abstract/document/4982949
#
# 2. This code has been inspired by PlatEMO.
# More information about PlatEMO can be found at the following URL:
# GitHub Link: https://github.com/BIMK/PlatEMO
# --------------------------------------------------------------------------------------

import jax
import jax.numpy as jnp

Expand All @@ -9,11 +20,6 @@

@jit_class
class MOEADDRA(Algorithm):
"""MOEA/D-DRA algorithm
link: https://ieeexplore.ieee.org/abstract/document/4982949
Inspired by PlatEMO.
"""

def __init__(
self,
Expand Down
16 changes: 11 additions & 5 deletions src/evox/algorithms/mo/moeadm2m.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
# --------------------------------------------------------------------------------------
# 1. MOEA/D based on MOP to MOP algorithm is described in the following papers:
#
# Title: Decomposition of a Multiobjective Optimization Problem Into a Number of Simple Multiobjective Subproblems
# Link: https://ieeexplore.ieee.org/abstract/document/6595549
#
# 2. This code has been inspired by PlatEMO.
# More information about PlatEMO can be found at the following URL:
# GitHub Link: https://github.com/BIMK/PlatEMO
# --------------------------------------------------------------------------------------

import jax
import jax.numpy as jnp

Expand Down Expand Up @@ -83,11 +94,6 @@ def false_fun(c):

@jit_class
class MOEADM2M(Algorithm):
"""MOEA/D based on MOP to MOP algorithm
link: https://ieeexplore.ieee.org/abstract/document/6595549
Inspired by PlatEMO.
"""

def __init__(
self,
Expand Down
7 changes: 7 additions & 0 deletions src/evox/algorithms/mo/nsga2.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
# --------------------------------------------------------------------------------------
# 1. NSGA-II algorithm is described in the following papers:
#
# Title: A fast and elitist multiobjective genetic algorithm: NSGA-II
# Link: https://ieeexplore.ieee.org/document/996017
# --------------------------------------------------------------------------------------

import jax
import jax.numpy as jnp

Expand Down
16 changes: 12 additions & 4 deletions src/evox/algorithms/mo/nsga3.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,15 @@
# --------------------------------------------------------------------------------------
# 1. NSGA-III algorithm is described in the following papers:
#
# Title: An Evolutionary Many-Objective Optimization Algorithm Using Reference-Point-Based Nondominated Sorting
# Approach, Part I: Solving Problems With Box Constraints
# Link: https://ieeexplore.ieee.org/document/6600851
#
# 2. This code has been inspired by PlatEMO.
# More information about PlatEMO can be found at the following URL:
# GitHub Link: https://github.com/BIMK/PlatEMO
# --------------------------------------------------------------------------------------

import jax
import jax.numpy as jnp

Expand All @@ -13,10 +25,6 @@

@jit_class
class NSGA3(Algorithm):
"""NSGA-III algorithm
link: https://ieeexplore.ieee.org/document/6600851
"""

def __init__(
self,
Expand Down
12 changes: 7 additions & 5 deletions src/evox/algorithms/mo/rvea.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
# --------------------------------------------------------------------------------------
# 1. RVEA algorithm is described in the following papers:
#
# Title: A Reference Vector Guided Evolutionary Algorithm for Many-Objective Optimization
# Link: https://ieeexplore.ieee.org/document/7386636
# --------------------------------------------------------------------------------------

import jax
import jax.numpy as jnp
from evox.utils import cos_dist

from evox.operators import mutation, crossover, selection
from evox.operators.sampling import UniformSampling, LatinHypercubeSampling
Expand All @@ -9,10 +15,6 @@

@jit_class
class RVEA(Algorithm):
"""RVEA algorithms
link: https://ieeexplore.ieee.org/document/7386636
"""

def __init__(
self,
Expand Down
16 changes: 11 additions & 5 deletions src/evox/algorithms/mo/spea2.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
# --------------------------------------------------------------------------------------
# 1. SPEA2 algorithm is described in the following papers:
#
# Title: SPEA2: Improving the strength pareto evolutionary algorithm
# Link: https://www.research-collection.ethz.ch/handle/20.500.11850/145755
#
# 2. This code has been inspired by PlatEMO.
# More information about PlatEMO can be found at the following URL:
# GitHub Link: https://github.com/BIMK/PlatEMO
# --------------------------------------------------------------------------------------

import jax
import jax.numpy as jnp

Expand Down Expand Up @@ -58,11 +69,6 @@ def body_fun(vals):

@jit_class
class SPEA2(Algorithm):
"""SPEA2 algorithm
link: https://www.research-collection.ethz.ch/handle/20.500.11850/145755
Inspired by PlatEMO.
"""

def __init__(
self,
Expand Down
16 changes: 11 additions & 5 deletions src/evox/algorithms/mo/sra.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
# --------------------------------------------------------------------------------------
# 1. Stochastic ranking algorithm is described in the following papers:
#
# Title: Stochastic Ranking Algorithm for Many-Objective Optimization Based on Multiple Indicators
# Link: https://ieeexplore.ieee.org/abstract/document/7445185
#
# 2. This code has been inspired by PlatEMO.
# More information about PlatEMO can be found at the following URL:
# GitHub Link: https://github.com/BIMK/PlatEMO
# --------------------------------------------------------------------------------------

import jax
import jax.numpy as jnp

Expand Down Expand Up @@ -102,11 +113,6 @@ def in_body(j, d):

@jit_class
class SRA(Algorithm):
"""Stochastic ranking algorithm
link: https://ieeexplore.ieee.org/abstract/document/7445185
Inspired by PlatEMO.
"""

def __init__(
self,
Expand Down
Loading

0 comments on commit 3861c27

Please sign in to comment.