Frobby - Computations With Monomial Ideals

Frobby is a software system for computations with monomial ideals. Frobby is free software and it is intended as a vehicle for research on monomial ideals.

The current functionality is irreducible decomposition, Alexander dual, associated primes, minimization and intersection of monomial ideals as well as the computation of Frobenius problems (using fplll and 4ti2) with very large numbers. Other than that, Frobby is able to change the format of a monomial ideal between formats used by Macaulay 2, monos (old and new version) and 4ti2. Likely future features include faster associated primes, primary decomposition, Hilbert polynomial, minimal resolutions and the integer gap.

Download And Installation

Frobby version 0.7.4 is much easier to use and install than some earlier versions.

Download Frobby version 0.7.4 for Linux

Before you can install Frobby, you first need to install GMP and you need to enable C++ support in GMP. When installing GMP, you enable C++ support by providing the option --enable-cxx to autoconf, i.e. you need to write "./configure --enable-cxx" rather than "./configure" when installing GMP.

After having installed GMP, download the source for Frobby from the link above and then unpack the file by writing
tar -xvf frobby_v0.7.4.tar.gz
then change to the frobby_v0.7.4 directory and build the program by writing
cd frobby_v0.7.4
make
This will compile the program into an executable file. To try Frobby out, you might generate a random monomial ideal by typing
bin/frobby genideal
and you can decompose a random monomial ideal by typing
bin/frobby genideal|bin/frobby irrdecom
You can see all of the functionality that Frobby offers, including information on how to use the built-in help system, by simply typing
bin/frobby
You can also see the tutorial below for how to perform a number of specific tasks using Frobby.

NOTE: Frobby is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Tutorial

This tutorial goes through how to perform a number of specific tasks using Frobby.

Generating a random ideal

Type "bin/frobby genideal -varCount 4" to generate a random monomial ideal in 4 variables. Type "bin/frobby help genideal" to see what other options the action genideal accepts. Note that the built-in help system has a help page for all of the actions frobby can carry out. type "bin/frobby" to see a list of all available actions.

Computing the irreducible decomposition of a monomial ideal

Type "bin/frobby irrdecom < ideal" to decompose the monomial stored in the file "ideal".

Computing the Alexander dual of a monomial ideal

Type "bin/frobby alexdual < ideal" to compute the Alexander dual of the ideal stored in the file "ideal".

Figuring out the file formats that Frobby uses

These are not documented, but they should be self-explanatory once seen. As a help, Frobby tries to say what the problem is if an input file is invalid. To see an example of an ideal, type "bin/frobby genideal -oformat XXX". This generates a random monomial ideal in the format XXX, whatever you insert instead of XXX. If the input file is in a format known to Frobby, and the file does not contain errors, Frobby is able to figure out what format it is, and by default it will produce output in the same format. To override this behavior, use the parameters -oformat and -iformat. Using these with the transform action allows to change the format of an ideal.

Computing Frobenius numbers

Type "bin/frobby genfrob > f" to generate a random Frobenius problem and place it in the file f. You can view it by typing "cat f". To solve it, type "bin/frobby frobdyn < f". However, the algorithm used by frobdyn is very slow, especially if the numbers in the input are large, so you might want to try the other algorithm. This algorithm is very fast, provided that the Frobenius problem does not have too many numbers.

To use this algorithm, you must first install the program 4ti2 and place it in the empty directory 4ti2 that is present in the Frobby directory. Then the script frobgrob in the frobby directory will carry out the necessary steps to compute the Frobenius number using Frobby and 4ti2.

We will not go into exactly what frobgrob does here, although advanced users can take a look at the script to figure it out. You will want to be aware that performance is significantly improved by sorting the numbers in the Frobenius problem such that the smallest numbers are the first ones in the file. (TIP: For the best and most consistent performance, it is advised to use the program fplll to LLL-reduce the generated lattice basis, aswell as to use the -adjust option on the latformat action when converting back from fplll format.)

Papers

The algorithms currently in Frobby are described in the following three papers, which are all available by clicking the "papers" link at the top of this page.

Solving Thousand Digit Frobenius Problems Using Grobner Bases
The Label Algorithm For Irreducible Decomposition of Monomial Ideals
The Slice Algorithm For Irreducible Decomposition of Monomial Ideals

All public versions

Download Frobby version 0.1 for Linux
Download Frobby version 0.5 for Linux
Download Frobby version 0.6 for Linux
Download Frobby version 0.7 for Linux
Download Frobby version 0.7.1 for Linux
Download Frobby version 0.7.2 for Linux
Download Frobby version 0.7.4 for Linux