{"id":19280351,"url":"https://github.com/sraaphorst/nibac","last_synced_at":"2025-08-15T14:07:25.737Z","repository":{"id":84878000,"uuid":"47363626","full_name":"sraaphorst/nibac","owner":"sraaphorst","description":"C++ Nonisomorphic Branch-and-Cut","archived":false,"fork":false,"pushed_at":"2024-01-31T04:35:53.000Z","size":3175,"stargazers_count":0,"open_issues_count":10,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-23T21:44:47.769Z","etag":null,"topics":["branch-and-cut","combinatorial-objects","covering","isomorphism","linear-programming"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sraaphorst.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-12-03T22:02:27.000Z","updated_at":"2024-01-31T04:35:57.000Z","dependencies_parsed_at":"2025-01-05T16:39:27.572Z","dependency_job_id":null,"html_url":"https://github.com/sraaphorst/nibac","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sraaphorst/nibac","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sraaphorst%2Fnibac","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sraaphorst%2Fnibac/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sraaphorst%2Fnibac/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sraaphorst%2Fnibac/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sraaphorst","download_url":"https://codeload.github.com/sraaphorst/nibac/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sraaphorst%2Fnibac/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270579613,"owners_count":24610044,"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","status":"online","status_checked_at":"2025-08-15T02:00:12.559Z","response_time":110,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["branch-and-cut","combinatorial-objects","covering","isomorphism","linear-programming"],"created_at":"2024-11-09T21:17:55.005Z","updated_at":"2025-08-15T14:07:25.690Z","avatar_url":"https://github.com/sraaphorst.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# nibac\n\n**Status:** Complete, but the code is very old (circa 2004). I will likely be rewriting this soon.\n\n# C++ Nonisomorphic Branch-and-Cut\n\nThis is the code that I used to generate results for my Master's Thesis in computer science.\nIt is based in part on a series of papers by Francois Margot in order to produce a branch-and-cut search / generation algorithm where the symmetry group of the problem is either specified or determined, and used to prune nodes from the search space so that only one solution per isomorphism class (i.e. one orbit per the partition of solutions as induced by the symmetry group) is produced.\n\n# Warning\n\nWhile I am trying to clean it up for public distribution, this code is messy and disorganized. Use at your own risk.\n\nIt still compiles, provided you set the paths properly in `src/Makefile`. After installing `glpk` and `nauty` (see below), you should `make` and then `make install`. The examples should then properly compile. While nauty is not yet built into the final library, the plan is to include it.\n\nRight now things might break as I am migrating from a plain makefile to `CMake` for configuration of the project and to include nauty in the final library to facilitate usage. I am working in CLion and thus, there are CLion project files included in the repository.\n\n# LP Solver\n\nnibac requires the use of an external LP solver in order to solve LPs at each node. Support is currently provided for both (older versions of) the commercial CPLEX and the free, open source GLPK. I recommend you use GLPK 4.47, as that was the API under which this code was written, and significant, incompatible changes have been introduced into GLPK in later versions.\n\nYou can obtain it here:\nhttp://ftp.gnu.org/gnu/glpk/glpk-4.47.tar.gz\n\nI intend to write a plugin for Clp, the COIN-OR LP solver. More information can be found here:\n\nhttps://projects.coin-or.org/Clp\n\nIt was last tested with CPLEX 7; as I no longer have access to CPLEX and it is a commercial application, CPLEX support for updated versions will likely not be provided.\n\n# nauty\n\nBrendan McKay's nauty (released under the Apache License 2.0) is also necessary. We recommend version 22, and as it doesn't install nicely and comes with many features unnecessary for nibac, we include a heavily pared down bare-bones version in [`src_extern/nauty22`](src_extern/nauty22) that, when the update to this project is completed, should be configured, built, and bundled automatically in the final nibac library. In the interim, you will have to provide access to the headers and `.o` files by modifying [`src/Makefile`](src/Makefile).\n\nFor more information about nauty, please visit:\n\nhttp://users.cecs.anu.edu.au/~bdm/nauty\n\n# Final notes\n\nThe core code for nibac is contained in [`src`](src).\n\nExamples using nibac are contained in [`examples`](examples) and are not built by default.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsraaphorst%2Fnibac","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsraaphorst%2Fnibac","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsraaphorst%2Fnibac/lists"}