Crates.io | moco_abm |

lib.rs | moco_abm |

version | 0.2.0 |

source | src |

created_at | 2019-01-27 22:59:56.683382 |

updated_at | 2019-11-20 16:55:00.944319 |

description | MOCO - Anytime Behavior Model (moco_abm) |

homepage | |

repository | https://github.com/adbjesus/moco_abm |

max_upload_size | |

id | 111010 |

size | 18,784 |

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.

Install the latest binary using `cargo`

with:

```
cargo install moco_abm
```

or compile from source with:

```
cargo build --release
```

```
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
```

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 |

Add this to your `Cargo.toml`

:

```
[dependencies]
moco_abm = "0.1"
```

and this to your crate root:

```
extern crate moco_abm;
```