BiSC Algorithm Documentation

PyPI version Python 3.7+ License: MIT

Welcome to the BiSC Algorithm documentation! This package implements the BiSC (Bidirectional Systematic Counting) algorithm for discovering generalized permutation patterns.

The BiSC algorithm, introduced by Henning Ulfarsson, is a powerful tool for automated conjecture generation in combinatorics, specifically for finding forbidden patterns that characterize classes of permutations.

Quick Start

Installation

Install the package from PyPI:

pip install bisc-algorithm

Basic Usage

from bisc_package import Permutation, bisc_algorithm

# Create a set of permutations
permutations = [
    Permutation([1, 2, 3]),
    Permutation([1, 3, 2]),
    Permutation([2, 1, 3])
]

# Find forbidden patterns of length 3
forbidden_patterns = bisc_algorithm(permutations, max_pattern_length=3)
print(f"Forbidden patterns: {forbidden_patterns}")

Command Line Tools

The package includes command-line tools for exploration:

# Run examples
bisc-examples

# Interactive demo
bisc-demo

Algorithm Overview

The BiSC algorithm consists of two main phases:

  1. MINE Phase: Records all mesh patterns that appear in the input permutations

  2. GEN Phase: Infers forbidden patterns from the allowed patterns using systematic generation

This approach enables automated discovery of characterizing forbidden patterns for various permutation classes.

Contents

Development

Research Paper

This implementation is based on the research paper:

“BiSC: An algorithm for discovering generalized permutation patterns” by Henning Ulfarsson

Available at: https://arxiv.org/abs/2411.17778

Indices and tables