PPairCrest
Spațiu de programare cu AI

Asociere stabilă după preferințe

Asociază două grupuri de cel mult 20 de membri după preferințe complete și stricte.

● ● ●PairCrest●
Fluxuri de lucru · Asociere stabilă după preferințe ×
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
✳Asociază două grupuri de cel mult 20 de membri după preferințe complete și stricte.
✓ ModificăriVerifică înainte de aplicare ↗
Ilustrarea spațiului de lucru
Modele
Configurează un endpoint compatibil OpenAI sau Anthropic cu URL-ul de bază și cheia API, dacă este necesară. Testează conexiunea. Serverul local trebuie să ruleze; instrumentele externe pot transmite date separat.
Proiect
Testează grupuri goale și alegeri concurente, respingând preferințe repetate sau lipsă și verificând absența perechilor blocante.
Verifică înainte de aplicare
Compară comportamentul real cu rezultatul așteptat. Dacă o verificare eșuează, cercetează cauza înainte de alte modificări.
Fluxuri de lucru

Asociere stabilă după preferințe

Fluxuri de lucru ↗
Fluxuri de lucru
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
Spațiu de programare cu AI

Fă vizibile cerințele repartizării înainte de a revizui codul

O funcționalitate de repartizare are nevoie de mai mult decât o listă de perechi: are nevoie de o descriere clară a intrărilor valide și a criteriilor pentru un rezultat acceptabil. PairCrest oferă un spațiu de programare cu IA pentru Windows în care poți discuta aceste cerințe împreună cu fișierele relevante ale proiectului. Începe cu preferințele primite de aplicație și cu restricțiile pe care trebuie să le respecte, apoi solicită inspectarea implementării actuale.

Exemplul de asociere stabilă pe baza preferințelor oferă o posibilă sarcină de dezvoltare. Poți revizui validarea clasamentelor complete, reprezentarea elementelor încă neasociate în timpul prelucrării și transmiterea perechilor finale către apelant. Dacă cerințele tale includ egalități de preferință, preferințe lipsă sau grupuri inegale, identifică această nepotrivire înainte de a solicita o adaptare. Ipotezele mai restrictive ale exemplului trebuie să rămână vizibile pe parcursul discuției, fără a deveni o politică ascunsă a aplicației.

Un model IA fără cenzură poate fi ales printr-un endpoint acceptat compatibil cu OpenAI sau un endpoint Anthropic, cu date de autentificare când sunt necesare. Modelul și serverul stabilesc contextul, instrumentele și restricțiile. Revizuiește verificările propuse pentru intrări și prelucrarea rezultatelor, apoi testează tabele mici de preferințe ale căror rezultate le poți inspecta. Un server local separat de modele acoperă doar inferența; alte instrumente se pot conecta în continuare la servicii externe.

Clarificarea unei funcționalități bazate pe preferințe

Cum arată o cerință utilă pentru repartizare?

Descrie grupurile, formele de preferință permise și proprietatea pe care trebuie să o satisfacă repartizarea finală. Oferă un exemplu mic, ușor de inspectat. Evită un termen general precum optim fără a preciza cum trebuie aplicația să evalueze rezultatul.

Pot adăuga egalități de preferință fără a modifica restul contractului?

Nu presupune acest lucru. Exemplul așteaptă preferințe complete și stricte. Egalitățile pot modifica atât reprezentarea intrărilor, cât și semnificația unui rezultat acceptabil. Cere explicit aceste decizii înainte de a revizui orice algoritm propus sau modificare a codului apelant.

Cum pot inspecta rezultatul fără un set mare de date de test?

Începe cu tabele mici de preferințe și verifică perechile rezultate în raport cu proprietatea declarată. Include clasamente nevalide pentru a testa respingerea. Aceste cazuri bine delimitate ajută revizuirea, iar suita de teste a aplicației trebuie să acopere cerințele mai ample privind intrările și integrarea.

Decide PairCrest ce este echitabil pentru utilizatori?

Spațiul de lucru software nu definește politica ta de repartizare. Tu furnizezi cerințele și le evaluezi consecințele. Cere asistentului să explice ipotezele implementării, apoi verifică dacă acestea corespund regulilor pe care trebuie să le folosească aplicația ta.

Descarcă pentru Windows ↗

PairCrest · Actualizat 2026-10-25