การจับคู่ความชอบแบบเสถียร
จับคู่สองกลุ่มที่มีสมาชิกไม่เกิน 20 คนด้วยความชอบครบถ้วนและมีลำดับชัดเจน.
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- โมเดล
- ตั้งค่า endpoint ที่รองรับ OpenAI หรือ Anthropic ด้วย URL หลักและคีย์ API หากจำเป็น ทดสอบการเชื่อมต่อ เซิร์ฟเวอร์โมเดลในเครื่องต้องทำงานอยู่ เครื่องมือระยะไกลอาจส่งข้อมูลแยกต่างหาก
- โปรเจกต์
- ทดสอบกลุ่มว่างและตัวเลือกแข่งขัน พร้อมปฏิเสธรายการซ้ำหรือขาดและตรวจว่าไม่มีคู่ขัดขวางเหลือ.
- ตรวจสอบก่อนนำไปใช้
- เปรียบเทียบการทำงานจริงกับผลที่คาดหวัง หากการตรวจสอบไม่ผ่าน ให้หาสาเหตุก่อนแก้ไขเพิ่มเติม
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ระบุข้อกำหนดการจัดสรรให้ชัดก่อนปรับโค้ด
ฟีเจอร์จัดสรรต้องมีมากกว่ารายการคู่ ต้องอธิบายให้ชัดว่าข้อมูลเข้าใดถูกต้องและผลลัพธ์แบบใดยอมรับได้ PairCrest มีพื้นที่เขียนโค้ดด้วย AI บน Windows เพื่ออภิปรายข้อกำหนดเหล่านั้นพร้อมไฟล์โครงการที่เกี่ยวข้อง เริ่มด้วยความชอบที่แอปพลิเคชันรับและข้อจำกัดที่ต้องเคารพ แล้วขอให้ตรวจโค้ดปัจจุบัน
ตัวอย่างการจับคู่ความชอบแบบเสถียรเป็นงานพัฒนาที่เป็นไปได้งานหนึ่ง คุณอาจตรวจวิธีตรวจสอบอันดับที่ครบถ้วน การแทนรายการที่ยังไม่จับคู่ระหว่างประมวลผล และวิธีส่งคู่สุดท้ายถึงผู้เรียก หากข้อกำหนดมีอันดับเสมอ ความชอบไม่ครบ หรือกลุ่มขนาดไม่เท่ากัน ให้ระบุความไม่ตรงกันนี้ก่อนขอปรับใช้ สมมติฐานที่แคบกว่าของตัวอย่างควรชัดเจนตลอดการสนทนา ไม่กลายเป็นนโยบายแอปพลิเคชันที่ซ่อนอยู่
อาจเลือกโมเดล AI ไร้การเซ็นเซอร์ผ่านปลายทางที่รองรับและเข้ากันได้กับ OpenAI หรือปลายทาง Anthropic โดยใช้ข้อมูลรับรองเมื่อจำเป็น โมเดลและเซิร์ฟเวอร์กำหนดบริบท เครื่องมือ และข้อจำกัด ตรวจการตรวจข้อมูลเข้าและการจัดการผลลัพธ์ที่เสนอ แล้วทดสอบตารางความชอบขนาดเล็กที่ตรวจผลได้ เซิร์ฟเวอร์โมเดลภายในเครื่องที่แยกต่างหากครอบคลุมเฉพาะการอนุมาน เครื่องมืออื่นอาจยังเชื่อมต่อบริการภายนอก
ทำความชัดเจนให้ฟีเจอร์ที่อิงความชอบ
ข้อกำหนดการจัดสรรที่มีประโยชน์มีลักษณะอย่างไร?
อธิบายกลุ่ม รูปแบบความชอบที่ยอมรับ และคุณสมบัติที่ผลจัดสรรสุดท้ายต้องมี ให้ตัวอย่างเล็กที่คนตรวจได้ หลีกเลี่ยงคำกว้าง ๆ เช่น ดีที่สุด โดยไม่ระบุว่าแอปพลิเคชันควรตัดสินผลอย่างไร
เพิ่มอันดับเสมอโดยไม่เปลี่ยนข้อตกลงส่วนอื่นได้หรือไม่?
อย่าคิดว่าได้โดยอัตโนมัติ ตัวอย่างคาดหวังความชอบที่ครบและมีอันดับไม่เสมอกัน อันดับเสมออาจเปลี่ยนทั้งรูปแบบข้อมูลเข้าและความหมายของผลที่ยอมรับได้ ขอให้ตัดสินใจประเด็นเหล่านี้อย่างชัดเจนก่อนตรวจอัลกอริทึมหรือการเปลี่ยนผู้เรียกที่เสนอ
ตรวจผลลัพธ์โดยไม่มีชุดทดสอบใหญ่ได้อย่างไร?
เริ่มจากตารางความชอบเล็ก ๆ และตรวจคู่ที่ได้เทียบกับคุณสมบัติที่ระบุ รวมอันดับที่ไม่ถูกต้องเพื่อทดสอบการปฏิเสธ กรณีเฉพาะเหล่านี้ช่วยตรวจทาน ส่วนชุดทดสอบของแอปพลิเคชันเองควรครอบคลุมข้อกำหนดข้อมูลเข้าและการเชื่อมต่อที่กว้างกว่า
PairCrest ตัดสินว่าสิ่งใดยุติธรรมต่อผู้ใช้หรือไม่?
พื้นที่ทำงานซอฟต์แวร์ไม่ได้กำหนดนโยบายจัดสรรของคุณ คุณเป็นผู้ให้ข้อกำหนดและประเมินผลตามมา ขอให้ผู้ช่วยอธิบายสมมติฐานของโค้ด แล้วตรวจว่าสมมติฐานนั้นตรงกับกฎที่แอปพลิเคชันตั้งใจใช้หรือไม่
PairCrest · อัปเดตล่าสุด 2026-10-25