MMatchOriel
Spațiu de programare cu AI

Cuplaj bipartit maxim

Găsește un cuplaj de cardinalitate maximă între două grupuri de cel mult 32 vârfuri folosind mulțimi de muchii permise.

● ● ●MatchOriel●
Fluxuri de lucru · Cuplaj bipartit maxim ×
def maximum_matching(edges, right_count):
    if type(right_count) is not int or not 0 <= right_count <= 32 or type(edges) not in (list, tuple) or len(edges) > 32:
        raise ValueError("matching.size")
    if any(type(row) not in (set, frozenset) or any(type(v) is not int or not 0 <= v < right_count for v in row) for row in edges):
        raise ValueError("matching.edge")
    owners = [-1] * right_count
    def augment(left, seen):
        for right in sorted(edges[left]):
            if right in seen:
                continue
            seen.add(right)
            if owners[right] == -1 or augment(owners[right], seen):
                owners[right] = left
                return True
        return False
    for left in range(len(edges)):
        augment(left, set())
    return sorted((left, right) for right, left in enumerate(owners) if left != -1)
✳Găsește un cuplaj de cardinalitate maximă între două grupuri de cel mult 32 vârfuri folosind mulțimi de muchii permise.
✓ ModificăriVerifică înainte de aplicare ↗
Ilustrarea spațiului de lucru
  1. 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.

  2. Proiect

    Testează vârfuri izolate și reatribuirea pe un drum de augmentare, respingând indici nevalizi fără modificarea mulțimilor.

  3. 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

Cuplaj bipartit maxim

Fluxuri de lucru ↗
Fluxuri de lucru
def maximum_matching(edges, right_count):
    if type(right_count) is not int or not 0 <= right_count <= 32 or type(edges) not in (list, tuple) or len(edges) > 32:
        raise ValueError("matching.size")
    if any(type(row) not in (set, frozenset) or any(type(v) is not int or not 0 <= v < right_count for v in row) for row in edges):
        raise ValueError("matching.edge")
    owners = [-1] * right_count
    def augment(left, seen):
        for right in sorted(edges[left]):
            if right in seen:
                continue
            seen.add(right)
            if owners[right] == -1 or augment(owners[right], seen):
                owners[right] = left
                return True
        return False
    for left in range(len(edges)):
        augment(left, set())
    return sorted((left, right) for right, left in enumerate(owners) if left != -1)
Spațiu de programare cu AI

Clarifică obiectivul asignării înainte de modificare

MatchOriel este un spațiu de programare cu IA pentru Windows destinat discutării logicii de asignare în contextul aplicației care o folosește. Deschide proiectul sursă și explică ce face o pereche permisă și ce trebuie optimizat în rezultat. Cere asistentului conectat să examineze cum apar aceste cerințe în structura de intrare și în cod înainte de a propune modificări.

O sarcină de cuplaj de cardinalitate maximă oferă un exemplu. Adu perechile permise și descrie dacă obiectivul este pur și simplu asignarea cât mai multor membri. Cere modelului să analizeze un caz în care o alegere anterioară trebuie revizuită pentru a atinge acest obiectiv. Explicitează clasarea preferințelor sau alte reguli de afaceri dacă aplicația le cere, deoarece acestea nu sunt stabilite de dimensiunea cuplajului.

Examinează propunerea și testează dacă perechile returnate au muchii valide și apartenență unică. Include membri deconectați și indici respinși în verificările propriului proiect, apoi analizează cum tratează apelanții intrările neasignate. MatchOriel acceptă conexiuni la endpointuri compatibile OpenAI sau Anthropic, cu acreditări când sunt necesare. Modelele fără restricții pot fi selectate acolo unde serviciul le oferă; regulile furnizorului și capacitățile de context și instrumente ale serverului se aplică în continuare. Evaluează adecvarea modificării după obiectivul declarat, nu după încrederea asistentului.

Revizuirea asignărilor cu perechi permise

Cuplajul cel mai mare respectă și preferințele?

Nu automat. Sarcina ilustrată maximizează numărul asignărilor dintre perechile permise. Dacă stabilitatea preferințelor sau calitatea ponderată contează, specifică separat acest lucru și verifică dacă algoritmul propus tratează acel obiectiv, nu doar numărul.

De ce să includ un caz care necesită reasignare?

Distinge o soluție care poate revizui alegerile anterioare de o parcurgere lacomă care se poate opri prea devreme. Oferă numere așteptate de perechi și alternative valide, apoi examinează codul propus și ieșirea sa în raport cu aceste exemple.

Testele trebuie să impună un singur set exact de perechi?

Numai când contractul cere acel rezultat specific. Mai multe asignări pot satisface același obiectiv de cardinalitate maximă. Verifică validitatea, apartenența unică și dimensiunea și documentează cerințele de ordonare sau departajare înainte de a face cazurile de test mai stricte.

Cum trebuie să ajungă membrii neasignați la apelant?

Definește dacă apelantul îi deduce din perechile absente sau așteaptă o reprezentare explicită. Analizează această delimitare împreună cu structura returnată, apoi testează intrări deconectate, astfel încât aplicația să nu trateze un membru legitim neasignat ca eroare de parsare.

Descarcă pentru Windows ↗

MatchOriel · Actualizat 2026-10-25