From 757a8e10b610298076fe12794b3362ee11a7bd1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mathieu=20Besan=C3=A7on?= Date: Mon, 16 Dec 2024 09:26:46 +0100 Subject: [PATCH] add README details --- README.md | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 337dc6a..0c86467 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,11 @@ [![Build Status](https://github.com/ZIB-IOL/CombinatorialLinearOracles.jl/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/ZIB-IOL/CombinatorialLinearOracles.jl/actions/workflows/CI.yml?query=branch%3Amain) [![Coverage](https://codecov.io/gh/ZIB-IOL/CombinatorialLinearOracles.jl/branch/main/graph/badge.svg)](https://codecov.io/gh/ZIB-IOL/CombinatorialLinearOracles.jl) -This package is primarily a companion of [FrankWolfe.jl](https://github.com/ZIB-IOL/FrankWolfe.jl/) and implements several combinatorial linear minimization oracles, for instance for minimizing a linear function over a polytope defined by objects on graphs (spanning trees, matchings, ...). +This package implements linear minimization oracles which compute a minimizer of a linear function over a compact convex set. + +CombinatorialLinearOracles is primarily a companion of [FrankWolfe.jl](https://github.com/ZIB-IOL/FrankWolfe.jl/) and implements several combinatorial linear minimization oracles, for instance for minimizing a linear function over a polytope defined by objects on graphs (spanning trees, matchings, ...). + +CombinatorialLinearOracles also implements bounded linear minimization oracles (BLMO) for usage in the branch-and-bound of [Boscia.jl](https://github.com/ZIB-IOL/Boscia.jl). ## Installation @@ -13,3 +17,17 @@ Pkg.add("https://github.com/ZIB-IOL/CombinatorialLinearOracles.jl") import CombinatorialLinearOracles ``` + +## Usage + +```julia +import FrankWolfe +import CombinatorialLinearOracles as CLO +using Graphs + +g = complete_graph(5) +lmo = CLO.MatchingLMO(g) + +direction = randn(Graphs.ne(g)) +opt_matching = FrankWolfe.compute_extreme_point(lmo, direction) +```