ปัญหานี้เกิดขึ้นจากการทดสอบซอฟต์แวร์ ปัญหาเป็นเรื่องยากที่จะอธิบาย ฉันจะให้ตัวอย่างก่อนจากนั้นพยายามสรุปปัญหา
มี 10 รายการที่จะทดสอบพูด A ถึง J และเครื่องมือทดสอบที่สามารถทดสอบ 3 รายการได้ในเวลาเดียวกัน ลำดับของรายการในเครื่องมือทดสอบไม่สำคัญ แน่นอนว่าสำหรับการทดสอบแบบละเอียดเราจำเป็นต้องมีรายการรวมกันเป็นรายการ
ปัญหาซับซ้อนมากขึ้น มีเงื่อนไขเพิ่มเติมว่าเมื่อคู่ของรายการได้รับการทดสอบร่วมกันกว่าคู่เดียวกันไม่จำเป็นต้องมีการทดสอบอีกครั้ง
ตัวอย่างเช่นเมื่อเราดำเนินการทดสอบสามข้อต่อไปนี้:
เอบีซี
ADE
BDF
เราไม่จำเป็นต้องดำเนินการ:
ABD
เนื่องจากคู่ A, B ถูกครอบคลุมโดยกรณีทดสอบครั้งแรก A, D ถูกครอบคลุมโดยวินาทีและ B, D ถูกครอบด้วยอันดับที่สาม
ดังนั้นปัญหาคือจำนวนกรณีทดสอบขั้นต่ำที่เราต้องการเพื่อให้แน่ใจว่าทุกคู่ทดสอบ?
ในการพูดคุยทั่วไปหากเรามีรายการ n รายการ s สามารถทดสอบได้ในเวลาเดียวกันและเราต้องแน่ใจว่า tuples ที่เป็นไปได้ทั้งหมดได้รับการทดสอบ (เช่น s> t) จำนวนกรณีทดสอบขั้นต่ำที่เราต้องการคืออะไร เงื่อนไขของ n, s และ t?
และท้ายที่สุดสิ่งที่จะเป็นอัลกอริทึมที่ดีในการสร้างกรณีทดสอบที่จำเป็น?