একটি জিওএপি সিস্টেমে ব্যয় নির্ধারণ করা


9

আমি বর্তমানে জাভাতে একটি জিওএপি সিস্টেম বিকাশ করছি। জিওএপি-র একটি ব্যাখ্যা http://web.media.mit.edu/~jorkin/goap.html পাওয়া যাবে । মূলত, বিশ্বের রাষ্ট্রকে রূপান্তরকারী ক্রিয়াগুলির মধ্যে প্লট করতে এটি * ব্যবহার করছে using

সমস্ত ক্রিয়াকলাপ এবং লক্ষ্যগুলি কার্যকর করার জন্য একটি সুষ্ঠু সুযোগ প্রদানের জন্য, আমি কিছু করার ব্যয়টি অনুমান করার জন্য একটি হিউরিস্টিক ফাংশন ব্যবহার করছি। এই ব্যয়টি অনুমান করার সর্বোত্তম উপায় কী যে এটি অন্যান্য সমস্ত ব্যয়ের সাথে তুলনাযোগ্য?

উদাহরণস্বরূপ, কোনও শত্রু থেকে আক্রমণ চালানো থেকে পালিয়ে যাওয়ার ব্যয় নির্ধারণ করা - কীভাবে তুলনামূলক হিসাবে ব্যয় গণনা করা উচিত?


আমরা আমাদের আরটিএস গেমের জন্য জিওএপি ব্যবহার করছি এবং শিগগিরই এর মতো আরও টিউটোরিয়াল পোস্ট করব: indiedb.com/games/attack-of-the-gelatinous-blob/news/…
Erlend

উত্তর:


4

সমস্ত ব্যয়কে তুলনীয় করে তুলতে, আপনাকে সমস্ত ক্রিয়াকলাপের জন্য কেবল একই হিউরিস্টিক ব্যবহার করতে হবে। উদাহরণস্বরূপ, সমস্ত ক্রিয়াকলাপের সম্ভাব্য ফলাফলগুলির একটি তালিকা রয়েছে এবং সমস্ত ফলাফলের সত্তার একটি নির্দিষ্ট মান থাকে।

উদাহরণস্বরূপ, জল সহ একটি গভীর পুল রয়েছে এবং সত্তা তৃষ্ণার্ত। সুতরাং আমরা প্রয়োজনীয়তা মেটানোর জন্য পুলটিতে একটি ক্রিয়া দেখেছে:

প্রথমে এই জায়গাগুলির সাথে সম্পর্কিত সত্তাটির অগ্রাধিকারগুলি, আপনি এগুলিকে সংশোধক হিসাবে কল করতে পারেন। এর মধ্যে কিছু সময়ের সাথে পরিবর্তন হবে এবং সত্তার উপর নির্ভর করবে। উদাহরণস্বরূপ, একটি পিঁপড়া জীবিত থাকার বিষয়ে কম চিন্তা করতে পারে এবং উপনিবেশের উদ্বেগগুলি সম্পর্কে আরও চিন্তা করতে পারে। বা যদি কোনও সত্তা কিছুটা পান না করেই চলে যায় তবে তৃষ্ণার তুষ্টিকে অগ্রাহ্য করা অন্যদেরকে অগ্রাহ্য করতে পারে।

সত্তা অগ্রাধিকার :

তৃষ্ণা মেটাবে: 40
শুকনো থাকুন: 10
বেঁচে থাকুন: 100

তারপরে অবস্থানটি কী উপস্থাপন করে:

অবস্থান : পুল
অ্যাকশন : জল সংগ্রহ করুন
* সম্ভাব্য ফলাফল: * :
তৃষ্ণা মেটান - (-95)
ভিজা হন - 10
ডুবিয়ে দেওয়া - 1

সুতরাং আমরা এই ক্রিয়াকলাপের জন্য এখানে মূল্য নির্ধারণ করতে পারি: (40 * -95) + (10 * 10) + (100 * 1) = -3600

যেখানে একটি বর্ষণকারী নদী থেকে জল সংগ্রহ করার মতো হতে পারে:

অবস্থান : নদী পার্শ্বে
পদক্ষেপ : জল সংগ্রহ করুন
* সম্ভাব্য ফলাফল: * :
তৃষ্ণা মেটাবেন - (-95)
ভেজা পান - 90
ডুবে - 60

(40 * -95) + (10 * 90) + (100 * 60) = 3100

সুতরাং পুল থেকে জল সংগ্রহ করা স্পষ্টতই এটি একটি ভাল পছন্দ। সম্ভবত যদি রাগিং নদীই একমাত্র পছন্দ ছিল তবে নদীটি চেষ্টা করার আগে তার তৃষ্ণা মেটাতে অগ্রাধিকার অগ্রসর হওয়া পর্যন্ত সত্তাটি অপেক্ষা করত।

আপনি জিনিসগুলি আরও সহজভাবে শুরু করতে চান। কেবলমাত্র কয়েকটি ভেরিয়েবল রয়েছে যা বিশ্বব্যাপী আরও প্রয়োগ করতে পারে। বেঁচে থাকার মতো, প্রয়োজনগুলি পূরণ করুন। আপনার লড়াই বা বিমানের উদাহরণে, আপনাকে প্রতিটি সত্তাকে একটি যুদ্ধ রেটিং দেওয়া দরকার, যাতে তারা কার্যকরভাবে স্কোরের উদ্দেশ্যে অন্য সত্তার বিরুদ্ধে র‌্যাঙ্ক করতে পারে।


অনেক ধন্যবাদ! সমস্ত সম্ভাব্য ফলাফল সম্পর্কে ভবিষ্যদ্বাণী করা আমার যা ছিল তার চেয়ে ভাল ধারণা বলে মনে হচ্ছে।
ফুলওয়াল

0

আমি জানি, আমি জানি, বেশ কিছুদিন হয়েছে।

আসলে, জিওএপি-তে ২০০৩ সালে জেফ অরকিন ফেয়ারে বাস্তবায়িত হয়েছিল (এবং সিক্যুয়াল, এক্সটেনশন এবং ... মর্ডারের ছায়ায় পুনরায় ব্যবহার করেছেন), ক্রিয়াকলাপগুলি নির্ধারিত ব্যয় নির্ধারণ করে থাকে, যার পরিমাণ 0.5 থেকে 8 পর্যন্ত হয় general সাধারণভাবে, আক্রমণ করার ব্যয় অনেক বেশি ডিফেন্ডিং ব্যয়ের চেয়ে বেশি ব্যয়বহুল। এই ব্যয়গুলি ফ্রি ফেয়ার এসডিকে (২০০৮) এর গেম ডেটাবেজে অ্যাক্সেস করা যায়; এখানে তারা:


{{অ্যানিমেট, 1}, {অ্যাটাক, 6}, {অ্যাটাকবার্স্ট লিমিটেড, 5}, {অ্যাটাক ক্রাচ, 5}, ack অ্যাটাকফ্র্যামআম্বাশ, 4}, {অ্যাটাকফ্র্যামআরমেড, 4}, {অ্যাটাকফ্র্যাম আর্মড্রোমড, 4}, over, অ্যাটাকফ্র্যামভেল, 1}, {অ্যাটাকফ্র্যামভিউ, 4.5}, {অ্যাটাকগ্রেনেডফ্রোমকভার, 2}, {অ্যাটাকল্যাঞ্জ 3 ডি, 1}, {অ্যাটাক লঞ্জমিলি, 1}, ack অ্যাটাক লঞ্জজেল, 1 অ্যাক্ট, ল্যাকজ্যাক 1}, {অ্যাটাকমিলিঅনলুকড, 3}, {অ্যাটাক্রেডি, 7}, {অ্যাটাকট্রেট, 6}, {অ্যাটাকট্রিটসিলিং, 6}, {ব্লাইন্ডফায়ারফ্রোমকভার, 2}, {চার্জ, 1}, {ডেথঅনকোথিকেল, 1 , Ism ডিসম্যান্টভিহিকল, 1}, od ডজকভার্ড, 1}, od ডজঅনভিহিকল, 1}, od ডজরল, 2}, od ডজরলপ্যারানয়েড, 2}, od ডজশফেল, 3}, 0.5 ড্র্যাওপান, 1},} ফেসনোড, 1}, {ফ্লাশআউটউইথগ্রেনেড, 3}, {অনুসরণ করুন, 3}, {ফলোহ্যাভিআর্মার, 2}, {ফলোপ্লেয়ার, 2}, {ফলোপ্লেয়ারফিডেট, 1.8},{ফলোয়েটএটনোড, 4}, {গেটআউটঅফটওয়ে, 1}, oto গোটো নোড, 1}, {গোটো নোড 3 ডি, 1}, oto গোটো নোডডাইরেক্ট, 1}, {গোটো নোটঅফটাইপ, 4}, 3 {,} , 8}, oto গোটোভালিডপজিশন, 1}, ols হোলস্টারওয়েপন, 1}, le আইডল, 2}, {আইডলফিডেট, 1}, le আইডলঅনভিহিকল, 1}, T আইডেল ট্রায়ারেট, 2}, {ইন্সপেক্টডিসট্রান্স, 2}, {ইনস্ট্যান্ট }, {ইনস্ট্যান্টডিথকনকডাউন, 1}, ock নকডাউনব্লুট, 2}, {নকডাউনএক্সপ্লোসিভ, 2}, ock নকডাউনমেলি, 2}, {লংরেইকাইলবুলিট, 3}, {লংরেইকিলকিল,} লং, el {লুকএটডিস্টরব্যান্স, 1.5}, {লুকএটডিস্টবারেন্সফ্রমভিউ, 3}, ope লোপটোটারট্যাগউনক্লোকড, 1}, {মাউন্টনোডঅনক্লাকড, 1}, {মাউন্টভিহিকল, 1}, {রিঅ্যাক্টডোড্যাঞ্জার, 1}, ad রিলোকড, রিলোকড, 5 , 5}, {শর্টআরকিয়েলমিলি, 4}, {স্তব্ধ, 1}, {সাপশনফায়ার, 2}, {সাপশনফায়ারফ্রোমকভার, 1}, {জরিপআরিয়া, 1},{ট্র্যাভার্সব্লকডূড়, 1}, {ট্র্যাভারস লিংক, 2}, {ট্র্যাভারস লিঙ্কউনক্লাকড, 1}, {উদ্ঘাটন, 1}, {ইউজসমার্টবজেক্টনোড, 3}, {ইউজস্মার্টঅবজেক্টনোডমাউন্টড, 1}}


তবে এটি সমস্ত জিওএপি বাস্তবায়নের ক্ষেত্রে হয় না এবং উদাহরণস্বরূপ, সমাধি রাইডারদের পরিবর্তনশীল ব্যয় হয় (যেমন একটি গোটো অ্যাকশনের দূরত্ব)।

ক্রিয়াকলাপগুলির পূর্বশর্তও রয়েছে এবং জিওএপি আর্কিটেকচার (যেমন, "কিল শত্রু" লক্ষ্য এবং জিওএপি সেই লক্ষ্যটি সন্তুষ্ট করার জন্য জিওএপি ফিরে আসে এমন পরিকল্পনা সত্ত্বেও) জিওএপি আর্কিটেকচারের (যেমন, "কিল শত্রু" লক্ষ্য সত্ত্বেও কিছুটা ক্রিয়া খেলতে হবে)। আপনার উদাহরণে, অর্থাত্ আক্রমণ চালানো থেকে পালিয়ে যাওয়া, স্বাস্থ্যের স্তরটি পূর্ব শর্ত হতে পারে (এবং পরিবর্তনশীল ব্যয়ের প্রয়োজন নেই)।

বা মাইকেল এর অগ্রাধিকারের উপর ভিত্তি করে অন্য কোনও কিছুর আগে একটি চেক_কাস্টস () সদস্য ফাংশন কার্যকর করা হয় এবং গতিশীল ব্যয় প্রদান করে।

এখন, দয়া করে নোট করুন যে মর্ডোরের ছায়ায় গেম ডেভেলপাররা স্ক্রিনে কী কার্যকর হবে তা প্রভাবিত করার জন্য ক্রিয়াগুলির ব্যয় নিয়ে খেলতে চেষ্টা করেছিল। দেখা যাচ্ছে যে এটি এত সহজ এবং সুলভ ক্রিয়াকলাপটি প্রায়শই দেখা যায় না: একটি গেমের এআই খেলোয়াড়কে সমর্থন করে; খেলোয়াড় যদি প্রত্যাশিত হিসাবে কাজ না করে তবে এআই কেবল এটিকে সমর্থন করবে এবং ... পর্দায় যা প্রদর্শিত হবে তা গেম ডিজাইনের প্রত্যাশার মতো হবে না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.