โครงสร้างข้อมูลสำหรับเกมลอจิก / กฎการลดหย่อน / ชุดเบาะแสเพียงพอหรือไม่


11

ฉันคิดเกี่ยวกับการพัฒนาเกมลอจิกคล้ายกับPuzzle ของ Einsteinซึ่งจะมีเบาะแสที่แตกต่างกันสำหรับการเล่นเกมใหม่ทุกครั้ง

โครงสร้างข้อมูลใดที่คุณใช้เพื่อจัดการหน่วยงานต่าง ๆ (สัตว์เลี้ยงสีบ้านเชื้อชาติ ฯลฯ ) กฎการหักเงิน ฯลฯ เพื่อรับประกันว่าเบาะแสที่คุณให้นั้นชี้ไปที่โซลูชันที่ไม่ซ้ำกันหรือไม่

ฉันมีเวลาที่ยากลำบากคิดเกี่ยวกับวิธีการได้รับกฎการหักเงินเพื่อเล่นพร้อมกับเบาะแสที่เป็นไปได้; ความเข้าใจใด ๆ จะได้รับการชื่นชม


1
ฉันไม่คิดว่ามันจะน่าสนใจมากที่จะเล่น หลังจากที่คุณแก้ไขมันครั้งเดียวการทำอีกครั้งด้วยกฎที่ต่างกันจะไม่แตกต่างจากการเล่นซูโดกุมากนัก
o0 '

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

สิ่งนี้ทำให้ฉันนึกถึงเกมนี้: nick.com/games/series.html
CeeJay

3
ผมจะแนะนำการดูที่เอเวอเร Kaserเกม 's - เขาได้ทำตันของเกมในลักษณะนี้โดยเฉพาะอย่างยิ่งSherlockซึ่งได้รับแรงบันดาลใจจากปริศนามากที่ แต่ยังบางส่วนของเกมอื่น ๆ เช่นรังผึ้งโรงแรมหรือเกมล่าสุดของเขา , นางฮัดสัน มันอาจช่วยให้คุณเห็นการกระทำแบบนี้
Michael Madsen

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

คำตอบ:


4

ว้าว. สิ่งนี้ดูเหมือนว่าเป็นสถานการณ์ที่เว็บความหมาย AI ของโรงเรียนเก่าอย่าง Richard Bartle คิดว่าจะมีความสำคัญต่ออนาคตของเกมเมื่อเขาเขียนปัญญาประดิษฐ์และเกมคอมพิวเตอร์จะมีประโยชน์ โดยทั่วไปคุณมีรายการข้อมูลสองสามอย่าง (ตารางฐานข้อมูลอะไรก็ตาม) รายการแรกจะระบุกฎเกี่ยวกับความสัมพันธ์ระหว่างกันเช่น:

a PERSON must LIVE IN a DOMICILE
a PERSON must OWN an ANIMAL
a PERSON must DRINK a BEVERAGE
a PERSON must SMOKE a CIGARETTE BRAND
a PERSON must BE OF a NATIONALITY
a DOMICILE must BE IN a POSITION
a DOMICILE must BE OF a COLOR

จากนั้นคุณมีอินสแตนซ์ของหมวดหมู่:

ANIMAL: dog snail zebra fox horse
BEVERAGE: milk tea OJ coffee water
CIGARETTE BRAND: Kools Parliaments Luckies OldGold Chesterfields
NATIONALITY: Englishman Spaniard Ukrainian Japanese Norwegian
POSITION: first second third fourth fifth
COLOR: red green yellow ivory blue

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

Dunno ว่าจะพาคุณไปไกลมาก แต่หวังว่าจะช่วยได้


4

คำแนะนำของฉันคือการดูที่รหัสหลามสำหรับข้อ จำกัด ความพึงพอใจของปัญหา (CSPs) ให้กับโครงการ AIMA พวกเขาใช้พจนานุกรม (เชื่อมโยงอาร์เรย์ / ตารางแฮช) เพื่อติดตามข้อ จำกัด ที่ถูกต้อง นอกจากนี้ยังมีการใช้งานของอัลกอริทึมหลายอย่างที่ใช้ในการแก้ CSP เช่น min-ขัดแย้งและ AC3

รหัสรวมถึงปัญหา Zebra ตัวอย่างเป็นตัวอย่างเช่นปัญหาที่คุณเชื่อมโยง


1

นี่มันลึกมากจริง ๆ แปลกที่ Wikipedia ไม่เคยกล่าวถึง

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

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

สำหรับโครงสร้างข้อมูลที่คุณต้องการใช้ฉันคิดว่าคุณต้องการมีRuleคลาสบางประเภท กฎสามารถเป็นอะไรก็ได้ขึ้นอยู่กับประเภท มีกฎไม่มากนักในการสรุปการ logicsดังนั้นสิ่งนี้สามารถเอาชนะได้โดยการสืบทอด (ถ้า iff และ and หรือไม่ใช่ ... ) ต้องประเมินกฎเหล่านี้เท่านั้น และสิ่งเดียวที่กฎสามารถทำได้คือคืนจริงหรือเท็จ เพราะนั่นคือสิ่งที่คุณทำกับ logics ภาคแสดง ที่มหาวิทยาลัยผมก็แนะนำให้อ่านหนังสือเล่มนี้โดยจอห์นเคลลี่

กลับไปที่ชั้นเรียน: คุณควรเห็นปัญหาเหล่านี้เหมือนกับที่คุณเห็นการใช้การคำนวณปกติกับคณิตศาสตร์ คืออะไร+ผู้ประกอบการ? มันมีสองพารามิเตอร์ซึ่งสามารถเป็นสมการใหม่ด้วยตัวเองหรือเพียงแค่ตัวเลข ฉันคิดว่าคุณมีกฎเดียวกัน พวกเขาสามารถมีกฎใหม่เป็นพารามิเตอร์หรือเพียงแค่บูลีน (เรียกว่าเพรดิเคต)

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


ปัญหาไม่ได้เป็นเพียงการพิสูจน์ในตรรกะภาคเหนือของโมเดล จำกัด (และเล็ก ๆ !) หรือฉันจะตอบมากกว่าที่จะเอาเงินรางวัล เป้าหมายไม่ใช่เพื่อแก้ปัญหา - เป้าหมายคือการสร้างปัญหาโดยอัตโนมัติและในวิธีที่น่าสนใจ

@ โจปัญหาแม้แต่ชุดเล็กก็ยังคงเป็นปัญหา 3SAT หากคุณเพียงสร้างและของและสิ่งนี้อาจนำไปสู่สิ่งที่ไม่เป็นที่พอใจดังนั้นฉันคิดว่ามันยากมากที่จะสร้างตัวต่อแบบสุ่ม ปริศนาควรมีข้อ จำกัด อย่างน้อย บางครั้งการใช้เหตุผลย้อนหลังอาจเป็นคำตอบ (มีทางออกแก้ปัญหา)
Marnix

ตรรกะของภาคทั่วไปนั้นยากกว่า 3SAT จริง ๆ อย่างไรก็ตามอัลกอริธึมการพิสูจน์ที่ทันสมัยนั้นค่อนข้างดีในทางปฏิบัติ นอกเหนือจากนั้นเพียงแค่สร้างแบบจำลองตัวต่อและการตรวจสอบวิธีแก้ปัญหาสามารถทำได้ในเวลาเชิงเส้น - เคล็ดลับคือการทำให้แน่ใจว่าข้อ จำกัด ที่จัดทำขึ้นนั้นเป็นโซลูชันที่ไม่เหมือนใครและสามารถค้นพบได้

@ โจมีข้อ จำกัด อะไรบ้างที่เรามั่นใจได้ในการสร้างตัวต่อนี้? คำถามยังคงเป็น: โครงสร้างข้อมูลที่จะใช้ ดังนั้นฉันจึงยังคิดว่าRuleชั้นเรียนเป็นความคิดที่ดี การสร้างแบบจำลองข้อ จำกัด เหล่านี้ยังคงทำโดยใช้เหตุผลที่ฉันคิด
Marnix

0

ฉันไม่มีคำตอบที่ดี แต่มองหาคำแนะนำเกี่ยวกับปัญหาแบบเดียวกันฉันพบที่เก็บนี้บน github:

https://github.com/nateinaction/Zebra-Puzzle

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


-1

มีสิ่งนี้ในการแก้ปัญหา

แน่นอนฉันคิดว่าคงไม่ยากเกินกว่าที่จะถอยหลัง นั่นคือรายการแบบนี้:

  • เฟร็ดเรดด็อก

  • สตีฟบลูแคท

  • บิลม่วงปลาวาฬ

  • Eric Cyan Dolphin

ซึ่งสามารถสร้างได้ง่ายจากนั้นจึงสร้างชุดของกฎจากนั้น

ทำไมถึงไม่เก็บของแต่ละอย่างเอาไว้ดังนั้น [Fred, Steve, Bill, Eric] และชุดคำตอบ [Fred, Red, Dog] จากนั้นให้ 'NAME ทำ (ไม่ใช่) ACTION OBJECT'

เมื่อคุณลงไปหาทางออกที่เป็นเอกลักษณ์นั้นสำคัญหรือไม่ ตราบใดที่เกมของคุณสามารถแยกพวกมันออกเป็นรายการได้และทำเครื่องหมาย 'ชุดที่ 1 ไม่มีปลาวาฬ'


2
เคล็ดลับคือคุณต้องการให้ปัญหายังคงยากอยู่ หากกฎที่คุณสร้างยอมรับ 90% ของชุดค่าผสมที่เป็นไปได้นั้นเป็นคำตอบที่ถูกต้องนั่นไม่ใช่ปริศนาที่น่าสนใจอีกต่อไป

ฉันเดาว่าเป็นจุดที่ถูกต้อง - แต่ไม่แก้ปัญหาเพียงเพื่อลดจำนวนของปม?
คอมมิวนิสต์ Duck

1
ไม่ได้การเน้นด้านล่างมีแนวโน้มที่จะนำไปสู่ข้อสรุปที่ถูกต้องมากมาย การ overspecification น่าจะนำไปสู่ข้อสรุปที่ชัดเจนอย่างหนึ่ง ปริศนาตรรกะที่ดีหลีกเลี่ยงทั้งสอง

อ่าใช่ฉันพลาดไปอย่างใด ฉันจะลองและเพิ่มทางออกที่ดีกว่าถ้าฉันคิดได้
The Duck Communist

Joe: ถูกต้องกับความคิดเห็นแรกของคุณ ปริศนาที่ช่วยให้คุณสามารถไขปริศนาด้วยกันได้อย่างจำใจไม่ได้เป็นปริศนาสำหรับโครงการศิลปะระดับอนุบาล
นักขัตฤกษ์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.