PPairCrest
Espacio de programación con IA

Emparejamiento estable de preferencias

Empareja dos grupos de hasta 20 miembros con listas de preferencias completas y estrictas.

● ● ●PairCrest●
Flujos de trabajo · Emparejamiento estable de preferencias ×
from collections import deque
def stable_pairs(proposers, receivers):
    if type(proposers) not in (list, tuple) or type(receivers) not in (list, tuple):
        raise ValueError("preference tables must be lists or tuples")
    n = len(proposers)
    if n > 20 or len(receivers) != n: raise ValueError("equal sizes up to 20")
    for rows in (proposers, receivers):
        for row in rows:
            if type(row) not in (list, tuple) or len(row) != n or any(type(v) is not int for v in row) or set(row) != set(range(n)):
                raise ValueError("complete strict preferences")
    ranks = [{v:i for i,v in enumerate(row)} for row in receivers]
    free, next_choice = deque(range(n)), [0]*n
    owner, partner = [None]*n, [None]*n
    while free:
        p = free.popleft()
        r = proposers[p][next_choice[p]]
        next_choice[p] += 1
        old = owner[r]
        if old is None or ranks[r][p] < ranks[r][old]:
            owner[r], partner[p] = p, r
            if old is not None: partner[old] = None; free.append(old)
        else: free.append(p)
    return partner
✳Empareja dos grupos de hasta 20 miembros con listas de preferencias completas y estrictas.
✓ CambiosRevisa antes de aplicar ↗
Vista ilustrativa
Modelos
Configura un endpoint compatible con OpenAI o Anthropic usando la URL base y, si hace falta, una clave API. Prueba la conexión. Un servidor local debe estar en ejecución; las herramientas remotas pueden enviar datos por separado.
Proyecto
Prueba grupos vacíos y elecciones competidoras, rechazando preferencias repetidas o ausentes y comprobando que no quede un par bloqueante.
Revisa antes de aplicar
Compara el comportamiento real con el resultado esperado. Si una prueba falla, investiga la causa antes de hacer más cambios.
Flujos de trabajo

Emparejamiento estable de preferencias

Flujos de trabajo ↗
Flujos de trabajo
from collections import deque
def stable_pairs(proposers, receivers):
    if type(proposers) not in (list, tuple) or type(receivers) not in (list, tuple):
        raise ValueError("preference tables must be lists or tuples")
    n = len(proposers)
    if n > 20 or len(receivers) != n: raise ValueError("equal sizes up to 20")
    for rows in (proposers, receivers):
        for row in rows:
            if type(row) not in (list, tuple) or len(row) != n or any(type(v) is not int for v in row) or set(row) != set(range(n)):
                raise ValueError("complete strict preferences")
    ranks = [{v:i for i,v in enumerate(row)} for row in receivers]
    free, next_choice = deque(range(n)), [0]*n
    owner, partner = [None]*n, [None]*n
    while free:
        p = free.popleft()
        r = proposers[p][next_choice[p]]
        next_choice[p] += 1
        old = owner[r]
        if old is None or ranks[r][p] < ranks[r][old]:
            owner[r], partner[p] = p, r
            if old is not None: partner[old] = None; free.append(old)
        else: free.append(p)
    return partner
Espacio de programación con IA

Aclara los requisitos de asignación antes de revisar el código

Una función de asignación necesita algo más que una lista de parejas: requiere especificar qué entradas son válidas y qué hace aceptable un resultado. PairCrest ofrece un espacio de programación con IA para Windows donde analizar esos requisitos junto con los archivos pertinentes del proyecto. Empieza por las preferencias que recibe tu aplicación y las restricciones que debe respetar; después pide que se examine la implementación actual.

El ejemplo de emparejamiento estable por preferencias ofrece una posible tarea de desarrollo. Puedes revisar cómo se validan las clasificaciones completas, cómo se representa el trabajo sin emparejar durante el procesamiento y cómo llegan las parejas finales al código que llama a la función. Si tus requisitos incluyen empates, preferencias ausentes o grupos de distinto tamaño, identifica esa discrepancia antes de solicitar una adaptación. Los supuestos más limitados del ejemplo deben permanecer visibles durante el análisis, en lugar de convertirse en una política oculta de la aplicación.

Se puede elegir un modelo de IA sin censura mediante un endpoint admitido compatible con OpenAI o de Anthropic, con credenciales cuando sean necesarias. El modelo y el servidor determinan el contexto, las herramientas y las restricciones. Revisa las comprobaciones de entrada y el tratamiento de resultados propuestos, y prueba tablas pequeñas de preferencias con resultados que puedas inspeccionar. Un servidor local de modelos independiente solo cubre la inferencia; otras herramientas pueden seguir conectándose a servicios externos.

Aclaraciones sobre una función basada en preferencias

¿Cómo se redacta un requisito de asignación útil?

Describe los grupos, las formas de preferencia permitidas y la propiedad que debe cumplir la asignación final. Aporta un ejemplo pequeño que las personas puedan inspeccionar. Evita palabras generales como mejor sin indicar cómo debe evaluar la aplicación un resultado.

¿Puedo añadir empates sin cambiar el contrato circundante?

No lo des por hecho. El ejemplo espera preferencias completas y estrictas. Los empates pueden cambiar tanto la representación de entrada como el significado de un resultado aceptable. Pide que esas decisiones se expliciten antes de revisar cualquier propuesta de algoritmo o cambio en el código que lo llama.

¿Cómo puedo inspeccionar la salida sin un conjunto de pruebas grande?

Empieza con tablas pequeñas de preferencias y comprueba las parejas resultantes según la propiedad indicada. Incluye clasificaciones inválidas para probar su rechazo. Estos casos concretos ayudan a revisar, mientras que la batería de pruebas de la aplicación debe cubrir sus requisitos más amplios de entrada e integración.

¿Decide PairCrest qué es justo para los usuarios?

El espacio de trabajo de software no define tu política de asignación. Tú aportas los requisitos y evalúas sus consecuencias. Pide al asistente que explique los supuestos de implementación y revisa después si coinciden con las reglas que debe utilizar tu aplicación.

Descargar para Windows ↗

PairCrest · Actualizado 2026-10-25