{"id":38553677,"url":"https://github.com/compnet/enumcc","last_synced_at":"2026-01-17T07:38:47.551Z","repository":{"id":145486036,"uuid":"405034876","full_name":"CompNet/EnumCC","owner":"CompNet","description":null,"archived":false,"fork":false,"pushed_at":"2024-10-05T18:06:32.000Z","size":433,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-09-10T05:08:48.126Z","etag":null,"topics":["correlation-clustering","graph-partitioning","operations-research","signed-graphs"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CompNet.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-09-10T09:59:57.000Z","updated_at":"2024-10-05T18:06:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"ff036a70-e4b3-4b38-95d9-38c3b5bb6442","html_url":"https://github.com/CompNet/EnumCC","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/CompNet/EnumCC","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CompNet%2FEnumCC","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CompNet%2FEnumCC/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CompNet%2FEnumCC/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CompNet%2FEnumCC/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CompNet","download_url":"https://codeload.github.com/CompNet/EnumCC/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CompNet%2FEnumCC/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28504356,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T06:57:29.758Z","status":"ssl_error","status_checked_at":"2026-01-17T06:56:03.931Z","response_time":85,"last_error":"SSL_read: 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":["correlation-clustering","graph-partitioning","operations-research","signed-graphs"],"created_at":"2026-01-17T07:38:47.408Z","updated_at":"2026-01-17T07:38:47.530Z","avatar_url":"https://github.com/CompNet.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"EnumCC\n===================\nEfficient Enumeration of Correlation Clustering Optimal Solution Space\n\n* Copyright 2020-21 Nejat Arınık\n\n*EnumCC* is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation. For source availability and license information see the file `LICENCE`\n\n* **Lab site:** http://lia.univ-avignon.fr/\n* **GitHub repo:** https://github.com/CompNet/EnumCC\n* **Contact:** Nejat Arınık \u003carinik9@gmail.com\u003e, Vincent Labatut \u003cvincent.labatut@univ-avignon.fr\u003e\n\n-------------------------------------------------------------------------\n\n## Description\n`EnumCC` is an optimal solution space enumeration method for the *Correlation Clustering (CC)* problem. It relies on two essential tasks: Recurrent neighborhood search (*RNS*) and *jumping* onto an undiscovered solution. The former is performed by the component `RNSCC`, whereas the latter is done by the commercial solver `Cplex`.\n\nIn the first step, instead of directly *jumping* onto undiscovered optimal solutions one by one through `Cplex`, as in a traditional sequential approach, its component `RNSCC` discovers the recurrent neighborhood of the current optimal solution *P* with the hope of discovering new optimal solutions. The recurrent neighborhood of an optimal solution *P*, represents the set of optimal solutions, reached directly or indirectly from *P* depending on the maximum distance parameter *maxNbEdit*. Whether a new solution is found or not through `RNSCC`, the jumping process into a new solution *P* is performed. If *P* is not empty, the workflow of `RNS` and *jumping* is repeated again. Otherwise, the enumeration process stops. See our article [[Arınık'23](#references)] for more details.\n\nIf you use this software, please cite article [[Arınık'23](#references)]:\n```bibtex\n@Article{Arinik2023,\n  author    = {Arınık, Nejat and Figueiredo, Rosa and Labatut, Vincent},\n  title     = {Efficient Enumeration of the Optimal Solutions to the Correlation Clustering problem},\n  journal   = {Journal of Global Optimization},\n  year      = {2023},\n  volume    = {86},\n  pages     = {355-391},\n  doi       = {10.1007/s10898-023-01270-3},\n}\n```\n\n\n## Input parameters\n * `inFile`: Input file path. See `in/exemple.G` for the input graph format. \n\n * `outDir`: Output directory path. Default `.` (i.e. the current directory).\n\n * `initMembershipFilePath`: The membership file path, from which the `RNSCC` starts. It must be an optimal solution of the given signed graph. Moreover, It must be named as `membership0.txt` or something different than `membership\u003cx\u003e.txt`. See `out/exemple/membership0.txt` for its format. This file can be obtained through  [ExCC](https://github.com/CompNet/ExCC) by running the script `run-cp-bb.sh`.\n\n * `java.library.path`: The `Cplex` Java library path. It is usually found in `\u003cYOUR_CPLEX_PATH\u003e/cplex/lib/cplex.jar`.\n\n * `maxNbEdit`: The maximum value edit distance value to be considered in edit operations. We show in our experiments that `maxNbEdit=3` is usually more appropriate. \n\n * `tilim`: Time limit in seconds for the whole program. Default `-1`, which means no time limit.\n  \n * `solLim`: Maximum number of optimal solutions to be discovered. This can be useful when there is a huge number of optimal solutions, e.g. 50,000. Default `-1`.\n\n * `JAR_filepath_RNSCC`: The jar file path for `RNSCC`.\n\n * `LPFilePath`: It allows to import a `Cplex` LP file, corresponding to a ILP formulation of a signed graph for the CC problem. *Remark:* Such a file is obtained through Cplex by doing `exportModel()`. This file can be obtained through [ExCC](https://github.com/CompNet/ExCC) by running the script `run-cp-bb.sh`. In `ExCC`, the name of this file is `strengthedModelAfterRootRelaxation.lp`.\n\n\n## Instructions \u0026 Use\n\n### Use 1\nInstall [`IBM CPlex`](https://www.ibm.com/docs/en/icos/20.1.0?topic=2010-installing-cplex-optimization-studio). The default installation location is: `/opt/ibm/ILOG/CPLEX_Studio\u003cYOUR_VERSION\u003e`. Tested with `Cplex` 12.8 and 20.1.\n\nPut `/opt/ibm/ILOG/CPLEX_Studio\u003cYOUR_VERSION\u003e/cplex/lib/cplex.jar` into the `lib` folder in this repository.\n\nCompile and get the jar file for *RNSCC*: `ant -v -buildfile build-rns.xml compile jar`.\n\nCompile and get the jar file for *EnumCC* `ant -v -buildfile build.xml compile jar`.\n\nWe need a starting optimal solution and the ILP model of the given signed graph. We can obtain them by running the script `run-cp-bb.sh` in the [ExCC](https://github.com/CompNet/ExCC) repository.\n\nRun the script `run.sh`.\n\n\n### Use 2\nPut `/opt/ibm/ILOG/CPLEX_Studio\u003cYOUR_VERSION\u003e/cplex/lib/cplex.jar` into the `lib` folder in this repository.\n\nCompile and get the jar file for `RNSCC`: `ant -v -buildfile build-rns.xml compile jar`.\n\nCompile and get the jar file for `EnumCC`: `ant -v -buildfile build.xml compile jar`.\n\nDownload the [Sosocc](https://github.com/CompNet/Sosocc) repository and put these jar files into the `lib` folder. Then, run first `ExCC` and then `EnumCC(3)`. See the instructions of the `Sosocc` repository for more details.\n\nExample command:\n```\nant -v -buildfile build.xml compile jar\nant -v -buildfile build.xml -DinFile=\"in/example.G\" -DoutDir=\"out/example\" -DmaxNbEdit=3 -DinitMembershipFilePath=\"out/example/membership0.txt\" -DLPFilePath=\"strengthedModelAfterRootRelaxation.lp\" -DJAR_filepath_RNSCC=\"RNSCC.jar\" -DnbThread=4 -Dtilim=-1 -DsolLim=5000 run\n```\n\n\n## Output\n\n* `\u003cx\u003e`: Folder `\u003cx\u003e`, where `x is a numerical value starting from 1. Each folder contains the result of a `RNSCC` execution and possesses one or multiple optimal solutions.\n* `allResults.txt`: File storing all absolute paths of the discovered optimal solutions.\n* `exec-time.txt`: Execution time for the whole enumeration process.\n* `jump-exec-time\u003cx\u003e.txt`: Execution time for the `x`.th jumping process through `Cplex`.\n* `jump-log\u003cx\u003e.txt`: `Cplex` log file regarding the the `x`.th jumping process.\n* `jump-status\u003cx\u003e.txt`: The `Cplex` status result in the end of the jumoing process. Three values are possible: `Optimal`, `SolLim`, `Infeasible`.\n* `membership\u003cx\u003e.txt`: The starting membership file for the (`x+1`).th `RNSCC` process.\n\n\n## References\n* **[Arınık'23]** N. Arınık \u0026 R. Figueiredo \u0026 V. Labatut. *Efficient Enumeration of the Optimal Solutions to the Correlation Clustering problem*, Journal of Global Optimization, 86:355-391, 2023. DOI: [10.1007/s10898-023-01270-3](http://doi.org/10.1007/s10898-023-01270-3) [⟨hal-03935831⟩](https://hal.archives-ouvertes.fr/hal-03935831)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcompnet%2Fenumcc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcompnet%2Fenumcc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcompnet%2Fenumcc/lists"}