Macaulay2 » Documentation
Packages » CodingTheory » LinearCode » weight » minimumWeight » Strat
next | previous | forward | backward | up | index | toc

# Strat -- Specify the algorithm used to perform a minimum weight computation.

- Usage:
    `minimumWeight(C, Strat=>StratName)`
- Inputs:
  - C, an instance of the type LinearCode,
  - StratName, a string,

## Description

StratName is the name of the desired algorithm to use. By default, the function minimumWeight uses the function chooseStrat to estimate the optimal strategy for a given linear code. Specifying a strategy manually is not recommended in the majority of cases because chooseStrat reliably chooses the best strategy based on approximations of performance.

The valid options of the argument StratName are:

- MatroidPartition: The most advanced algorithm, but requires a longer up-front computation.
- OneInfoSet: An algorithm that is always faster than BruteForce.
- BruteForce: (Not recommended) Determine the minimum weight by enumerating all codewords.

MatroidPartition is the most advanced strategy, but requires a longer up-front computation. Specifically, it has to compute the matroid associated with the given linear code's generator matrix and then compute a partition of it into independent sets. If such a partition exists, this algorithm will be strictly faster than OneInfoSet after the matroid partition has been computed.

OneInfoSet can be viewed as a direct improvement over the BruteForce strategy. The properties of this algorithm imply that it is always as fast or faster than BruteForce.

BruteForce is the simplest and most reliable strategy, but also almost always the slowest. It is intended mainly for internal purposes such as debugging and testing the other strategies.

    i1 : C=hammingCode(2,3);

    i2 : minimumWeight(C, Strat=>"BruteForce")

    o2 = 3

## See also

- chooseStrat -- Estimate the optimal strategy to compute the minimum weight of a linear code.

## Functions with optional argument named Strat:

- `minimumWeight(...,Strat=>...)`

## For the programmer

The object Strat is a symbol.

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