Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 18 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,22 +51,24 @@ the choice of solution algorithm.

## Algorithm

Set the algorithm using the `MOA.Algorithm()` attribute.

The value must be one of the algorithms supported by MOA:

* `MOA.Chalmet()`
* `MOA.Dichotomy()`
* `MOA.DominguezRios()`
* `MOA.EpsilonConstraint()`
* `MOA.Hierarchical()`
* `MOA.KirlikSayin()`
* `MOA.Lexicographic()` [default]
* `MOA.RandomWeighting()`
* `MOA.Sandwiching()`
* `MOA.TambyVanderpooten()`

Consult their docstrings for details.
Set the algorithm using the `MOA.Algorithm()` attribute. The value must be one
of the algorithms supported by MOA. Consult their docstrings for details.

Some algorithms are restricted to certain problem classes. The solution set
depends on the algorithm and the problem class.

| `MOA.Algorithm` | Applicable problem class |
| :------------------------ | ------------------------ |
| `MOA.Chalmet()` | Exactly two objectives |
| `MOA.Dichotomy()` | Exactly two objectives |
| `MOA.DominguezRios()` | Discrete variables only |
| `MOA.EpsilonConstraint()` | Exactly two objectives |
| `MOA.Hierarchical()` | Any |
| `MOA.KirlikSayin()` | Discrete variables only |
| `MOA.Lexicographic()` [default] | Any |
| `MOA.RandomWeighting()` | Any |
| `MOA.Sandwiching()` | Any |
| `MOA.TambyVanderpooten()` | Discrete variables only |

## Other optimizer attributes

Expand Down
6 changes: 6 additions & 0 deletions src/algorithms/Chalmet.jl
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,12 @@ Chalmet, L.G., and Lemonidis, L., and Elzinga, D.J. (1986). An algorithm for the
bi-criterion integer programming problem. European Journal of Operational
Research. 25(2), 292-300

## Supported problem classes

This algorithm is restricted to problems with:

* exactly two objectives

## Supported optimizer attributes

* `MOI.TimeLimitSec()`: terminate if the time limit is exceeded and return the
Expand Down
6 changes: 6 additions & 0 deletions src/algorithms/Dichotomy.jl
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,12 @@ A solver that implements the algorithm of:
Y. P. Aneja, K. P. K. Nair, (1979) Bicriteria Transportation Problem. Management
Science 25(1), 73-78.

## Supported problem classes

This algorithm is restricted to problems with:

* exactly two objectives

## Supported optimizer attributes

* `MOI.TimeLimitSec()`: terminate if the time limit is exceeded and return the
Expand Down
7 changes: 7 additions & 0 deletions src/algorithms/DominguezRios.jl
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,13 @@ Dominguez-Rios, M.A. & Chicano, F., & Alba, E. (2021). Effective anytime
algorithm for multiobjective combinatorial optimization problems. Information
Sciences, 565(7), 210-228.

## Supported problem classes

This algorithm is restricted to problems with:

* discrete variables only. It will fail to converge if the problem is purely
continuous.

## Supported optimizer attributes

* `MOI.TimeLimitSec()`: terminate if the time limit is exceeded and return the
Expand Down
6 changes: 6 additions & 0 deletions src/algorithms/EpsilonConstraint.jl
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,12 @@
`EpsilonConstraint` implements the epsilon-constraint algorithm for
bi-objective programs.

## Supported problem classes

This algorithm is restricted to problems with:

* exactly two objectives

## Supported optimizer attributes

* `MOA.EpsilonConstraintStep()`: `EpsilonConstraint` uses this value
Expand Down
4 changes: 4 additions & 0 deletions src/algorithms/Hierarchical.jl
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@ future solves. Finally, it steps to the next set of prioritized objectives.
The solution is a single point that trades off the various objectives. It does
not record the partial solutions that were found along the way.

## Supported problem classes

This algorithm supports all problem classes.

## Supported optimizer attributes

* `MOA.ObjectivePriority`
Expand Down
7 changes: 7 additions & 0 deletions src/algorithms/KirlikSayin.jl
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,13 @@ discrete optimization problems. The algorithm maintains `(p-1)`-dimensional
rectangle regions in the solution space, and a two-stage optimization problem
is solved for each rectangle.

## Supported problem classes

This algorithm is restricted to problems with:

* discrete variables only. It will fail to converge if the problem is purely
continuous.

## Supported optimizer attributes

* `MOI.TimeLimitSec()`: terminate if the time limit is exceeded and return the
Expand Down
4 changes: 4 additions & 0 deletions src/algorithms/Lexicographic.jl
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@
`Lexicographic()` implements a lexigographic algorithm that returns a single
point on the frontier, corresponding to solving each objective in order.

## Supported problem classes

This algorithm supports all problem classes.

## Supported optimizer attributes

* `MOI.TimeLimitSec()`: terminate if the time limit is exceeded and return the
Expand Down
4 changes: 4 additions & 0 deletions src/algorithms/RandomWeighting.jl
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@
A heuristic solver that works by repeatedly solving a weighted sum problem with
random weights.

## Supported problem classes

This algorithm supports all problem classes.

## Supported optimizer attributes

* `MOI.TimeLimitSec()`: terminate if the time limit is exceeded and return the
Expand Down
4 changes: 4 additions & 0 deletions src/algorithms/Sandwiching.jl
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ Fleuren, H. A. (2023). A Renewed Take on Weighted Sum in Sandwich Algorithms:
Modification of the Criterion Space. (Center Discussion Paper; Vol. 2023-012).
CentER, Center for Economic Research.

## Supported problem classes

This algorithm supports all problem classes.

## Compat

To use this algorithm you MUST first load the Polyhedra.jl Julia package:
Expand Down
7 changes: 7 additions & 0 deletions src/algorithms/TambyVanderpooten.jl
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,13 @@ minimization problems) and their associated defining points. At each iteration,
one of the objectives and an upper bound is picked and the single objective
reformulation is solved using one of the defining points as a starting solution.

## Supported problem classes

This algorithm is restricted to problems with:

* discrete variables only. It will fail to converge if the problem is purely
continuous.

## Supported optimizer attributes

* `MOI.TimeLimitSec()`: terminate if the time limit is exceeded and return the
Expand Down
Loading