পথ সন্ধানে পরিস্থিতিগত সচেতনতা


11

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

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

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

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

আমি নিশ্চিত যে আমি এটিকে সমাধান করার চেষ্টা করা প্রথম ব্যক্তি নই এবং আমি সমস্যার কিছু ইনপুট প্রশংসা করব।


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

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

উত্তর:


8

সোজা এ * ব্যবহার করে অনুকূল পরিস্থিতি হ'ল উপায় অনুসন্ধানের স্থানটি প্রসারিত করা। এটি, কল্পনা করুন যে আপনার চরিত্রটি বহন করতে পারে এমন প্রতিটি আইটেমের মিশ্রণের জন্য অন্ধকূপটির একটি পৃথক অনুলিপি রয়েছে।

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

আপনি অন্যান্য কৌশল পরিবর্তনগুলি অন্তর্ভুক্ত করতে এই কৌশলটি প্রসারিত করতে পারেন, যেমন সুইচগুলি যা খুলতে পারে এবং / অথবা দরজা বন্ধ করতে পারে। আপনি এমনকি খেলোয়াড়কে আইটেমগুলি ফেলে দেওয়ার অনুমতি দিতে পারেন, যদিও এটি জটিল হয়ে উঠতে পারে, কারণ সম্ভাব্য অনুসন্ধানের স্থানটি প্রচুর পরিমাণে বাড়িয়ে দেওয়া উচিত, পরে রাষ্ট্রটিকে প্রতিটি বাদ দেওয়া আইটেমের অবস্থান অন্তর্ভুক্ত করতে হবে।

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

উদাহরণস্বরূপ, ধরে নিন যে আপনার অন্ধকূপটির দশটি দরজা এবং পাঁচটি কী রয়েছে। তারপরে সম্পূর্ণ অনুসন্ধানের স্থানে মোট 25 * 32 = 800 নোডের জন্য 2 * 10 + 5 = 25 উল্লেখযোগ্য অবস্থান এবং 2 ^ 5 = 32 সম্ভাব্য আইটেম সংমিশ্রণ থাকবে। এটি একটি খুব পরিমিত সংখ্যার, বিশেষত প্রদত্ত যে অনুসন্ধানের জায়গার বেশিরভাগই অ্যাক্সেসযোগ্য।


5

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

যেভাবেই হোক, সমস্যাটি দুটি স্তরে সংযোগের মধ্যে একটি। "অন-গ্রাউন্ড" স্তরে, আপনি জানেন যে আপনি সর্বদা একটি অবিভক্ত জোনের মধ্যে নিরাপদে চলাচল করতে পারবেন ... তালাবদ্ধ দরজা দিয়ে অবিভক্ত, এটি। আপনি এখানে আপনার বর্তমান এ * প্যাথফাইন্ডিং বাস্তবায়ন বিনামূল্যে ব্যবহার করতে পারেন। (সরল উদাহরণে আপনি একটি জোনকে একটি একক কক্ষ হিসাবে দেখতে পেলেন a কোনও দরজা আনলক না করে আপনি অন্য কোনও ঘরে যেতে পারবেন না reality বাস্তবে এটি আপনার অন্ধকূপের পুরো অঞ্চল হতে পারে)) এটি আপনার ভিত্তি সত্তা আন্দোলন, তবে এটি আপনার চারপাশের অঞ্চলটি প্রথমে জরিপের পরিবর্তে আপনার চোখের সাথে নিচে পড়ে ঘুরে দেখার মতো - আপনি সম্ভবত ল্যাম্পপোস্টে চলে যেতে পারেন। অথবা এই ক্ষেত্রে, একটি লক দরজা সুতরাং আপনার A * চালিত আপনার গ্রাউন্ড-লেভেল মানচিত্রগুলি অবশ্যই খেলোয়াড়কে কেবল বর্তমান অঞ্চলের মধ্যে চলাচলে সীমাবদ্ধ রাখতে হবে।

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

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

সম্ভাবনা রয়েছে যে কোনও চাবিটি চাওয়া হচ্ছে তা নিজেই একটি তালাবদ্ধ দরজার পিছনে ... এবং সেই দরজার চাবিটিও একইভাবে ... এবং অ্যাড বমি বমি ভাবও। এটি মূলত নির্ভরতা সমাধানের সমস্যা এবং এটি মোকাবেলা করার কয়েকটি উপায় রয়েছে যার মধ্যে একটি হ'ল পেট্রি নেট। দেখুন এই চমৎকার কাগজ।

পুনশ্চ. যদি আপনি প্রক্রিয়াগতভাবে আপনার অন্ধকূপটি তৈরি করে থাকেন, তবে আপনি যেমনটি করেন তেমন নির্ভরশীলতার ক্রম সম্পর্কিত তথ্য সংরক্ষণ করতে পারেন, যদি আপনি ইতিমধ্যে প্লেয়ারের শুরুর অবস্থানটি জানেন।


2

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

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

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

তবে এটি সত্য যে এই জটিলতাগুলি 'খুব দক্ষ' এর ক্ষেত্র থেকে 'এ' সফল হবে, তবে আমার প্রয়োজন টাইমস্কেলে সম্ভবত এটি সম্ভব নয় '। আপনার প্রয়োজনীয় টাইমস্কেলটি কী? আসলে, আপনার এটি করার দরকার কেন - আপনার কি আসলেই সবচেয়ে ছোটতম পথ প্রয়োজন, বা কোনও যুক্তিসঙ্গত পথই যথেষ্ট?

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

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

আমি কী চেষ্টা করব, যদি 'সবচেয়ে সংক্ষিপ্ত পথে' মাপদণ্ডটি শিথিল করা সম্ভব হয়, তা হ'ল:

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

একবার আমি এই কাজটি করার পরে, আমি কিছু ছোট অপ্টিমাইজেশন বিবেচনা করব - যেমন। কীগুলি সহ অঞ্চলগুলিকে আরও সুক্ষ্মভাবে ওজন করা যাতে নিম্ন স্তরের পাথগুলি কীগুলি সংগ্রহের জন্য ছোট্ট চৌরাস্তা তৈরির সম্ভাবনা বেশি থাকে।


0

আপনি যে তথ্য সরবরাহ করেছেন সেগুলি সহ আমি মনে করি আপনি খুব সামান্য পরিবর্তন করে এ * ব্যবহার করতে পারেন। একটি সাধারণ এ * অ্যালগোরিদমে আপনি প্রতিটি নোডের উপর দিয়ে যাওয়ার সময় চিহ্নিত করেন যাতে আপনি আর কখনও পাস করবেন না তা নিশ্চিত করে। এটি হ'ল অংশ যা আইটেমগুলির সাথে সমস্যা তৈরি করে। মূল পরিবর্তনটি হ'ল এটি মনে রাখা যখন আপনি আগে কোনও নোড থেকে পাস করেছিলেন তখন আপনার আইটেমগুলি কী ছিল। এখানে আমার অর্থ বোঝানোর জন্য একটি সূডো কোড দেওয়া হয়েছে:

if (nodestoCheck.notempty())
    newNode = nodeToCheck.first;
    if (notpassed(newNode.pos, newNode.items))
        if (room(newNode).containItem)
            add NewNode + room(NewNode).items 
        else
            do normal A* algorithm for new Node

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


0

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

এর অর্থ হ'ল আপনার পাথ সন্ধানকারী সবচেয়ে সংক্ষিপ্ত কীবিহীন রুটের পথে যাবেন এবং যদি এটির সাথে কীগুলি সন্ধান করে তবে এটি যদি সহায়তা করে তবে এটি তার পথে যুক্ত করবে

এটা আমার কাছে বেশ যুক্তিসঙ্গত মনে হয়। এটি নিখুঁত নয়, তবে এটি সমস্যার সহজ সমাধান।

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