{"id":21426681,"url":"https://github.com/roelbrouwer/continuousresource","last_synced_at":"2025-03-16T21:16:03.054Z","repository":{"id":79285255,"uuid":"362821979","full_name":"RoelBrouwer/continuousresource","owner":"RoelBrouwer","description":"Implementation and comparison of a number of different approaches for solving a resource assignment scheduling problem.","archived":false,"fork":false,"pushed_at":"2023-12-29T16:06:19.000Z","size":473,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-23T07:43:40.045Z","etag":null,"topics":["local-search","mathematical-programming","scheduling-algorithms"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RoelBrouwer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2021-04-29T13:11:49.000Z","updated_at":"2022-12-02T14:05:31.000Z","dependencies_parsed_at":"2023-12-19T09:44:16.278Z","dependency_job_id":null,"html_url":"https://github.com/RoelBrouwer/continuousresource","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RoelBrouwer%2Fcontinuousresource","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RoelBrouwer%2Fcontinuousresource/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RoelBrouwer%2Fcontinuousresource/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RoelBrouwer%2Fcontinuousresource/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RoelBrouwer","download_url":"https://codeload.github.com/RoelBrouwer/continuousresource/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243933456,"owners_count":20370988,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["local-search","mathematical-programming","scheduling-algorithms"],"created_at":"2024-11-22T21:43:20.095Z","updated_at":"2025-03-16T21:16:03.026Z","avatar_url":"https://github.com/RoelBrouwer.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Models and algorithms for solving variants of the continuous resource scheduling problem\n\nImplementation and comparison of a number of different approaches for solving a resource assignment scheduling problem. \n\n## Table of Contents\n\n- [Models and algorithms for solving variants of the continuous resource scheduling problem](#models-and-algorithms-for-solving-variants-of-the-continuous-resource-scheduling-problem)\n  - [Table of Contents](#table-of-contents)\n  - [About the Project](#about-the-project)\n    - [License](#license)\n    - [Attribution and academic use](#attribution-and-academic-use)\n    - [Contact](#contact)\n  - [Getting Started](#getting-started)\n    - [Prerequisites](#prerequisites)\n    - [Installation](#installation)\n  - [Usage](#usage)\n    - [Generating instances](#generating-instances)\n    - [Solving a model for an instance](#solving-a-model-for-an-instance)\n  - [Links](#links)\n  - [Notes](#notes)\n\n## About the Project\n\n**Date**: April 2021 - ...\n\n**Contributors**:\n\n- [R.J.J. Brouwer](https://www.uu.nl/staff/RJJBrouwer) ([@RoelBrouwer](https://github.com/RoelBrouwer))\n\n### License\n\nThe code in this project is released under the _[MIT license](LICENSE)._\n\u003c!-- Update later --\u003e\n\n### Attribution and academic use\n\n_Placeholder._\n\u003c!-- Update later --\u003e\n\n### Contact\n\nAny questions or remarks can be submitted in the [issue tracker](https://github.com/RoelBrouwer/continuousresource/issues) or be directed to R.J.J. Brouwer (for contact details, see above).\n\n## Getting Started\n\n### Prerequisites\nTo use the scripts in this repository with [CPLEX](https://www.ibm.com/products/ilog-cplex-optimization-studio) or [Gurobi](https://www.gurobi.com/), you need to have a (licensed) copy of the appropriate software installed on your computer. Instructions are listed below for each of the solvers.\n\nIn the current version, solvers other than CPLEX are only supported for a subset of all functionality.\n\n#### CPLEX\n1. Obtain a copy of [IBM's ILOG CPLEX Optimization Studio](https://www.ibm.com/products/ilog-cplex-optimization-studio). At the time of writing, v12.10.0 is the most recent version.\n2. The installation wizard will tell you what to do to expose the CPLEX Python API. If not, follow [the CPLEX Python setup guide](https://www.ibm.com/support/knowledgecenter/SSSA5P_12.10.0/ilog.odms.cplex.help/CPLEX/GettingStarted/topics/set_up/Python_setup.html).\n\n#### Gurobi\n1. Obtain a copy of [Gurobi Optimizer](https://www.gurobi.com/downloads/). At the time of writing, v9.0.2 is the most recent version.\n2. After installation, the Python API of Gurobi should be ready for use.\n    - If you start a \"fresh\" [conda](https://docs.conda.io/) environment, be aware that the current version of `gurobi` requires your Python version to be `\u003c3.8`.\n    - You can get around this by manually setting up the `gurobi` package from the source of you Gurobi Optimizer copy. See [this community question on using Gurobi with higher Python versions](https://support.gurobi.com/hc/en-us/community/posts/360059881591-Gurobi-with-python-version-3-8) and its answers (in particular [this one](https://support.gurobi.com/hc/en-us/community/posts/360059881591/comments/360012744731)) for more details.\n\n### Installation\n\nIt is recommended that you use [conda](https://docs.conda.io/) to manage your environment. If you choose to configure your environment manually, be sure to install the dependencies listed in the appropriate `.yml` files, and ignore steps 1 and 4.\n\n1. Install conda by following the [installation instructions](https://conda.io/projects/conda/en/latest/user-guide/install/index.html).\n2. Clone this git repository into a directory on your local system.\n\nwith HTTPS:\n```sh\ngit clone https://github.com/RoelBrouwer/continuousresource.git \u003cRELATIVE_FOLDER_PATH\u003e\n```\n\nor SSH :\n```sh\ngit clone git@github.com:RoelBrouwer/continuousresource.git \u003cRELATIVE_FOLDER_PATH\u003e\n```\n\n3. Open the Anaconda prompt (Windows) or a terminal window (MacOS, Linux) and navigate to the installation folder.\n4. Create a new environment based on the appropriate `.yml`-file(s) ([`cplexenv`](cplexenv.yml), [`instancegeneration`](instancegeneration.yml) or [`solve`](solve.yml))\n```sh\nconda env create --file \u003cENVNAME\u003e.yml\n```\n5. Install the `continuousresource` package by navigating into the directory where the repository is located and running:\n```sh\npython setup.py install\n```\n\nIf you have set up the solvers as instructed in the [prerequisites section](#prerequisites), you are all set to use the scripts in this repository.\n\n## Usage\n\nYou can use the package by importing any of the functions or classes from the continuousresource package. Look at the [Placeholder for a link to generated documentation]() for detailed technical documentation.\n\nExample uses and related scripts are located in the [`continuousresource/scripts` folder](continuousresource/scripts):\n- [`instancegeneration.py`](continuousresource/scripts/instancegeneration.py): generates a single problem instance\n- [`jobarrayinstancegeneration.py`](continuousresource/scripts/instancegeneration.py): generates a single problem instance\n- [`lp_stresstest.py`](continuousresource/scripts/lp_stresstest.py): creates and solves an LP based on a number of randomly generated instances\n- [`multipleinstancegeneration.py`](continuousresource/scripts/multipleinstancegeneration.py): like `instancegeneration.py`, but generating instances in bulk for a large number of parameter combinations\n- [`runtests.py`](continuousresource/scripts/runtests.py): solves the same problem instance with a number of different techniques and compares the results.\n- [`solveinstance.py`](continuousresource/scripts/instancegeneration.py): solve a single problem instance using a single approach\n- [`test_simulated_annealing.py`](continuousresource/scripts/test_simulated_annealing.py): testrun implementing a simulated annealing approach\n\n\nTwo quick example uses are described in detail below.\n\n### Generating instances\n\n1. Open the Anaconda prompt (Windows) or a terminal window (MacOS, Linux) and navigate to the installation folder.\n2. Activate the [`instancegeneration`](instancegeneration.yml) environment\n```sh\nconda activate instancegeneration\n```\n3. Run the instancegeneration script with the appropriate parameters, e.g.:\n```sh\npython scripts/instancegeneration.py -n 5 -m 1 -k 2 -f both -p data/smallinstance\n```\nNote: make sure to create the `data` directory first, when running this example command as-is.\n\n### Solving a model for an instance\n\n1. Open the Anaconda prompt (Windows) or a terminal window (MacOS, Linux) and navigate to the installation folder.\n2. Activate the [`solve`](solve.yml) environment\n```sh\nconda activate solve\n```\n3. Run the solveinstance script with the appropriate parameters, e.g.:\n```sh\npython scripts/solveinstance.py -f csv -p data/smallinstance -m dof -e 1 -s glpk -o results\n```\nNote: make sure to create the `results` directory first, when running this example command as-is.\n\n## Links\n\n_Placeholder._\n\n## Notes\n\n_Placeholder._\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froelbrouwer%2Fcontinuousresource","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Froelbrouwer%2Fcontinuousresource","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froelbrouwer%2Fcontinuousresource/lists"}