Skip to content

Giancarlo-Catalano/PS_Minimal_Showcase

Repository files navigation

This repository is a working code example of the system being described in the paper "Mining Potentially Explanatory Patterns via Partial Solutions", which you can find here

The system defines the following components:

  • PS: a partial solution
    • (essentially a wrapper over a numpy array of integers, where * is represented by -1)
  • PSMiner: The algorithm which searches for nice PSs using a reference population
    • (used to obtain a PS Catalog, which is just a list of PSs)
  • PickAndMergeSampler: The algorithm which samples from the PS Catalog to obtain "full" solutions

For your convenience, there's also a lengthy list of Benchmark problems for you to try.

(To run this script, you'll need Python 3.10 or later, and to have the following installed:

  • numpy
  • scikit-learn
  • scipy (for the optional BivariateANOVALinkage.py)

In case you're struggling to understand the code, here are some descriptions of the classes:

  • PRef: The reference population, packaged into a convenient object which includes both the solutions and their fitnesses
  • FS / FullSolution: A wrapper for numpy arrays of integers
  • SearchSpace: Represents the combinatorial search space we are searching in
  • EvaluatedPS / EvaluatedFS: data structures used to include the fitness value with PSs/FSs
  • Metric: An object used to evaluate a PS, eg Simplicity, MeanFitness, Atomicity
    • There are a lot of them to be used, and note that you may replace Atomicity with Linkage etc..

About

This repo contains a working example of the methodology I've proposed in my paper "Mining Potentially Explanatory Patterns via Partial Solutions".

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages