সিজিগি কীভাবে তার তথ্য সংরক্ষণ করে?


11

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

উত্তর:


14

যেহেতু কোনও একক ব্যাপক প্রকাশনা নেই এটি প্রোবিং কোডের ভিত্তিতে , জেনারেটর এবং রোনাল্ড ডি ম্যান (জেনারেটরের লেখক) এর বিভিন্ন ব্যাখ্যা


যখন কোনও টেবিলবেস বেশ ভালভাবে অনুসন্ধান করা হচ্ছে (ওরফে বিশাল সংক্ষেপিত হ্যাশ মানচিত্র):

  1. অবস্থানটি স্বাভাবিক করা হয়েছে ...
  2. ... একটি পূর্ণসংখ্যার সূচকে ম্যাপ করা হয়েছে।
  3. সূচকটি একটি সারণিতে সন্ধান করা হবে যা এটি "ব্লক" এর সাথে সম্পর্কিত তা চিহ্নিত করে।
  4. সূচকটির জন্য তথ্য পুনরুদ্ধার করা অবধি ব্লকটি সঙ্কুচিত হয়।

তারপরে কমপক্ষে পাসের ক্যাপচারগুলি সমাধান করার জন্য সাধারণত কিছু কোড "বাইরের" থাকে ing


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

ডিটিজেড পেতে প্রথমে ডাব্লুডিএল তদন্ত করা দরকার। যদি অবস্থানটি অঙ্কিত হয়, তবে ডিটিজেড 0 হয় এবং টেবিলটি যে কোনও কিছু সঞ্চয় করতে পারে, যেটি সংক্ষেপণের জন্য সবচেয়ে ভাল। যদি সেরা পদক্ষেপটি একটি ক্যাপচার ছিল (যা আমরা ডাব্লুডিএল অনুসন্ধান থেকে মনে করতে পারি), তবে ডিটিজেড হ'ল ডাব্লুডিএল উপর নির্ভর করে +/- 1 বা +/- 101, এবং টেবিলটি আবার কোনও কিছু সঞ্চয় করতে পারে, যেটি সংক্ষেপণের জন্য সবচেয়ে ভাল।

জরাজীর্ণ টেবিলগুলিতে 4 টি সাবটেবিল রয়েছে, "নেতৃস্থানীয় প্যাঁচ" এর প্রতিটি ফাইলের জন্য একটি (সাধারণীকরণের পরে)।

ডাব্লুডিএল (উপ) টেবিলগুলি দ্বি-পার্শ্বযুক্ত, অর্থাত্ এগুলিতে এন্ডগামের প্রতিটি পাশের জন্য পৃথকভাবে দুটি পৃথক টেবিল থাকে (যদি না উপাদানটির প্রতিসাম্য থাকে)।

ডিটিজেড টেবিলগুলি সরানোর জন্য কেবল একপাশে সঞ্চয় করে। সুতরাং একটি সংক্ষিপ্ত 1-প্লাই অনুসন্ধানের অন্যদিকে ডিটিজেড গণনা করার প্রয়োজন হতে পারে।


(1) সাধারণকরণ সম্পর্কে: এটি করা যেতে পারে এমন একাধিক উপায় রয়েছে এবং কোনটি সেরা সংকোচনের দিকে পরিচালিত করবে তা আগেই বলা সহজ নয়। জেনারেটর কেবল বিভিন্ন আদেশের চেষ্টা করে। টুকরাগুলির চূড়ান্ত ক্রমটি টেবিল ফাইলের শিরোনামে সঞ্চিত হয়।

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

(3) সঙ্কুচিত মানগুলি ব্লকগুলিতে সংরক্ষণ করা হয়। টেবিল শিরোনামে ব্লকের আকার নির্দিষ্ট করা আছে। ব্লকগুলিতে সারণী ম্যাপিং সূচীগুলি বিরল, সুতরাং এটি সঠিক ব্লকের খুব কাছাকাছি লাফিয়ে অনুমতি দেয় এবং তারপরে সঠিক ব্লকটি খুঁজে পেতে একটি সংক্ষিপ্ত ফরোয়ার্ড বা পশ্চাৎ স্ক্যান প্রয়োজন requires একটি ব্লক সর্বাধিক 65536 পজিশনের জন্য মান সংরক্ষণ করতে পারে।

(৪) সিজিজি টেবিলগুলি আর-পেয়ারের উপর ভিত্তি করে কাস্টম সংক্ষেপণ ব্যবহার করে । একটি গুরুত্বপূর্ণ বৈশিষ্ট্য হ'ল এটি উপরোক্ত সনাক্ত করা স্বেচ্ছাসেবী মান সংরক্ষণের সুযোগগুলি ব্যবহার করার সুযোগ দেয়। ডিকম্প্রেশন খুব দ্রুত এবং কাঙ্ক্ষিত সূচকটির মান পাওয়া মাত্র বন্ধ হতে পারে।

Allyচ্ছিকভাবে, ডিটিজেড টেবিলগুলির জন্য আরও একটি পদক্ষেপ এফ (ডাব্লুডিএল, সঞ্চিত মান) = আসল মান প্রয়োজন। এই অতিরিক্ত ডিটিজেড মানচিত্রটি টেবিল শিরোনামে উল্লেখ করা হয় এবং এটি 8-বিট এন্ট্রি সহ একটি টেবিল। (আশ্চর্যের সাথে এটি 7 পিসের এন্ডগেমগুলির পক্ষে পর্যাপ্তও নয়, এমনকি प्याদ সহও এটি অপর্যাপ্ত হতে পারে, তাই এখন আরও একটি পতাকা রয়েছে যা 16-বিট এন্ট্রি সক্ষম করে)।

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

এছাড়াও স্পষ্টতই সাইনড সংরক্ষণ করার প্রয়োজন নেই, বা অভিশপ্ত এন্ডগেমগুলির জন্য +/- 100 এর অতিরিক্ত অফসেট কারণ এটি ডাব্লুডিএল মান থেকে অনুমান করা যায়।

যেহেতু ডিকম্প্রেশন খুব দ্রুত, একটি ক্যাশে প্রয়োজন নেই। পরিবর্তে ইঞ্জিনগুলি (এখনও সংক্ষেপিত) ব্লকগুলি সঞ্চয় করতে অপারেটিং সিস্টেমের পৃষ্ঠার ক্যাশে নির্ভর করতে পারে।


6 টুকরো টেবিলগুলিতে 150 গিগাবাইটে 3,787,154,440,416 অনন্য অবস্থানের জন্য ডাব্লুডিএল এবং ডিটিজেড সম্পর্কিত তথ্য রয়েছে , সুতরাং প্রতি অবস্থানের জন্য ~ 0.3 বিট।

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

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

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