CSDP(1)

πŸ“¦
version 6.2.0 Β· 2 versions
  • 6.2.0 Β· debian bookworm, debian trixie, ubuntu jammy, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking (latest)
  • 6.2.0 Β· fedora 43, fedora 44
, in debian bookworm, debian trixie, ubuntu jammy, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– CSDP β€” the semidefinite program solver, bestie edition πŸ’–

okay so this is the manual for csdp (that's the General Commands Manual one, section 1, iykyk) and honestly? it's a whole vibe. sit down, grab a strawberry πŸ“, and let's get into it.


✨ NAME ✨

csdp β€” semidefinite program solver. that's it. that's the girl. πŸ‘‘


🌸 SYNOPSIS 🌸

csdp <problemfile> <finalsolution> <initialsolution>
csdp-complement <inputgraph> <outputgraph>
csdp-graphtoprob <graph> <problemfile>
csdp-randgraph <rand_graph> <file> <n> <p> [<seed>]
csdp-theta <graph>

five icons, five little command lines, no notes. πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

this page is the quick lil rundown on csdp, csdp-complement, csdp-graphtoprob, csdp-randgraph and csdp-theta. brief but iconic.

  • csdp β€” the interface to solve general semi-definite programs. main character energy fr.
  • csdp-complement β€” computes the complement of a graph and outputs it in csdp problem format.
  • csdp-graphtoprob β€” converts a graph into a csdp problem format file.
  • csdp-randgraph β€” generates a random graph. chaos, but make it structured ✨
  • csdp-theta β€” solves the Lovasz thetha problem. (yes, "thetha", we're keeping it exactly as written, no cap.)

πŸ’… OPTIONS πŸ’…

here's a summary of the options. for the complete description, go read /usr/share/doc/coinor-csdp-doc/csdpuser.pdf β€” she's got the full lore.

  • csdp β€” input problem in the SDPA sparse format.
  • problemfile β€” the name of a file containing the SDP problem in SDPA sparse format. like, the whole point.
  • finalsolution β€” the optional name of a file where the final solution gets saved. cute lil souvenir πŸŽ€
  • initialsolution β€” the optional name of a file to take the initial solution from. starting off strong.

🧚 the param.csdp situation 🧚

so here's the tea: CSDP goes looking for a file named param.csdp in the current directory. if that file doesn't exist? no worries, it just uses default values for all of CSDP's parameters. but if the parameter file is there, then CSDP reads the parameter values from it.

here are the default parameter values, and yes you can literally paste this into a file:

axtol=1.0e-8
atytol=1.0e-8
objtol=1.0e-8
pinftol=1.0e8
dinftol=1.0e8
maxiter=100
minstepfrac=0.90
maxstepfrac=0.97
minstepp=1.0e-8
minstepd=1.0e-8
usexzgap=1
tweakgap=0
affine=0
printlevel=1
perturbobj=1
fastmode=0

πŸŽ€ param.csdp file parameter description πŸŽ€

  • axtol atytol objtol β€” tolerances for primal feasibility, dual feasibility, and relative duality gap.
  • pinftol dinftol β€” tolerances used in determining primal and dual infeasibility.
  • maxiter β€” plimit the total number of iterations that CSDP may use.
  • minstepfrac maxstepfrac β€” determine how close to the edge of the feasible region CSDP will step. if the primal or dual step is shorter than minstepp or minstepd, then CSDP declares a line search failure. πŸ’€
  • usexzgap β€” if this parameter is 0, then CSDP will use the objective function duality gap instead of the tr(XZ) gap.
  • tweakgap β€” if set to 1, and usexzgap is set to 0, then CSDP will attempt to "fix" negative duality gaps. it's giving damage control.
  • affine β€” if the parameter affine is set to 1, then CSDP will take only primal–dual affine steps and not make use of the barrier term. this can be useful for some problems that do not have feasible solutions that are strictly in the interior of the cone of semidefinite matrices.
  • printlevel β€” determines how much debugging information is output. use printlevel=0 for no output and printlevel=1 for normal output. higher values of printlevel will generate more debugging output. (basically: the higher the number, the more it yaps.)
  • perturbobj β€” determines whether the objective function will be perturbed to help deal with problems that have unbounded optimal solution sets. if perturbobj is 0, then the objective will not be perturbed. if perturbobj=1, then the objective function will be perturbed by a default amount. larger values of perturbobj (e.g. 100.0) increase the size of the perturbation. this can be helpful in solving some difficult problems. 🌈
  • fastmode β€” determines whether or not CSDP will skip certain time consuming operations that slightly improve the accuracy of the solutions. if fastmode is set to 1, then CSDP may be somewhat faster, but also somewhat less accurate. speed vs. accuracy, the eternal struggle πŸ™ˆ

⭐ SEE ALSO ⭐

the programs are documented fully in the accompanying .pdf documentation, which can be found in /usr/share/doc/coinor-csdp-doc if the coinor-csdp-doc package is installed. (conditional queen 🫢)


πŸ‘‘ AUTHOR πŸ‘‘

csdp was written by Brian Borchers et al. β€” shoutout, legend.

this manual page was written by Soeren Sonnenburg <sonne@debian.org>, for the Debian project (but may be used by others). generous, iconic, we love to see it πŸ’œ


and that's the whole thing bestie!! this page is dated April 11, 2009, and it's page CSDP(1) from the General Commands Manual. go solve some semidefinite programs, you've absolutely got this. slay πŸ’–βœ¨πŸŽ€