{"id":13748681,"url":"https://github.com/RobertObkircher/sat-solver","last_synced_at":"2025-05-09T11:31:13.218Z","repository":{"id":203417074,"uuid":"708904020","full_name":"RobertObkircher/sat-solver","owner":"RobertObkircher","description":"CDCL SAT Solver","archived":false,"fork":false,"pushed_at":"2023-10-27T12:26:27.000Z","size":80,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-05-22T19:32:25.361Z","etag":null,"topics":["cdcl","sat","sat-solver"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/RobertObkircher.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}},"created_at":"2023-10-23T16:05:42.000Z","updated_at":"2023-10-25T17:12:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"cb530654-30a9-414f-b544-d97c50aedd59","html_url":"https://github.com/RobertObkircher/sat-solver","commit_stats":null,"previous_names":["robertobkircher/sat-solver"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobertObkircher%2Fsat-solver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobertObkircher%2Fsat-solver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobertObkircher%2Fsat-solver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobertObkircher%2Fsat-solver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RobertObkircher","download_url":"https://codeload.github.com/RobertObkircher/sat-solver/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253240350,"owners_count":21876593,"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":["cdcl","sat","sat-solver"],"created_at":"2024-08-03T07:00:47.374Z","updated_at":"2025-05-09T11:31:12.932Z","avatar_url":"https://github.com/RobertObkircher.png","language":"Rust","funding_links":[],"categories":["Projects"],"sub_categories":["Provers and Solvers"],"readme":"# sat-solver\n\nA simple SAT solver based on the lecture `185.A93 Formal Methods in Computer Science` at TU Wien.\n\n# benchmark\n\n- The input files were from https://www.cs.ubc.ca/~hoos/SATLIB/benchm.html, but \nfor some reason they had `%`, `0`, and a newline at the end, \nwhich I removed with `for f in *.cnf; do head -n -3 \"$f\" \u003e \"${f}2\"; done; rm *.cnf`.\n- script: `./benchmark.sh`\n- On small instances, the performance is similar to `minisat`, but on larger ones we are much slower:\n\nUniform Random-3-SAT: 50 variables, 218 clauses - 1000 instances, all SAT\n```\nBenchmark 1: for f in inputs/uf50-218/*.cnf2; do target/release/sat-solver \"$f\"; done\n  Time (mean ± σ):      3.823 s ±  0.458 s    [User: 2.744 s, System: 1.056 s]\n  Range (min … max):    3.040 s …  4.528 s    10 runs\n \nBenchmark 2: for f in inputs/uf50-218/*.cnf2; do minisat -verb=0 \"$f\"; done; exit 0\n  Time (mean ± σ):      4.643 s ±  1.227 s    [User: 2.557 s, System: 2.061 s]\n  Range (min … max):    3.324 s …  7.241 s    10 runs\n \nSummary\n  for f in inputs/uf50-218/*.cnf2; do target/release/sat-solver \"$f\"; done ran\n    1.21 ± 0.35 times faster than for f in inputs/uf50-218/*.cnf2; do minisat -verb=0 \"$f\"; done; exit 0\n```\nUniform Random-3-SAT: 50 variables, 218 clauses - 1000 instances, all UNSAT\n```\nBenchmark 1: for f in inputs/uuf50-218/*.cnf2; do target/release/sat-solver \"$f\"; done\n  Time (mean ± σ):      5.227 s ±  0.745 s    [User: 4.140 s, System: 1.067 s]\n  Range (min … max):    4.160 s …  6.787 s    10 runs\n \nBenchmark 2: for f in inputs/uuf50-218/*.cnf2; do minisat -verb=0 \"$f\"; done; exit 0\n  Time (mean ± σ):      4.466 s ±  0.751 s    [User: 2.520 s, System: 1.921 s]\n  Range (min … max):    3.442 s …  5.747 s    10 runs\n \nSummary\n  for f in inputs/uuf50-218/*.cnf2; do minisat -verb=0 \"$f\"; done; exit 0 ran\n    1.17 ± 0.26 times faster than for f in inputs/uuf50-218/*.cnf2; do target/release/sat-solver \"$f\"; done\n```\nUniform Random-3-SAT: 150 variables, 645 clauses - 100 instances, all SAT\n```\nBenchmark 1: for f in inputs/uf150-645/*.cnf2; do target/release/sat-solver \"$f\"; done\n  Time (mean ± σ):     100.024 s ±  0.086 s    [User: 99.883 s, System: 0.133 s]\n  Range (min … max):   99.928 s … 100.094 s    3 runs\n \nBenchmark 2: for f in inputs/uf150-645/*.cnf2; do minisat -verb=0 \"$f\"; done; exit 0\n  Time (mean ± σ):      1.198 s ±  0.002 s    [User: 1.001 s, System: 0.195 s]\n  Range (min … max):    1.196 s …  1.200 s    3 runs\n \nSummary\n  for f in inputs/uf150-645/*.cnf2; do minisat -verb=0 \"$f\"; done; exit 0 ran\n   83.47 ± 0.17 times faster than for f in inputs/uf150-645/*.cnf2; do target/release/sat-solver \"$f\"; done\n```\nUniform Random-3-SAT: 150 variables, 645 clauses - 100 instances, all UNSAT\n```\nBenchmark 1: for f in inputs/uuf150-645/*.cnf2; do target/release/sat-solver \"$f\"; done\n  Time (mean ± σ):     377.046 s ±  0.161 s    [User: 376.811 s, System: 0.208 s]\n  Range (min … max):   376.868 s … 377.183 s    3 runs\n \nBenchmark 2: for f in inputs/uuf150-645/*.cnf2; do minisat -verb=0 \"$f\"; done; exit 0\n  Time (mean ± σ):      2.574 s ±  0.005 s    [User: 2.354 s, System: 0.217 s]\n  Range (min … max):    2.570 s …  2.580 s    3 runs\n \nSummary\n  for f in inputs/uuf150-645/*.cnf2; do minisat -verb=0 \"$f\"; done; exit 0 ran\n  146.49 ± 0.31 times faster than for f in inputs/uuf150-645/*.cnf2; do target/release/sat-solver \"$f\"; done\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRobertObkircher%2Fsat-solver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FRobertObkircher%2Fsat-solver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRobertObkircher%2Fsat-solver/lists"}