{"id":20669511,"url":"https://github.com/iitis/rcm","last_synced_at":"2026-04-17T20:32:09.022Z","repository":{"id":73908657,"uuid":"453879990","full_name":"iitis/rcm","owner":"iitis","description":"Railway Conflict Management using D-Wave annealers","archived":false,"fork":false,"pushed_at":"2022-01-31T04:45:33.000Z","size":15,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-17T17:59:32.915Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iitis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-31T04:36:18.000Z","updated_at":"2022-01-31T04:36:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"a94c4e2a-2374-449b-85af-b306de7e3e43","html_url":"https://github.com/iitis/rcm","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/iitis/rcm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iitis%2Frcm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iitis%2Frcm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iitis%2Frcm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iitis%2Frcm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iitis","download_url":"https://codeload.github.com/iitis/rcm/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iitis%2Frcm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31945004,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-17T17:29:20.459Z","status":"ssl_error","status_checked_at":"2026-04-17T17:28:47.801Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2024-11-16T20:14:37.547Z","updated_at":"2026-04-17T20:32:08.999Z","avatar_url":"https://github.com/iitis.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RCM Railway Conflict Management using D-Wave\n\nThis repository contains code used for running experiments described in the paper: \n\nKrzysztof Domino, Mátyás Koniorczyk, Krzysztof Krawiec, Konrad Jałowiecki, Sebastian Deffner, Bartłomiej Gardas\n*[Quantum annealing in the NISQ era: railway conflict management](https://arxiv.org/abs/2112.03674)*\n\n## About\n\nThis repository provides `rcm` (short for Railway Conflict Management) Python package. The \npackage contains scripts that cen be used for reproducing results from the manuscript:\n\n- `rcm-find-min-chimera-size`: script for (heuristically) determining minimum lattice size of \n  a square Chimera graph on which given Binary Quadratic Model can be embedded.\n- `rcm-run-experiment`: script for running actual experiments on D-Wave annealers.\n\n## Installation\n\nWe highly recommend using fresh virtual environment or conda environment for the package\ninstallation. Note that repository is compatible with Python \u003e= 3.8.\n\n1. Clone or download the repository.\n2. In the root directory of the repository run\n   ```bash\n   pip install .\n   ```\n   This will install all the dependencies as well as the `rcm` package. Command line scripts \n   will be installed and can be invoked directly from the shell as long as the correct virtual \n   environment is active.\n\n## Command line interface\n\nThe package provides several command line utilities.\n\n### rcm-run-experiment\n\nThis script is used to run actual experiments on D-Wave. Optionally, experiments could be run with\nmock simulator\n(using the [dimodmock](https://pypi.org/project/dimodmock/) package)\ninstead, which can be useful for checking integration with the rest of your pipeline before \nrunning actual experiments on D-Wave.\n\n```text\nusage: rcm-run-experiment [-h] [--mock] config\n\nSample railway conflict management QUBO, optionally using mock simulator.\n\npositional arguments:\n  config      Configuration file.\n\noptional arguments:\n  -h, --help  show this help message and exit\n  --mock      Use mock simulator instead of real machine. Warning: this will return random results without using your time on D-Wave.\n```\n\nThe configuration file describes the experiment. An example below (as well as\nthe `example-config.yaml` file)\nshows the expected file format. Please refer to the manuscript for the explanation of the \nterminology\nused in comments.\n\nExperiments are run in *batches*, since D-Wave API has a limit on a single job duration. For\ninstance, you might wish to split your experiment comprising 10k reads into 10 batches of 1k reads.\n\nAll experiments run by this script are checkpointed, meaning that running the same experiment with\nthe same, unchanged configuration file will reuse any previous partial result. This is useful e.g.\nin case of a network failure. If you wish to perform a fresh experiment, you have to manually remove\nthe output directory.\n\n```yaml\nsolver_name: DW_2000Q_6             # Name of the D-Wave solver to use\ninput_file: qubo.txt                # Path (relative or absolute) to the instance file\nembedding_file: embedding.pickle    # Path to the embedding saved as pickle file\n# Embeddings should be saved as \noutput_dir: ./result                # Path (relative or absolute) where results should be saved\nchain_strength_scales: [ 2.0, 3.0 ] # List of chain strength scales to use\nannealing_times: [ 5, 20 ]          # List of annealing time (in microseconds) to use\nbatch_size: 100                     # Batch size\nnum_batches: 2                      # Number of batches\n```\n\n### rcm-find-min-chimera-size\n\nThis script is used for finding minimum size of a square Chimera graph for which given problem can\nembedded. Note that this is merely a convenience script for using\n[minorminer](https://github.com/dwavesystems/minorminer).\n\n```text\nusage: rcm-find-min-chimera-size [-h] [--num-tries NUM_TRIES] [--min-size MIN_SIZE] [--max-size MAX_SIZE] [--threads THREADS] [--seed SEED] instance\n\nFind minimum size (number of rows and columns) of a square Chimera lattice for which given \nproblem can be embedded.\n\npositional arguments:\n  instance\n\noptional arguments:\n  -h, --help            show this help message and exit\n  --num-tries NUM_TRIES\n                        Number of tries for minorminer runs\n  --min-size MIN_SIZE   Smallest square Chimera size to try.\n  --max-size MAX_SIZE   Largest square Chimera size to try. If not provided, larger Chimera sizes will be tried until an embedding is found.\n  --threads THREADS     Number of threads to use by minorminer.\n  --seed SEED           Random seed passed to minorminer\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiitis%2Frcm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiitis%2Frcm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiitis%2Frcm/lists"}