Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 5 DOI reference(s) in README
  • Academic publication links
    Links to: springer.com
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (7.5%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: VaclavMacha
  • License: mit
  • Language: Jupyter Notebook
  • Default Branch: master
  • Size: 243 KB
Statistics
  • Stars: 1
  • Watchers: 2
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created almost 7 years ago · Last pushed over 4 years ago
Metadata Files
Readme License Citation

README.md

Projections onto the canonical simplex with additional linear inequalities

This repository is a complementary material to our paper "Projections onto the canonical simplex with additional linear inequalities", where we consider several such projections coming from the field of distributionally robust optimization (DRO).

For a brief presentation, see the Jupyter notebook.

Installation

This package can be installed using pkg REPL as follows julia (v1.2) pkg> add https://github.com/VaclavMacha/Projections.git

Usage

This package provides an interface to solve the three following problems

  1. distributionally robust optimization (DRO) with φ -divergence or norm in constraints. All implemented φ -divergences and norms are presented in the following table

| Name | Constructor | Our solver | General solver | Philpott solver | | --- | :---: | :---: | :---: | :---: | | Kullback-Leibler divergence | KullbackLeibler() | ✔ | Ipopt | ✘ | | Burg entropy | Burg() | ✔ | Ipopt | ✘ | | Hellinger distance | Hellinger() | ✔ | Ipopt | ✘ | | χ2-distance | ChiSquare() | ✔ | Ipopt | ✘ | | Modified χ2-distance | ModifiedChiSquare() | ✔ | Ipopt | ✘ | | l-1 norm | Lone() | ✔ | CPLEX | ✘ | | l-2 norm | Ltwo() | ✔ | CPLEX | ✘ | | l-infinity norm | Linf() | ✔ | CPLEX | ✔ |

  1. finding projection onto probability simplex (Simplex).

The interface provides 3 solvers:

  1. Our() - our approach
  2. General() - general purpose solvers such as Ipopt or CPLEX
  3. Philpott() - algorithm presented in [Philpott 2018] for the DRO with l-2 norm

DRO

The following example shows how to solve the DRO with Burg distance using Our() and General() solver ```julia julia> using Projections, Random, LinearAlgebra

julia> Random.seed!(1234);

julia> d = Projections.Burg();

julia> q = rand(10);

julia> q ./= sum(q);

julia> c = rand(10);

julia> ε = 0.1;

julia> model = Projections.DRO(d, q, c, ε);

julia> p1 = Projections.solve(Our(), model);

julia> p2 = Projections.solve(General(), model);

julia> LinearAlgebra.norm(p1 - p2)
7.848203730531935e-9 ```

Simplex

The following example shows how to solve the Simplex problem using Our() and General() solver ```julia julia> using Projections, Random, LinearAlgebra

julia> Random.seed!(1234);

julia> n = 10;

julia> q = rand(n);

julia> lb = rand(n)./n;

julia> ub = 1 .+ rand(n);

julia> model = Projections.Simplex(q, lb, ub);

julia> p1 = Projections.solve(Our(), model);

julia> p2 = Projections.solve(General(), model);

julia> LinearAlgebra.norm(p1 - p2)
2.9749633079816928e-8 ```


If you have used Projections in a scientific project that lead to a publication, we'd appreciate you citing the paper associated with it:

@article{adam2020projections, author = {L. Adam and V. Mácha}, title = {Projections onto the canonical simplex with additional linear inequalities}, journal = {Optimization Methods and Software}, pages = {1-29}, year = {2020}, publisher = {Taylor & Francis}, doi = {10.1080/10556788.2020.1797023}, URL = {https://doi.org/10.1080/10556788.2020.1797023}, }

Owner

  • Name: VaclavMacha
  • Login: VaclavMacha
  • Kind: user

Citation (CITATION.bib)

@article{adam2020projections,
  author = {L. Adam and V. Mácha},
  title = {Projections onto the canonical simplex with additional linear inequalities},
  journal = {Optimization Methods and Software},
  pages = {1-29},
  year  = {2020},
  publisher = {Taylor & Francis},
  doi = {10.1080/10556788.2020.1797023},
  URL = {https://doi.org/10.1080/10556788.2020.1797023},
}

GitHub Events

Total
Last Year

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels