Skip to content

Commit

Permalink
Merge pull request #108 from jmejia8/develop
Browse files Browse the repository at this point in the history
Add GRASP and VNS
  • Loading branch information
jmejia8 authored May 22, 2024
2 parents 5a14664 + a100795 commit e2f23a5
Show file tree
Hide file tree
Showing 54 changed files with 1,031 additions and 242 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/documentation-github-actions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
- uses: actions/checkout@v2
- uses: julia-actions/setup-julia@latest
with:
version: '1.7'
version: '1.10'
- name: Install dependencies
run: julia --project=docs/ -e 'using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()'
- name: Build and deploy
Expand Down
2 changes: 1 addition & 1 deletion Project.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name = "Metaheuristics"
uuid = "bcdb8e00-2c21-11e9-3065-2b553b22f898"
authors = ["Jesus Mejia <[email protected]>"]
version = "3.3.5"
version = "3.4.0"

[deps]
Distances = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7"
Expand Down
12 changes: 8 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,18 +36,22 @@ Some representative metaheuristics are developed here, including those for singl
multi-objective optimization. Moreover, some constraint handling techniques have been
considered in most of the [implemented algorithms](https://jmejia8.github.io/Metaheuristics.jl/stable/algorithms/).

### Combinatorial Optimization

- **GRASP**: Greedy randomized adaptive search procedure.
- **VND**: Variable Neighborhood Descent.
- **VNS**: Variable Neighborhood Search.
- **BRKGA**: Biased Random Key Genetic Algorithm.

### Single-Objective Optimization

- **ECA**: Evolutionary Centers Algorithm
- **DE**: Differential Evolution
- **PSO**: Particle Swarm Optimization
- **ABC**: Artificial Bee Colony
- **GSA**: Gravitational Search Algorithm
- **SA**: Simulated Annealing
- **WOA**: Whale Optimization Algorithm
- **MCCGA**: Machine-coded Compact Genetic Algorithm
- **GA**: Genetic Algorithm
- **BRKGA**: Biased Random Key Genetic Algorithm
- [and more...](https://jmejia8.github.io/Metaheuristics.jl/stable/algorithms/)

### Multi-Objective Optimization

Expand Down
10 changes: 8 additions & 2 deletions docs/make.jl
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using Documenter, Metaheuristics
using DocumenterCitations

bib = CitationBibliography(joinpath(@__DIR__, "references.bib"))
bib = CitationBibliography(joinpath(@__DIR__, "references.bib"), style=:authoryear)

makedocs(
bib,
Expand All @@ -23,7 +23,13 @@ makedocs(
"tutorials/n-queens.md",
],
"Examples" => "examples.md",
"Algorithms" => "algorithms.md",
"Algorithms" => [
"algorithms/index.md",
"algorithms/singleobjective.md",
"algorithms/multiobjective.md",
"algorithms/combinatorial.md",
],
#"Algorithms" => "algorithms.md",
"Problems" => "problems.md",
"Performance Indicators" => "indicators.md",
"Multi-Criteria Decision Making" => "mcdm.md",
Expand Down
185 changes: 0 additions & 185 deletions docs/src/algorithms.md

This file was deleted.

50 changes: 50 additions & 0 deletions docs/src/algorithms/combinatorial.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Combinatorial

These algorithms can be used for solving combinatorial optimization.

## BRKGA

Biased Random Key Genetic Algorithm.

```@docs
BRKGA
```

## GRASP

Greedy randomized adaptive search procedure.

```@docs
GRASP
```

```@docs
Metaheuristics.GreedyRandomizedContructor
```

```@docs
Metaheuristics.construct
```


```@docs
Metaheuristics.compute_cost
```


## VND

Variable Neighborhood Descent.

```@docs
VND
```

## VNS

General Variable Neighborhood Search.

```@docs
VNS
```

34 changes: 34 additions & 0 deletions docs/src/algorithms/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Index

List of implemented metaheuristics. The algorithms were implemented based on the
contributor's understanding of the algorithms detailed in the published paper.

| Algorithm | Objective | Constraints | Large Scale | Batch Evaluation| Structure Name |
|-----------|:-----------|:-----------:|:-----------:| :----------:|------------------------|
| ECA | Single |||| [`ECA`](@ref) |
| DE | Single |||| [`DE`](@ref) |
| PSO | Single |||| [`PSO`](@ref) |
| ABC | Single |||| [`ABC`](@ref) |
| MOEA/D-DE | Multi |||| [`MOEAD_DE`](@ref) |
| GSA | Single |||| [`CGSA`](@ref) |
| SA | Single |||| [`SA`](@ref) |
| NSGA-II | Multi |||| [`NSGA2`](@ref) |
| NSGA-III | Many |||| [`NSGA3`](@ref) |
| SMS-EMOA | Multi |||| [`SMS_EMOA`](@ref) |
| SPEA2 | Multi |||| [`SPEA2`](@ref) |
| BCA | Bilevel |||| [`BCA`](https://jmejia8.github.io/BilevelHeuristics.jl/dev/algorithms/#BCA) |
| MCCGA | Single |||| [`MCCGA`](@ref) |
| GA | Single |||| [`GA`](@ref) |
| CCMO | Multi |||| [`CCMO`](@ref) |
| $\varepsilon$DE | Single |||| [`εDE`](@ref) |
| BRKGA | Single |||| [`BRKGA`](@ref) |


✅ = supported,
❌ = not supported,
➖ = can be supported by changing default parameters.

- **Batch Evaluation** = Simultaneous evaluation of multiple solutions (batch) see "[Batch Evaluation](@ref)".
- **Constraints** = Equality and inequality constraints.
- **Large Scale** = High dimensional problems (variables space).

51 changes: 51 additions & 0 deletions docs/src/algorithms/multiobjective.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Multi-objective

## MOEA/D-DE

Multiobjective optimization problems with complicated Pareto sets by [LiZhang2008](@cite).

```@docs
MOEAD_DE
```

## NSGA-II

A fast and elitist multiobjective genetic algorithm: NSGA-II by [Deb2002](@cite).

```@docs
NSGA2
```


## NSGA-III

An Evolutionary Many-Objective Optimization Algorithm Using Reference-Point-Based
Nondominated Sorting Approach, Part I: Solving Problems With Box Constraints by [DebJain2014](@cite).
```@docs
NSGA3
```

## SMS-EMOA

An EMO algorithm using the hypervolume measure as a selection criterion by [Emmerich2005](@cite).
```@docs
SMS_EMOA
```


## SPEA2

Improved strength Pareto evolutionary algorithm by [Zitzler2001](@cite).
```@docs
SPEA2
```

## CCMO

A Coevolutionary Framework for Constrained Multiobjective Optimization Problems
proposed by [Tian2020](@cite).

```@docs
CCMO
```

Loading

0 comments on commit e2f23a5

Please sign in to comment.