ZIMPL(1)

πŸ“¦ version 3.7.1, in fedora 43, fedora 44

πŸ¦‹ ZIMPL πŸ’–

okay bestie, welcome to the User Manuals corner of the internet, where we're talking about zimpl β€” the Zuse Institute Mathematical Programming Language. yes, that's the whole name. it's giving academic baddie. πŸŽ€


✨ NAME ✨

zimpl β€” Zuse Institute Mathematical Programming Language. periodt.


🌸 SYNOPSIS 🌸

zimpl [ -b ] [ -D name=value ] [ -f ] [ -F filter ] [ -h ] [ -m ] [ -l length [ -n cm|cn|cf ] [ -o outfile ] [ -O ] [ -P filter [ -r ] [ -t lp|mps|hum|rlp|pip ] [ -s seed ] [ -v 0-5 ] [ -V ] file ...

πŸ’œ DESCRIPTION πŸ’œ

So like, Zimpl is a little language whose whole job is translating the mathematical model of a problem into a linear or (mixed-)integer mathematical program, expressed in LPF or MPS file format β€” the kind a LP or MIP solver can actually read. she's a translator, she's multilingual, she's doing the most. πŸ’…

None of the options are necessary, btw. not one. zero. you can just vibe. All the input files in zpl format that you hand over get concatenated and processed as if they were one big file. which means you can literally combine different parts of a model straight on the command line, no cap. and in that case, if you didn't pass an -o option, the first filename given becomes the basename for the output files. main character energy, honestly. πŸ‘‘

Now the -t option is the one that picks your output format:

  • mps can be read by every solver. universal. everyone's friend.
  • lpf is a CPLEX format, but several solvers can read it too. ⚠️ BE aware that for example Range-rows can not be expressed in lpf.
  • if you wanna inspect the output yourself, hum format is a variant of lpf with no name mangeling whatsoever β€” but unfortunately this violates several format restrictions, so no solver will read this in. it's for your eyes only, bestie. πŸ™ˆ
  • if rlp is specified, the output is in lpf format, but the rows and columns are randomly permuted. chaos. love that for us.

✨ OPTIONS ✨

  • -b β€” Enable bison(1) debugging output. πŸƒ
  • -D name=value β€” Sets the parameter name to the specified value. This is equivalent with having this line in the Zimpl program: param name:=val .
  • -f β€” Enable flex(1) debugging output. πŸ’ͺ
  • -F filter β€” The output is piped through a filter. A %s in the string is replaced by the output filename. For example: -F "gzip -c >%s.gz" would compress all the output files. πŸ—œοΈ
  • -h β€” Show program help. hi bestie πŸ‘‹
  • -l length β€” Sets the maximum length for variable names in LPF output files.
  • -m β€” Write a CPLEX .mst Mip STart file.
  • -n cm|cn|cf β€” Select the format for the generation of constraint names. Can be either cm, which will number them 1 ... n with a c in front. cn will use the name supplied in the subto statement and number them 1 ... n within the statement. cf will use the name given with the subto, then a 1 .. n number like in cm and then append all the local variables from the forall statements.
  • -o outfile β€” Sets the base-name for the output files. Default is the name of the input file without extension.
  • -O β€” Optimize the generated LP by doing some presolve analysis (experimental). βš—οΈ
  • -P filter β€” The input is piped through a filter. A %s in the string is replaced by the input filename. For example: -F "cpp -DWITH_C1 %s" would pass the input file through the C-preprocessor.
  • -r β€” Write a CPLEX .ord branching order file.
  • -s seed β€” Set the random number generator seed. 🎲
  • -t lp|mps|hum|rlp|pip β€” Selects the output format. Can be either lp, which is default, or mps, or hum, which is (only) human readable, or rlp, which is randomly permuted, or pip, which means polynimial IP.
  • -v 0-5 β€” Set the verbosity level. 0 is quiet, 1 is default, 2 is verbose, 3 is chatter, and 5 is debug. πŸ—£οΈ
  • -V β€” Prints the version number.

🩺 DIAGNOSTICS 🩺

The following diagnostics may be issued on stderr:

  • 101 Bad filename β€” The name given with the -o option is either missing, a directory name, or starts with a dot. πŸ’€
  • 175 Illegal syntax for command line define -- ignored β€” The parameter of a -D option was either not of the form name=value or the name was not a legal identifier.

There are about a hundred other possible error messages, but these are either about the contend of the input file, or system messages. so many ways to go wrong, so little time. 😭


πŸ› BUGS πŸ›

Please report any bug to the author. she wants to know. fr fr.


πŸ‘‘ AUTHOR πŸ‘‘

Thorsten Koch <koch@zib.de>


🌈 WEBSITE 🌈

The lastest version of Zimpl is always available at <http://zimpl.zib.de>.


🫢 SEE ALSO 🫢

The Zimpl User Guide at <http://zimpl.zib.de/download/zimpl.pdf>.


and that's the whole page, bestie πŸ’– this one's from the Linux manual set, dated 14 Mar 2017, and the page itself is ZIMPL(1). go slay your linear programs βœ¨πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from