4 releases
0.2.0 | Nov 20, 2019 |
---|---|
0.1.2 | Jan 28, 2019 |
0.1.1 | Jan 27, 2019 |
0.1.0 | Jan 27, 2019 |
#1077 in Algorithms
17KB
415 lines
Multi-Objective Combinatorial Optimization - Anytime Behavior Model (moco_abm)
This software provides both a binary and a library (see note) for an anytime behavior model of multi-objective combinatorial optimization algorithms that, at each iteration, collect an efficient solution that maximizes the hypervolume contribution. It is assumed that all objective functions are to be maximized.
Note: the current software is intended to be used as a binary for now. The library API is not yet properly defined and no documentation is provided for now.
Binary
Install the latest binary using cargo
with:
cargo install moco_abm
or compile from source with:
cargo build --release
Usage
USAGE:
moco_abm [OPTIONS] -n <num>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-f <file> file with piecewise approximation definition (stdin is used if not set)
-n <num> number of points to retrieve
The input file should contain at least one segment in the following format
u1 u2 v1 v2
where $(u_1, u_2)$ and $(v_1, v_2)$ denote the coordinates of the linear segment endpoints. Multiple segments, and coordinates within the segments, can be separated by any whitespace.
Note: Points in the segments must be provided such that v1 > u1
and v2 < u2
. Moreover, when multiple segments are provided, e.g.:
u1 u2 v1 v2
p1 p2 q1 q2
it is required that p1 >= v1
and that p2 <= v2
.
Example of a valid segments list file:
0.0 1.0 0.7 0.7
0.7 0.7 1.0 0.0
Output
The output is returned to stdout
and consists of a .tsv
with the following fields
field | description |
---|---|
index | index of the current point (starts at 1) |
hv_contribution | hypervolume contribution of this point |
hv_current | hypervolume of all returned points up to now |
hv_relative | current_hv relative to maximal hypervolume |
point | comma separated coordinates of the point |
Library
Add this to your Cargo.toml
:
[dependencies]
moco_abm = "0.1"
and this to your crate root:
extern crate moco_abm;
Dependencies
~150KB