MMatchOriel
พื้นที่เขียนโค้ดด้วย AI

การจับคู่กราฟสองฝั่งที่มีจำนวนมากที่สุด

หาการจับคู่ที่มีจำนวนคู่มากที่สุดระหว่างสองกลุ่มกลุ่มละไม่เกิน 32 จุดยอดจากเซตเส้นเชื่อมที่อนุญาต.

● ● ●MatchOriel●
ขั้นตอนการทำงาน · การจับคู่กราฟสองฝั่งที่มีจำนวนมากที่สุด ×
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)
✳หาการจับคู่ที่มีจำนวนคู่มากที่สุดระหว่างสองกลุ่มกลุ่มละไม่เกิน 32 จุดยอดจากเซตเส้นเชื่อมที่อนุญาต.
✓ การเปลี่ยนแปลงตรวจสอบก่อนนำไปใช้ ↗
ภาพประกอบพื้นที่ทำงาน
  1. โมเดล

    ตั้งค่า endpoint ที่รองรับ OpenAI หรือ Anthropic ด้วย URL หลักและคีย์ API หากจำเป็น ทดสอบการเชื่อมต่อ เซิร์ฟเวอร์โมเดลในเครื่องต้องทำงานอยู่ เครื่องมือระยะไกลอาจส่งข้อมูลแยกต่างหาก

  2. โปรเจกต์

    ทดสอบจุดยอดโดดเดี่ยวและการจับคู่ใหม่ผ่านวิถีเพิ่ม พร้อมปฏิเสธดัชนีผิดโดยไม่เปลี่ยนเซต.

  3. ตรวจสอบก่อนนำไปใช้

    เปรียบเทียบการทำงานจริงกับผลที่คาดหวัง หากการตรวจสอบไม่ผ่าน ให้หาสาเหตุก่อนแก้ไขเพิ่มเติม

ขั้นตอนการทำงาน

การจับคู่กราฟสองฝั่งที่มีจำนวนมากที่สุด

ขั้นตอนการทำงาน ↗
ขั้นตอนการทำงาน
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)
พื้นที่เขียนโค้ดด้วย AI

กำหนดเป้าหมายการจับคู่จัดสรรให้ชัดก่อนแก้ไข

MatchOriel เป็นพื้นที่เขียนโค้ดด้วย AI บน Windows สำหรับหารือตรรกะจับคู่จัดสรรในบริบทของแอปที่ใช้ เปิดโครงการซอร์สและอธิบายเงื่อนไขที่ทำให้คู่หนึ่งได้รับอนุญาตและสิ่งที่ผลลัพธ์ควรทำให้ดีที่สุด ขอให้ผู้ช่วยที่เชื่อมต่อตรวจว่าข้อกำหนดเหล่านี้ปรากฏในโครงสร้างข้อมูลเข้าและโค้ดอย่างไรก่อนเสนอแก้ไข

งานจับคู่ให้ได้จำนวนสูงสุดเป็นตัวอย่างหนึ่ง นำคู่ที่อนุญาตมาและอธิบายว่าเป้าหมายคือจัดสรรสมาชิกให้ได้มากที่สุดเท่านั้นหรือไม่ ขอให้โมเดลตรวจกรณีที่ต้องเปลี่ยนคู่ที่เลือกก่อนหน้าเพื่อถึงเป้าหมาย ระบุลำดับความชอบหรือกฎธุรกิจอื่นให้ชัดหากแอปต้องใช้ เพราะขนาดของชุดคู่ไม่ได้ยืนยันกฎเหล่านั้น

ตรวจข้อเสนอและทดสอบว่าคู่ที่คืนมาเป็นเส้นเชื่อมที่ใช้ได้และสมาชิกไม่ซ้ำ รวมสมาชิกที่ไม่มีเส้นเชื่อมและดัชนีที่ต้องปฏิเสธในการตรวจโครงการ แล้วดูว่าฝั่งเรียกใช้จัดการรายการที่ไม่ได้จับคู่อย่างไร MatchOriel รองรับปลายทาง OpenAI-compatible หรือ Anthropic พร้อมข้อมูลรับรองเมื่อจำเป็น เลือกโมเดลไร้ข้อจำกัดได้เมื่อบริการมีให้ แต่กฎผู้ให้บริการและความสามารถด้านบริบทกับเครื่องมือของเซิร์ฟเวอร์ยังมีผล ใช้เป้าหมายที่ระบุประเมินความเหมาะสมของการแก้ไข แทนความมั่นใจของผู้ช่วย

ตรวจการจัดสรรคู่ที่อนุญาต

การจับคู่จำนวนมากที่สุดเคารพความชอบด้วยหรือไม่

ไม่โดยอัตโนมัติ งานตัวอย่างเพิ่มจำนวนการจัดสรรจากคู่ที่อนุญาตให้สูงสุด หากความเสถียรตามความชอบหรือคุณภาพถ่วงน้ำหนักสำคัญ ให้ระบุแยกและตรวจว่าอัลกอริทึมที่เสนอรองรับเป้าหมายนั้น ไม่ใช่แค่จำนวน

เหตุใดต้องมีกรณีที่ต้องเปลี่ยนคู่เดิม

ช่วยแยกวิธีที่ปรับการเลือกก่อนหน้าได้จากการเลือกแบบละโมบที่อาจหยุดเร็วเกินไป ให้จำนวนคู่ที่คาดหวังและทางเลือกที่ถูกต้อง แล้วตรวจโค้ดที่เสนอและผลเทียบกับตัวอย่างเหล่านั้น

การทดสอบควรกำหนดชุดคู่ที่แน่นอนชุดเดียวหรือไม่

เฉพาะเมื่อข้อกำหนดต้องการผลนั้นโดยเฉพาะ หลายชุดอาจบรรลุเป้าหมายจำนวนคู่สูงสุดเท่ากัน ตรวจความถูกต้อง สมาชิกไม่ซ้ำ และขนาด พร้อมบันทึกข้อกำหนดลำดับหรือการตัดสินกรณีเสมอก่อนทำกรณีทดสอบให้เข้มงวดขึ้น

ควรส่งสมาชิกที่ไม่ได้จัดสรรให้ฝั่งเรียกใช้อย่างไร

กำหนดว่าฝั่งเรียกใช้อนุมานจากคู่ที่หายไปหรือคาดหวังการแทนอย่างชัดเจน ตรวจขอบเขตนี้กับโครงสร้างที่คืนมา แล้วทดสอบข้อมูลที่ไม่มีเส้นเชื่อม เพื่อไม่ให้แอปมองสมาชิกที่ไม่ได้จับคู่อย่างถูกต้องเป็นความผิดพลาดการแยกวิเคราะห์

ดาวน์โหลดสำหรับ Windows ↗

MatchOriel · อัปเดต 2026-10-25