तर्क खेलों / कटौती नियमों / सुराग के पर्याप्त सेट के लिए डेटा संरचनाएं?


11

मैं आइंस्टीन की पहेली के समान एक लॉजिक गेम विकसित करने के बारे में सोच रहा हूं , जिसमें हर नए गेम रीप्ले के लिए अलग-अलग सुराग होंगे।

यह सुनिश्चित करने के लिए कि आप एक अद्वितीय समाधान की ओर संकेत करते हैं, इस बात की गारंटी देने के लिए आप विभिन्न संस्थाओं (पालतू जानवर, घरों के रंग, राष्ट्रीयता इत्यादि), कटौती नियम आदि को संभालने के लिए किन डेटा संरचनाओं का उपयोग करेंगे?

मैं एक कठिन समय सोच रहा हूं कि कैसे संभव सुराग के साथ खेलने के लिए कटौती नियम प्राप्त करें; किसी भी जानकारी की सराहना की जाएगी।


1
मुझे नहीं लगता कि यह खेलना बहुत दिलचस्प होगा। आपके द्वारा इसे एक बार हल करने के बाद , इसे फिर से अलग-अलग नियमों के साथ करना सुडोकू खेलने से बहुत अलग नहीं होगा।
ओ ० '।

4
दूसरी ओर, लोग उनसे ऊबने से पहले सैकड़ों सुडोकू करते हैं। और यदि आप किसी संख्या या नाम में टाइप करने के बजाय किसी प्रकार की कार्रवाई-दुनिया में जवाबों को टाई करते हैं, तो लोग इसकी शिकायत भी नहीं करेंगे कि यह सुडोकू है।

यह मुझे इस खेल की याद दिलाता है: nic.com/games/series.html
CeeJay

3
मैं एवरेट केसर के खेलों पर एक नज़र डालने का सुझाव दूंगा - उन्होंने इस प्रकृति के खेल का एक टन बना दिया है, विशेष रूप से शर्लक जो कि बहुत ही पहेली से प्रेरित था, लेकिन कुछ अन्य खेल जैसे हनीकॉम्ब होटल या उनका नवीनतम गेम , श्रीमती हडसन । यह क्रिया में इस तरह की चीज़ को देखने में आपकी मदद कर सकता है।
माइकल मैडसेन

@ जो: आप जो कहते हैं वह तकनीकी रूप से सही है, लेकिन यहां महत्वपूर्ण बात यह जानना है कि आप क्या कर रहे हैं (वह है)। यदि आप जानते हैं कि आप कर रहे हैं, तो सुडोकू जैसा खेल करना ठीक है, जबकि यह लगभग निश्चित रूप से बकवास परिणाम देगा यदि आपको लगता है कि आप कुछ और कर रहे हैं।
ओ ० '।

जवाबों:


4

वाह। यह वास्तव में ऐसी स्थिति की तरह प्रतीत होता है जहां पुराने स्कूल एआई अर्थिक वेब, जैसे रिचर्ड बार्टेल ने सोचा था कि जब वह आर्टिफिशियल इंटेलिजेंस और कंप्यूटर गेम्स लिखेंगे , तो खेलों के भविष्य के लिए महत्वपूर्ण होगा। आपके पास मूल रूप से डेटा सूचियों की एक जोड़ी है (डेटाबेस टेबल, जो भी हो), जिनमें से पहला नियम निर्दिष्ट करता है कि चीजें एक दूसरे से कैसे संबंधित हो सकती हैं, जैसे:

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आवश्यकता होती है , जैसे "के दाईं ओर", "बाईं ओर" और "अगले" से निपटने की आवश्यकता होती है। उदाहरण के लिए "अवधारणाएँ", लेकिन समस्या की संरचना उन्हें दृढ़ता से सुझाव देती है।

डननो अगर यह आपको बहुत दूर ले जाएगा, लेकिन मुझे आशा है कि यह मदद करता है।


4

मेरी सिफारिश एआईएमए परियोजना के साथ प्रदान की गई बाधा संतुष्टि समस्याओं (सीएसपी) के लिए पायथन कोड को देखने की है । वे वैध बाधाओं का ट्रैक रखने के लिए एक शब्दकोश (साहचर्य सरणी / हैश तालिका) का उपयोग करते हैं। इसके अलावा, सीएसपी को हल करने के लिए उपयोग किए जाने वाले कई एल्गोरिदम का कार्यान्वयन होता है, जैसे कि मिनी-टकराव और एसी 3।

कोड में एक उदाहरण के रूप में एक नमूना ज़ेबरा समस्या शामिल है, जैसे आप जिस से जुड़े हैं।


1

यह वास्तव में बहुत गहरा जाता है। अजीब बात है कि विकिपीडिया इसका उल्लेख कभी नहीं करता है।

आप जिस चीज की तलाश कर रहे हैं, वह बहुत कठिन सबूत हैं, शायद, फिच सबूत जैसी चीजों के साथ पहुंचा जा सकता है । इसलिए हम अपने दिए गए डेटा में से चीजों को घटाने की कोशिश कर रहे हैं। बहुत सारे फिच प्रूफ बिल्डर्स हैं जो आपके लिए बहुत काम करते हैं। लेकिन कुछ अभ्यास सिर्फ सबूत के लिए नहीं हैं।

मुझे नहीं पता कि उपयोगकर्ता को गणनाएँ करनी चाहिए या नहीं। यदि ऐसा है, तो 3SAT जैसी चीजों के बारे में जागरूक रहें , जो कि बहुपद समय के लिए अवांछनीय समस्याएं हैं।

डेटा संरचनाओं के रूप में आप उपयोग करना चाहते हैं, मुझे लगता है कि आप किसी तरह का Ruleवर्ग बनाना चाहते हैं। प्रकार के आधार पर नियम कुछ भी हो सकता है। विधेय लॉगिक में बहुत सारे नियम नहीं हैं , इसलिए इसे विरासत में प्राप्त किया जा सकता है (यदि, यदि, यदि, और, या, नहीं ...)। इन नियमों का केवल मूल्यांकन किया जाना है। और केवल एक चीज जो एक नियम कर सकता है, वह सही या गलत है। क्योंकि वह वही है जो आप लॉजिक के साथ करते हैं। विश्वविद्यालय में, मुझे जॉन केली की इस पुस्तक को पढ़ने की सिफारिश की गई थी ।

कक्षाओं में वापस जाना: आपको इन समस्याओं को देखना चाहिए जैसे कि आप गणित के साथ सामान्य गणनाओं को लागू करेंगे। एक +ऑपरेटर क्या है ? इसमें दो पैरामीटर होते हैं, जो अपने आप में एक नया समीकरण हो सकता है, या सिर्फ एक संख्या। मुझे लगता है कि आपके पास नियम समान हैं। उनके पास एक पैरामीटर के रूप में नए नियम हो सकते हैं, या बस एक बूलियन (जिसे विधेय कहा जाता है)।

मुझे उम्मीद है कि यह आपको बहुत मदद करता है, खासकर संदर्भ। यदि आप अधिक जानना चाहते हैं, या यदि मैं गलत दिशा में जा रहा हूं, तो कृपया मुझे बताएं।


समस्या बस एक परिमित (और छोटे!) मॉडल पर तर्क में विधेय का सबूत नहीं है, या मैंने जवाब दिया होगा बजाय एक इनाम रखा। लक्ष्य के लिए नहीं है हल समस्या - लक्ष्य स्वचालित रूप से करने के लिए है बनाने समस्या है, और एक दिलचस्प तरीके से।

@Joe समस्या, एक छोटे से सेट के लिए, अभी भी 3SAT समस्या होगी। यदि आप केवल AND और OR बनाते हैं, तो यह उन चीजों को जन्म दे सकता है जो संतोषजनक नहीं हैं, इसलिए मुझे लगता है कि सिर्फ एक यादृच्छिक पहेली उत्पन्न करना बहुत कठिन होगा। पहेली में कम से कम कुछ प्रतिबंध होने चाहिए। कभी-कभी, पश्चगामी तर्क का जवाब हो सकता है (एक समाधान है, चीजों को छोड़ दें)
Marnix

सामान्य विधेय तर्क वास्तव में 3SAT की तुलना में कठिन है; हालांकि, आधुनिक प्रूफ एल्गोरिदम वास्तव में बहुत अच्छे हैं। इसके अलावा, बस एक मॉडल, एक पहेली उत्पन्न करना, और एक समाधान की जाँच करना रैखिक समय में किया जा सकता है - यह सुनिश्चित कर रहा है कि प्रदान की गई बाधाएं एक अद्वितीय, खोज योग्य समाधान का उत्पादन करती हैं।

@ तो क्या कोई अड़चन है कि हम इस पहेली को बनाने के लिए निश्चित हो सकें? सवाल अभी भी था: क्या datastructure का उपयोग करने के लिए। इसलिए मुझे अभी भी लगता है कि Ruleकक्षा एक अच्छा विचार है। इन अवरोधों की मॉडलिंग अभी भी मुझे लगता है कि विधेय तर्क द्वारा की जाती है।
मार्निक्स

0

मेरे पास कोई अच्छा जवाब नहीं है, लेकिन एक ही तरह की समस्या के संकेत की तलाश में, मुझे यह भंडार जीथब पर मिला:

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

इसमें सुराग का चयन करने और पहेली को हल करने के लिए आपको कितने सुराग चाहिए, यह तय करने के लिए कुछ तर्क शामिल हैं।


-1

इसे हल करने पर यह है।

बेशक, मुझे लगता है कि पीछे की ओर काम करना बहुत मुश्किल नहीं होगा; इस तरह की एक सूची है:

  • फ्रेड रेड डॉग

  • स्टीव ब्लू कैट

  • बिल पर्पल व्हेल

  • एरिक सियान डॉल्फिन

जिसे आसानी से जनरेट किया जा सकता है, और फिर उसी से नियमों का एक सेट बनाया जा सकता है।

भंडारण के लिए, प्रत्येक अलग चीज़ का सेट क्यों नहीं, इसलिए [फ्रेड, स्टीव, बिल, एरिक] और उत्तर का एक सेट [फ्रेड, रेड, डॉग]। फिर 'NAME does (not) ACTION OBJECT' है।

जब आप इसे करने के लिए नीचे उतरते हैं, तो क्या एक अनूठा समाधान वास्तव में मायने रखता है? जब तक आपका गेम उन्हें सूचियों में विभाजित कर सकता है, और 'सेट 1 में व्हेल शामिल नहीं है' की जाँच करें।


2
चाल है, आप चाहते हैं कि समस्या अभी भी कठिन हो। यदि आप नियमों के 90% संभव संयोजनों को मान्य उत्तरों के रूप में स्वीकार करते हैं, तो यह अब एक दिलचस्प पहेली नहीं है।

मुझे लगता है कि यह एक मान्य बिंदु है - लेकिन दिए गए सुरागों की संख्या को कम करने के लिए केवल समाधान नहीं है?
कम्युनिस्ट डक

1
सं। अवमूल्यन से कई वैध निष्कर्ष निकलने की संभावना है। Overspecification एक बहुत ही स्पष्ट निष्कर्ष पर ले जाने की संभावना है। एक अच्छी तर्क पहेली दोनों से बचती है।

आह हाँ, मुझे याद आया कि किसी तरह। अगर मैं एक के बारे में सोच सकता हूं तो बेहतर समाधान जोड़ूंगा।
कम्युनिस्ट डक

जो: बिल्कुल सही अपनी पहली टिप्पणी के साथ। एक पहेली जो आपको एक साथ विली-नीली का सुराग लगाने देती है वह किंडरगार्टन आर्ट प्रोजेक्ट के रूप में एक पहेली नहीं है।
टेरेशियन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.