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)모델
기본 URL과 필요한 API 키로 OpenAI 호환 또는 Anthropic 엔드포인트를 설정하고 연결을 테스트하세요. 로컬 모델 서버는 실행 중이어야 합니다. 원격 도구는 데이터를 별도로 전송할 수 있습니다.
프로젝트
고립 정점과 증가 경로를 통한 재배정을 검사하고 간선 집합을 바꾸지 않으며 잘못된 번호를 거부합니다.
적용하기 전에 검토하세요
실제 동작을 예상 결과와 비교하세요. 검사가 실패하면 다음 변경을 하기 전에 원인을 조사하세요.
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)수정 전에 배정 목표를 명확히 하세요
MatchOriel은 배정 로직을 사용하는 애플리케이션의 맥락에서 논의하는 Windows AI 코딩 작업 공간입니다. 소스 프로젝트를 열고 어떤 쌍이 허용되며 결과가 무엇을 최적화해야 하는지 설명하세요. 변경 제안 전에 연결된 도우미에게 입력 구조와 코드에서 요구 사항이 어떻게 나타나는지 살펴보도록 요청하세요.
최대 크기 매칭 작업이 한 예입니다. 허용 쌍을 가져오고 단순히 가능한 한 많은 구성원을 배정하는 것이 목표인지 설명하세요. 그 목표를 달성하려면 이전 선택을 재배정해야 하는 사례를 모델에게 검토하도록 요청하세요. 매칭 크기만으로 선호 순위나 다른 업무 규칙이 보장되지는 않으므로 애플리케이션에 필요하다면 이를 명시하세요.
제안을 검토하고 반환된 쌍의 간선 유효성과 구성원 중복 여부를 테스트하세요. 프로젝트 검사에 연결되지 않은 구성원과 거부해야 할 인덱스를 포함하고 호출부가 미배정 항목을 처리하는 방식을 검토하세요. MatchOriel은 필요하면 인증 정보를 사용하는 OpenAI 호환 또는 Anthropic 엔드포인트 연결을 지원합니다. 서비스에서 제공하는 경우 제한 없는 모델을 선택할 수 있습니다. 공급자 규칙과 서버의 컨텍스트·도구 기능은 계속 적용됩니다. 도우미의 확신이 아니라 명시된 목표를 기준으로 변경의 적절성을 평가하세요.
허용 쌍 배정 검토
가장 큰 매칭은 선호도도 존중하나요?
자동으로 그렇지는 않습니다. 예시 작업은 허용 쌍 사이의 배정 수를 최대화합니다. 선호 안정성이나 가중 품질이 중요하면 별도로 명시하고 제안된 알고리즘이 개수만이 아니라 해당 목표를 다루는지 검토하세요.
재배정이 필요한 사례를 포함하는 이유는 무엇인가요?
이전 선택을 수정할 수 있는 해법과 너무 일찍 멈출 수 있는 탐욕적 순회를 구분하기 위해서입니다. 예상 쌍 수와 유효한 대안을 제공하고 해당 예제에 비추어 제안된 코드와 출력을 살펴보세요.
테스트에서 정확히 한 쌍 집합만 요구해야 하나요?
계약이 그 특정 결과를 요구할 때만 그렇습니다. 여러 배정이 동일한 최대 크기 목표를 충족할 수 있습니다. 유효성, 구성원 중복 여부, 크기를 확인하고 테스트 조건을 엄격하게 하기 전에 순서나 동률 처리 요구 사항을 문서화하세요.
미배정 구성원은 호출부에 어떻게 전달해야 하나요?
호출부가 누락된 쌍에서 이를 도출할지 명시적 표현을 기대할지 정의하세요. 반환 구조와 함께 경계를 검토하고 연결되지 않은 입력을 테스트하여 정상적인 미배정 구성원을 파싱 실패로 처리하지 않도록 하세요.
MatchOriel · 업데이트 2026-10-25