U-PAK GitHub avatar

constraint-solver

U-PAK

A backtracking algorithm that solves a 3-player tournament scheduling problem with specific participation targets for each player.

Stars

0

7-day growth

No data

Forks

0

Open issues

0

License

MIT

Last updated

2026-07-08

AI repository intelligence
FR-AI / ANALYSIS

Why it is worth attention

It demonstrates a clear application of backtracking with pruning to find all valid match sequences, inspired by a well-known mathematical puzzle from Adrián Paenza.

Who it is for

  • Students learning constraint satisfaction and backtracking algorithms
  • Mathematics puzzle enthusiasts
  • Programmers interested in search and pruning techniques
  • Educators looking for a concrete example of CSP solvers

Use cases

  • Solving similar small-scale scheduling or assignment problems
  • Educational demonstration of backtracking and pruning
  • Exploring all possible outcomes under given rules and constraints
  • Illustrating a classic recreational mathematics problem

Strengths

  • Efficient pruning when a player exceeds their match limit
  • Finds all valid universes (solutions) and also invalid ones
  • Fixed maximum of 21 matches simplifies exploration
  • Clear, self-contained implementation for a non-trivial constraint problem

Considerations

  • Only works for this specific 3-player, 21-match scenario (not generalized)
  • No performance metrics or comparison with alternative approaches
  • Manual steps required to run (paste code into a repl); no automated setup

README quick start

Solucionador de Restricciones

Un algoritmo de retroceso para resolver un problema de programación de torneos de 3 jugadores.

Descripción del problema

Hay 3 jugadores: A, B y C.

  • Juegan un total de 21 partidas.

  • Objetivos de participación final:

  • A: 17 partidas

  • B: 15 partidas

  • C: 10 partidas

Reglas

  • Solo 2 jugadores juegan cada partida (uno descansa).

  • El ganador permanece en la mesa.

  • El perdedor es reemplazado por el jugador que estaba descansando.

Cómo funciona

Este programa utiliza una búsqueda en profundidad (retroceso) con poda para explorar todas las secuencias posibles de victorias y derrotas, comenzando con A vs B (C descansando), hasta encontrar historiales de torneos válidos que coincidan exactamente con el número de participaciones objetivo.

Características

  • Poda eficiente cuando un jugador supera su límite de partidas
  • Encuentra todo tipo de "universos" (válidos y no validos)
  • No puede superar los 21 partidos (sumatoria de los 3 jugadores)
  • Imprime las primeras partidas de cada solución válida
  • Demuestra la resolución de problemas de satisfacción de restricciones

Primeros pasos

Uso

# Usar Replit
https://replit.com/

# Ejecutar la simulación
pega el archivo "sc.py" y ejecutalo

Origen del Problema

Este problema matemático fue creado por Adrián Paenza.
Ver en Wikipedia

Description

Este es un algoritmo de búsqueda por retroceso que simula los posibles resultados de un torneo de 3 jugadores.

Related repositories

Similar projects matched by category, topics, and programming language.

lopopolo
Featured
lopopolo GitHub avatar

harness-engineering

Harness Engineering is a methodology for improving coding agent outputs by carefully crafting the environment around them—providing curated context, tools, and executable constraints that encode an organization’s nonfunctional requirements and cumulative lessons.

AI & Machine LearningAI Agents
2,390
slvDev
Featured
slvDev GitHub avatar

esp32-ai

A 28.9 million parameter language model runs on an $8 ESP32-S3 microcontroller entirely on-device, generating simple stories at about 9.5 tokens per second.

AI & Machine LearningLarge Language Models
1,960
littledivy
Featured
littledivy GitHub avatar

mimic

mimic captures traffic from any iOS or web app and automatically generates a Python client library that lets you call the app's API like a regular library.

AI & Machine Learning
1,482