MINISAT+(1)

πŸ‘‘ MINISAT+(1) β€” the manual page, but make it cute

okay so bestie, we're in section 1 of the manual (general commands, the good stuff πŸ’…) and the command we're stanning today is literally called minisat+. buckle up πŸŽ€


✨ NAME ✨

minisat+ β€” a solver for Pseudo-Boolean constraints. she solves. that's the vibe. 🧚


🌸 SYNOPSIS 🌸

minisat+ <input-file> [<result-file>] [<option> ...]

so like, give her an input file, optionally a result file, and then as many options as your heart desires. go off πŸ’–


πŸ¦‹ DESCRIPTION πŸ¦‹

MiniSat+ is a solver for Pseudo-Boolean constraints, and she's built on top of MiniSat. iconic lineage, no cap.

so what even is a Pseudo-Boolean constraint? okay so it's this thing you can use to describe certain kinds of combinatorial optimization problems. the variables are Boolean, meaning they can only take the values 0 or 1 β€” literally just two moods, we love a binary queen. but the (in-)equations used in hard constraints and objective functions can use arbitrary integer coefficients. so like, the variables are minimal but the coefficients are main character energy. 😌

Minisat+ accepts problem specifications written in the OPB format. that's the tea. πŸ“


πŸ’… OPTIONS πŸ’…

πŸ”₯ Solver options:

  • -M, -minisat β€” Use MiniSat v1.13 as the backend. this is the default btw, the og.
  • -S, -satelite β€” Use SatELite v1.0 as the backend instead. switching it up ✨
  • -ca, -adders β€” Convert PB-constrs to clauses through adders.
  • -cs, -sorters β€” Convert PB-constrs to clauses through sorters.
  • -cb, -bdds β€” Convert PB-constrs to clauses through bdds.
  • -cm, -mixed β€” Convert PB-constrs to clauses by a mix of the above. this one's the default, she contains multitudes 🌈
  • -ga, -gs, -gb, -gm β€” Override the conversion for the goal function. (long name: -goal-xxx). pick your fighter πŸ’€
  • -w, -weak-off β€” Clausify with equivalences instead of implications.
  • -bdd n, -thres=n β€” Set the threshold for preferring BDDs in mixed mode to n. (default: 3)
  • -sort-thres=n β€” Set the threshold for preferring sorters to n. this gets tried after BDDs. (default: 20)
  • -goal n, -bias=n β€” Set the bias of the goal function conversion towards sorters to n. (default: 3)
  • -1, -first β€” Don't minimize, just give the first solution found. fastest girl in the room πŸƒβ€β™€οΈ
  • -A, -all β€” Don't minimize, give all the solutions. she's generous like that.
  • -goal=n β€” Set the initial goal limit to n.
  • -p, -pbvars β€” Restrict the decision heuristic of SAT to the original PB variables.
  • -ps{+,-,0} β€” Polarity suggestion in SAT, towards / away from the goal, or neutral. three whole settings, pick your vibe.

🌸 Input options:

  • -of, -old-fmt β€” Use the old variant of the OPB file format. vintage, retro, archival πŸŽ€

πŸ’œ Output options:

  • -s, -satlive β€” Turn off SAT competition output.
  • -a, -ansi β€” Turn off ANSI codes in the output.
  • -vn β€” Set the verbosity level to n. possible values for n are 1, 2, 3. (default: 1)
  • -cnf=file β€” Write the SAT problem to a file called file. but if the input problem is found to be trivially unsatisfiable, then no file is written. heads up on that one 🫢

πŸ’€ EXIT CODES πŸ’€

if the parsing of the input fails, then the program exits with exit code 5. so if you see a 5, that's the parser telling you the input was not it, bestie. 😭


🫢 AUTHORS 🫢

Minisat+ was written by Niklas Een and Niklas Sorensson. two Niklases, double the talent, we love a collab. πŸ‘‘


and that's the whole page!! this was the minisat+ manual, section 1 of the general commands manual, and the footer just says MINISAT+(1) β€” no extra version string, no date, she's mysterious like that πŸ’…βœ¨

πŸ“¦ where this page comes from