Giter Site home page Giter Site logo

container-stacking-problem's Introduction

Container Stacking Problem

Instalation

Python packages

pip3 install cplex docplex ortools

CPLEX

An instalation of CPLEX Studio must also be present. Our version is configured with Ubuntu's default installation location '/opt/ibm/ILOG/CPLEX_Studio201/cpoptimizer/bin/x86-64_linux/cpoptimizer'. Override this path with the cli argument '-execfile'

Usage

CLI

Container-Stacking-Problem git:(main) ✗ python3 main.py -h
usage: main.py [-h] -solver --solver-package [-path --input-path] [-benchmark [--benchmark-runs]] [-time [--max-time]] [-execfile [--cplex-execfile]]

Run the solver for the Container Stacking Problem

optional arguments:
  -h, --help            show this help message and exit
  -solver --solver-package
                        choice of solver to solve input problem. Currently supports 'ortools' and 'cplex'
  -path --input-path    the path to the file with the input problem (.json). By default is 'inputs/input.json'
  -benchmark [--benchmark-runs]
                        number of runs for benchmarking time (recommended: 5)
  -time [--max-time]    time limit (in seconds) to return solution. May return sub-optimal solution, or none at all
  -execfile [--cplex-execfile]
                        path for the CPLEX engine's executable. By default is '/opt/ibm/ILOG/CPLEX_Studio201/cpoptimizer/bin/x86-64_linux/cpoptimizer'

The cli options -benchmark and -time allow for benchmarking, and are used in the developed scripts:

Test scripts

multiple_runs.sh runs and writes to results.txt output of an average of 5 runs, for each problem indexed 0 to 9, of both solvers. multiple_times.sh runs and writes to results.txt output of the execution on a test file with increasing solve time cut offs, for both solvers. Was not used in final report due to missing functionality, not implemented due to lack of time to devote to the project.

container-stacking-problem's People

Contributors

dfamonteiro avatar up201806330 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.