MMatchOriel
Ambiente de programação com IA

Emparelhamento bipartido máximo

Encontre um emparelhamento de cardinalidade máxima entre dois grupos de até 32 vértices a partir de conjuntos de arestas permitidas.

● ● ●MatchOriel●
Fluxos de trabalho · Emparelhamento bipartido máximo ×
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)
✳Encontre um emparelhamento de cardinalidade máxima entre dois grupos de até 32 vértices a partir de conjuntos de arestas permitidas.
✓ AlteraçõesRevise antes de aplicar ↗
Ilustração do ambiente
  1. Modelos

    Configure um endpoint compatível com OpenAI ou Anthropic com a URL base e uma chave API, quando necessária. Teste a conexão. O servidor local precisa estar em execução; ferramentas remotas podem transmitir dados separadamente.

  2. Projeto

    Teste vértices isolados e remanejamento por caminho aumentante, rejeitando índices inválidos sem alterar os conjuntos.

  3. Revise antes de aplicar

    Compare o comportamento real com o resultado esperado. Se uma verificação falhar, investigue a causa antes de fazer outras alterações.

Fluxos de trabalho

Emparelhamento bipartido máximo

Fluxos de trabalho ↗
Fluxos de trabalho
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)
Ambiente de programação com IA

Esclareça o objetivo da atribuição antes de editar

MatchOriel é um ambiente de programação com IA para Windows para discutir a lógica de atribuição no contexto da aplicação que a utiliza. Abra o projeto-fonte e explique o que torna um pareamento permitido e o que o resultado deve otimizar. Peça ao assistente conectado que examine como esses requisitos aparecem na estrutura de entrada e no código antes de propor mudanças.

Uma tarefa de emparelhamento de cardinalidade máxima é um exemplo. Traga os pares permitidos e descreva se o objetivo é simplesmente atribuir o maior número possível de membros. Peça ao modelo que revise um caso em que uma escolha anterior precisa ser refeita para atingir esse objetivo. Explicite a classificação de preferências ou outras regras de negócio se a aplicação precisar delas, pois o tamanho de um emparelhamento não as estabelece.

Examine a proposta e teste se os pares retornados correspondem a arestas válidas e se cada membro aparece apenas uma vez. Inclua membros desconectados e índices rejeitados nas verificações do projeto e revise como o código chamador trata entradas sem atribuição. MatchOriel permite conexões a endpoints compatíveis com OpenAI ou da Anthropic, com credenciais quando necessário. Modelos sem restrições podem ser selecionados onde seu serviço os oferece; as regras do provedor e as capacidades de contexto e ferramentas do servidor continuam valendo. Use o objetivo declarado, em vez da confiança do assistente, para avaliar se a mudança é adequada.

Revise atribuições de pares permitidos

O maior emparelhamento também respeita preferências?

Não automaticamente. A tarefa ilustrada maximiza o número de atribuições entre pares permitidos. Se a estabilidade de preferências ou a qualidade ponderada importar, especifique isso separadamente e revise se o algoritmo proposto atende a esse objetivo, e não apenas à contagem.

Por que incluir um caso que exige reatribuição?

Ele distingue uma solução capaz de revisar escolhas anteriores de uma passagem gulosa que pode parar cedo demais. Forneça contagens esperadas de pares e alternativas válidas e examine o código proposto e sua saída segundo esses exemplos.

Os testes devem exigir um conjunto exato de pares?

Somente quando o contrato exige esse resultado específico. Várias atribuições podem satisfazer o mesmo objetivo de cardinalidade máxima. Verifique validade, unicidade dos membros e tamanho e documente requisitos de ordenação ou desempate antes de tornar os casos mais rígidos.

Como os membros sem atribuição devem chegar ao código chamador?

Defina se o chamador os deduz a partir dos pares ausentes ou espera uma representação explícita. Revise esse limite junto com a estrutura retornada e teste entradas desconectadas para que a aplicação não trate um membro legitimamente sem atribuição como falha de análise.

Baixar para Windows ↗

MatchOriel · Atualizado 2026-10-25