Code Monkey home page Code Monkey logo

cflg's Introduction

cflg: an algorithmic toolkit for continuous set covering on networks

Facility location is an important application in operations research. Continuous set covering on networks generalizes the classical dicrete set covering problems in graphs, which allows both the demands and facilities continuously locating in edges. cflg contains several algorithms for solving continuous set covering on networks. cflg is written in Julia based on JuMP.

Installation

cflg has been developped and tested under Linux System.

To use cflg, it requires:

  • Julia,
  • JuMP,

and one of the following MILP solvers:

  • CPLEX,
  • GLPK,
  • Gurobi.

Benchmarks

There are six benchmarks city, Kgroup_A, Kgroup_B, random_A, random_B and test. Each benchmark contains instances in .txt file format.

Each instance file contains data of a graph. Its first line contains the number of nodes and edges of the graph; Edges are represented as a list from the second line: each line indicates an edge's end nodes and weight.

Usage

You can run cflg.jl via the following command:

julia ./cflg.jl solver time_limit instance algorithm raidus

The settings of the above arguments are as follows.

  • solver: one of the solvers in CPLEX, GLPK and Gurobi.
  • time_limit: time limit in seconds.
  • instance: the instance path.
  • algorithm: one of the algorithms in EF, F0, F, SF, RF, SFD and None.
  • raidus: the coverage raidus.

To reproduce the computational results in the accompanied paper, clear the results directory, go to the test directory, and execute the following command in the terminal (in Linux)

/bin/bash run.sh

Note that you should change the solver option solver and the GNU parallel test option gnuparalleltest according to their availability in your system.

Algorithm Option

The algorithm option is summarized in the following table.

Continuous demand Continuous facility Set delimitation Strengthenning Long edge Model size Input graph Comment
EF Yes Yes No No No Very large Subdivided graph From Covering edges in networks
F0 Yes Yes No No No Large Subdivided graph Naive model
F Yes Yes Yes No No Medium Subdivided graph Complete model
SF Yes Yes Yes Yes No Meidum Subdivided graph Strenghtenned model
RF Yes Yes Yes Yes Yes Small Degree-2-free graph Reduced model
SFD No Yes Yes Yes No Very small Subdivided graph Discrete model

The None option is used for computing the parameters of subdivided and degree-2-free graphs.

References

If you find cflg useful in your work, we kindly request that you cite the following paper draft (arXiv preprint), which is recommended reading for advanced users:

@misc{pelegrín2022continuous,
    title={Continuous Covering on Networks: Strong Mixed Integer Programming Formulations}, 
    author={Mercedes Pelegrín and Liding Xu},
    year={2022},
    eprint={2203.00284},
    archivePrefix={arXiv},
    primaryClass={math.OC}
}

cflg's People

Contributors

lidingxu avatar

Watchers

Lucian avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.