Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jakobbossek/omnioptr
Interface to Omni-optimizer heuristic by Deb and Tiwari.
https://github.com/jakobbossek/omnioptr
heuristic-search-algorithms optimizer optmization
Last synced: 3 days ago
JSON representation
Interface to Omni-optimizer heuristic by Deb and Tiwari.
- Host: GitHub
- URL: https://github.com/jakobbossek/omnioptr
- Owner: jakobbossek
- License: gpl-3.0
- Created: 2021-06-23T12:52:34.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-12-05T15:20:16.000Z (11 months ago)
- Last Synced: 2024-10-11T18:32:48.350Z (27 days ago)
- Topics: heuristic-search-algorithms, optimizer, optmization
- Language: C
- Homepage: https://jakobbossek.github.io/omnioptr/
- Size: 554 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.Rmd
- License: LICENSE
Awesome Lists containing this project
README
---
output: github_document
---
# omnioptr: Omni-Optimizer Algorithm[![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)
[![R-CMD-check](https://github.com/jakobbossek/omnioptr/workflows/R-CMD-check/badge.svg)](https://github.com/jakobbossek/omnioptr/actions)
[![codecov](https://codecov.io/gh/jakobbossek/omnioptr/branch/main/graph/badge.svg?token=88YGQRYJ4W)](https://codecov.io/gh/jakobbossek/omnioptr)
[![CRAN_Status_Badge](https://www.r-pkg.org/badges/version/omnioptr)](https://cran.r-project.org/package=omnioptr)
## Introduction
Simple interface to the C-implementation of the Omni-optimizer by Deb and Tiwari (1,2). The algorithm "is designed as a generic multi-objective, multi-optima optimizer" (2).
1) Kalyanmoy Deb, Santosh Tiwari: Omni-optimizer: *A generic evolutionary algorithm
for single and multi-objective optimization*. European Journal of Operations
Research 185(3): 1062-1087.2) Kalyanmoy Deb, Santosh Tiwari: *Omni-optimizer: A Procedure for Single and
Multi-objective Optimization*. In: Proceedings of the Evolutionary Multi-Criterion
Optimization Conference (EMO) 2005: 47-61.## Example
```r
library(omnioptr)
library(smoof)# Single-Objective Example (see reference (2), Section 4.2)
# ===set.seed(1) # reproducibility
fn = smoof::makeHimmelblauFunction()
res = omniopt(fn, 100, 200, var.space.niching = TRUE, delta = 0.001, frequency = 1L, verbose = FALSE)# final points in decision space
plot(fn)
points(t(res$dec))# visualization of progress
for (i in 1:length(res$history)) {
e = res$history[[i]]
if (is.null(e))
next
plot(fn, main = sprintf("Iteration %i", i))
points(t(e$dec))
Sys.sleep(0.1)
}# Multi-Objective Example
# ===set.seed(1) # reproducibility
fn = smoof::makeZDT2Function(dimension = 4L)
res = omniopt(fn, 100, 1000, p.cross = 0.9, verbose = FALSE)
plot(t(res$obj))
pairs(t(res$dec))
```## Installation Instructions
The package will be available at [CRAN](http://cran.r-project.org) *when it is done*. If you are interested in trying out and playing around with the current github development version use the [devtools](https://github.com/hadley/devtools) package and type the following command in R:
```{r, eval = FALSE}
devtools::install_github("jakobbossek/omnioptr")
```## Getting help
Please address questions and missing features about the *omnioptr* as well as annoying bug reports in the [issue tracker](https://github.com/jakobbossek/omnioptr/issues). Pay attention to explain your problem as good as possible. At its best you provide an example, so I can reproduce your problem quickly. Please avoid sending e-mails.