Macaulay2 » Documentation
Packages » MonomialIntegerPrograms :: MonomialIntegerPrograms
next | previous | forward | backward | up | index | toc

# MonomialIntegerPrograms -- A package for fast monomial ideal computations using constraint integer programming

## Description

Installation and licensing information.

This package relies on the constraint integer program solver SCIP, which is available at https://scip.zib.de/. This software is free for for academic, non-commercial purposes. Notice that SCIP is not distributed under GPL, but under the ZIB Academic License (https://scip.zib.de/academic.txt).

To install SCIP, click the Download tab on the left-hand side of the SCIP home page. The easiest method is to install prebuilt binaries (look for the heading Installers (install the scipoptsuite in your computer, without source files). Choose the appropriate Linux, Windows, or MacOS file. The download is free, but you will be asked to submit your name and academic institution, to conform to the ZIB Academic License requirements, before the download begins.

Under the heading Source Code, you can find the files for building from source. If building from source, you MUST include the source files for the modeling language Zimpl in order to use the Monomial Integer Programs package. This will be included if you choose the download named SCIP Optimization Suite, rather than the one named SCIP. Alternatively, download SCIP and then follow the ZIMPL link at the top of the home page to download the source files for Zimpl. When building SCIP, you will have to set a flag indicating that Zimpl should be built as well. For more information about building SCIP visit their online documentation (https://scip.zib.de/doc-6.0.0/html/) and click on Overview -> Getting started -> Installing SCIP.

An excellent user guide to using Zimpl can be found at https://zimpl.zib.de/download/zimpl.pdf. The author, Thorsten Koch, requests that research making use of this software please cite his 2004 PhD thesis, Rapid Mathematical Programming. The appropriate BibTeX entry can be found here: https://zimpl.zib.de/download/zimpl.bib. Zimpl is distributed under GPL.

Additionally, any research that uses SCIP needs a proper citation. See the How to Cite tab on their home page.

Finally, because this package relies on temporary files, Windows users must ensure the directory /tmp exists as stated in the documentation of temporaryFileName.

Behavior of package on load.

The value of ScipPrintLevel determines the verbosity. It is set to 0 when the package is loaded.

The functions codim, and degree are overwritten for inputs with type MonomialIdeal. Specifically, loadSCIPCodimAndDegree is run when the package is loaded.

## Caveat

These methods are designed and tested for ideals and polynomial rings with a field as the coefficients ring. For other rings, the behavior of these methods is unspecified.

## See also

- codimensionIP -- compute the codimension of a monomial ideal using integer programming
- degreeIP -- compute the degree of a monomial ideal using integer programming
- dimensionIP -- compute the dimension of a monomial ideal using integer programming
- monomialIdealsWithHilbertFunction -- find all monomial ideals in a polynomial ring with a particular (partial or complete) Hilbert function
- topMinimalPrimesIP -- compute the minimal primes of maximum dimension using integer programming
- ScipPrintLevel -- adjust how much solving information is displayed in MonomialIntegerPrograms

## Authors

- Lily Silverstein <lsilverstein@cpp.edu>
- Jay White <jay.white@uky.edu>

## Version

This documentation describes version 1.0 of MonomialIntegerPrograms.

## Citation

If you have used this package in your research, please cite it as follows:

    @misc{MonomialIntegerProgramsSource,
      title = {{MonomialIntegerPrograms: using integer programming for fast computations with monomial ideals. Version~1.0}},
      author = {Lily Silverstein and Jay White},
      howpublished = {A \emph{Macaulay2} package available at
        \url{https://github.com/Macaulay2/M2/tree/stable/M2/Macaulay2/packages}}
    }

## Exports

- Functions and commands
  - bettiTablesWithHilbertFunction -- list or tally all Betti tables that can be obtained from monomial ideals with a particular (partial or complete) Hilbert function
  - codimensionIP -- compute the codimension of a monomial ideal using integer programming
  - degreeIP -- compute the degree of a monomial ideal using integer programming
  - dimensionIP -- compute the dimension of a monomial ideal using integer programming
  - loadBuiltinCodimAndDegree -- change codim and degree to use the default, built-in methods.
  - loadSCIPCodimAndDegree -- change codim and degree to use the default, built-in methods.
  - minimalPrimesIP -- one line description if different from minimalPrimesIP
  - monomialIdealsWithHilbertFunction -- find all monomial ideals in a polynomial ring with a particular (partial or complete) Hilbert function
  - topMinimalPrimesIP -- compute the minimal primes of maximum dimension using integer programming
- Methods
  - `bettiTablesWithHilbertFunction(List,PolynomialRing)` -- see bettiTablesWithHilbertFunction -- list or tally all Betti tables that can be obtained from monomial ideals with a particular (partial or complete) Hilbert function
  - `codimensionIP(MonomialIdeal)` -- see codimensionIP -- compute the codimension of a monomial ideal using integer programming
  - `degreeIP(MonomialIdeal)` -- see degreeIP -- compute the degree of a monomial ideal using integer programming
  - `dimensionIP(MonomialIdeal)` -- see dimensionIP -- compute the dimension of a monomial ideal using integer programming
  - `minimalPrimesIP(MonomialIdeal)` -- see minimalPrimesIP -- one line description if different from minimalPrimesIP
  - `minimalPrimesIP(MonomialIdeal,ZZ)` -- see minimalPrimesIP -- one line description if different from minimalPrimesIP
  - `monomialIdealsWithHilbertFunction(List,PolynomialRing)` -- see monomialIdealsWithHilbertFunction -- find all monomial ideals in a polynomial ring with a particular (partial or complete) Hilbert function
  - `topMinimalPrimesIP(MonomialIdeal)` -- see topMinimalPrimesIP -- compute the minimal primes of maximum dimension using integer programming
- Symbols
  - BoundGenerators
  - Count
  - FirstBetti
  - GradedBettis
  - IgnorePrimes -- Ignores certain primes when computing top minimal primes.
  - SquareFree
  - `KnownDim` -- see topMinimalPrimesIP -- compute the minimal primes of maximum dimension using integer programming
- Mutable symbols
  - ScipPrintLevel -- adjust how much solving information is displayed in MonomialIntegerPrograms
- Other things
  - ScipPrintLevel -- adjust how much solving information is displayed in MonomialIntegerPrograms

## For the programmer

The object MonomialIntegerPrograms is a package, defined in MonomialIntegerPrograms.m2, with auxiliary files in MonomialIntegerPrograms/.

The source of this document is in /build/macaulay2-88fgJW/macaulay2-1.25.11+ds/M2/Macaulay2/packages/MonomialIntegerPrograms.m2:581:0.