1.
Задача минимального покрытия подмножествами (Set Cover Problem)
— Классическая NP-трудная задача. Алгоритмы жадного выбора — наиболее часто используемый подход с гарантией приближения.
— Стандарты на Github и StackOverflow по реализации на Python, C++, Java.
— Пример реализации жадного алгоритма здесь (Python):
https://github.com/aimacode/aima-python/blob/master/search/csp.py (исправлять под задачу)
— Статья с разбором:
Set cover problem - Wikipedia
2.
Покрывающие коды (Covering Codes)
— Теория позволяет построить минимальный набор с гарантированным покрытием всех сочетаний длины N.
— Классика по теме — книги по теории кодирования.
— Библиотека SageMath имеет поддержку работы с покрывающими кодами:
https://doc.sagemath.org/html/en/reference/coding/sage/coding/covering_code.html
3.
Анализ и фильтрация результатов спортивных прогнозов
— На практике применяются эвристики, основанные на вероятностях и статистике, чтобы уменьшить размер набора.
— Статьи по спортивной аналитике и моделированию — например,
Sports Reference | Sports Stats, fast, easy, and up-to-date | Sports-Reference.com используют статистику для оценки вариантов.
4.
Примеры и проекты, близкие по тематике
— Проект на GitHub:
GitHub - tdunning/t-digest: A new data structure for accurate on-line accumulation of rank-based statistics such as quantiles and trimmed means (обработка больших данных, аналогично выборке вариантов)
— Библиотека Pyomo
Pyomo — для постановки и решения оптимизационных задач, включая минимальное покрытие.