{"id":31698681,"url":"https://github.com/anjlab/sat3","last_synced_at":"2025-12-30T01:12:24.071Z","repository":{"id":1099363,"uuid":"960343","full_name":"anjlab/sat3","owner":"anjlab","description":"Reference Implementation of Romanov's Polynomial Algorithm for Boolean 3-SAT Problem","archived":false,"fork":false,"pushed_at":"2016-01-04T21:22:18.000Z","size":1752,"stargazers_count":87,"open_issues_count":1,"forks_count":6,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-04-14T16:11:04.064Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://romvf.wordpress.com/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anjlab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2010-10-04T11:51:00.000Z","updated_at":"2022-10-23T14:09:24.000Z","dependencies_parsed_at":"2022-08-16T12:00:45.242Z","dependency_job_id":null,"html_url":"https://github.com/anjlab/sat3","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/anjlab/sat3","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anjlab%2Fsat3","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anjlab%2Fsat3/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anjlab%2Fsat3/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anjlab%2Fsat3/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anjlab","download_url":"https://codeload.github.com/anjlab/sat3/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anjlab%2Fsat3/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279000702,"owners_count":26082805,"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-10-08T02:00:06.501Z","response_time":56,"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":[],"created_at":"2025-10-08T19:07:09.969Z","updated_at":"2025-10-08T19:07:13.708Z","avatar_url":"https://github.com/anjlab.png","language":"Java","funding_links":[],"categories":["人工智能"],"sub_categories":["约束编程"],"readme":"# 1. What this project is about\n\nThis project is reference implementation of [Romanov's Polynomial Algorithm](http://romvf.wordpress.com/)\nfor [3-SAT Problem](http://en.wikipedia.org/wiki/Boolean_satisfiability_problem#3-satisfiability). \nAlgorithm implemented in pure Java with command line interface. \nCurrent version is single-threaded implementation.\n\n# 2. How to run experiments\n\n__Note__: Java 1.6 should be installed on your machine and Java \nbinaries should be in your system PATH.\n\nWe support [DIMACS CNF file format](http://logic.pdmi.ras.ru/~basolver/dimacs.html)\nas input files. Examples can be found [here](http://www.cs.ubc.ca/~hoos/SATLIB/benchm.html).\nInput files can contain k-SAT instances, we convert them to 3-SAT on the fly. \n\nNote that k-SAT to 3-SAT reduction leads to an increase in the \nnumber of variables and clauses.\n\nAs a result we generate two files:\n\n1.  [input-file-name]-__results.txt__ - this file contains formula \n     classification result (SAT or UNSAT) and additional info (time\n     measurements and satisfying set if formula is SAT). \n\n     See [How to read output files](https://github.com/anjlab/sat3/wiki/How-to-read-output-files)\n     wiki page.\n     \n2.  [input-file-name]-__hss-0.png__ - this file contains graphical \n    representation of basic graph (see [Romanov's paper for reference](http://arxiv.org/abs/1011.3944)).\n    \n    Red colored path represents HS route which is joint satisfying set \n    for the formula.\n\n\nSee [Solving-article-example.cnf](https://github.com/anjlab/sat3/wiki/Solving-article-example.cnf)\nwiki page for sample outputs.\n  \n## Step by step instructions to get your first results:\n\nFor first try we recommend formulas with variables count \u003c 75 and number\nof clauses ~ 100 (you can find them in downloaded package). They can be \nsolved within few minutes. \n\nNote that it took about 14 hours for this reference implementation to \nsolve satisfiable 3-SAT instances with variable count = 398 and\nnumber of clauses = 1040 (flat50-115 from \n[\"Flat\" Graph Colouring set](http://www.cs.ubc.ca/~hoos/SATLIB/benchm.html)).\n\n1. Download and extract [package](https://github.com/downloads/anjlab/sat3/3-sat-experiment-2.0.0-PRE-bin.zip)\n2. Unzip package to any folder __[target_folder]__\n3. Run console and __`cd`__ to __[target_folder]__\n4. In console run following command:\n\n   on windows\n\n        solve examples\\uf50-01000.cnf\n       \n   on linux/mac os x (__ruby is required__)\n    \n        ./solve examples/uf50-01000.cnf\n      \n5. By default output files will be created in the same folder as input \n   file\n\nRefer to [Command line tools](https://github.com/anjlab/sat3/wiki/Command-line-tools)\nwiki page for more options.\n\n# 3. License\n(LGPL version 3)\n\nCopyright (c) 2010 AnjLab\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with this program.  If not, see \u003chttp://www.gnu.org/licenses/\u003e.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanjlab%2Fsat3","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanjlab%2Fsat3","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanjlab%2Fsat3/lists"}