Precomputation
অ্যালগরিদমগুলিতে, প্রাক-গণনা হল একটি অনুসন্ধান টেবিল তৈরি করার জন্য রান টাইমের আগে একটি প্রাথমিক গণনা সম্পাদন করার কাজ যা একটি অ্যালগরিদম দ্বারা প্রতিবার কার্যকর হওয়ার সময় পুনরাবৃত্তি গণনা এড়াতে ব্যবহার করা যেতে পারে। প্রাক-গণনা প্রায়শই অ্যালগরিদমগুলিতে ব্যবহৃত হয় যা ব্যয়বহুল গণনার ফলাফলের উপর নির্ভর করে যা অ্যালগরিদমের ইনপুটের উপর নির্ভর করে না। প্রাক-গণনার একটি তুচ্ছ উদাহরণ হল হার্ডকোডেড গাণিতিক ধ্রুবকের ব্যবহার, যেমন π এবং e, রান টাইমে প্রয়োজনীয় নির্ভুলতার সাথে তাদের আনুমানিক গণনা করার পরিবর্তে। ডাটাবেসে, বস্তুগতকরণ শব্দটি প্রাক-গণনার ফলাফল সংরক্ষণ করতে ব্যবহৃত হয়, যেমন একটি বস্তুগত দৃষ্টিভঙ্গিতে। একটি অ্যালগরিদম কার্যকর করার শুরুতে মধ্যবর্তী ফলাফলের একটি সেট প্রাক-গণনা প্রায়শই অ্যালগরিদমিক দক্ষতা যথেষ্ট পরিমাণে বৃদ্ধি করতে পারে। এটি সুবিধাজনক হয়ে ওঠে যখন এক বা একাধিক ইনপুটকে যথেষ্ট ছোট পরিসরে সীমাবদ্ধ করা হয় যাতে ফলাফলগুলি যুক্তিসঙ্গত আকারের মেমরির ব্লকে সংরক্ষণ করা যায়। যেহেতু মেমরি অ্যাক্সেস মূলত সময় জটিলতায় ধ্রুবক (ক্যাশিং বিলম্ব ব্যতীত), একটি উপাদান সহ যে কোনও অ্যালগরিদম যা একটি ছোট ইনপুট পরিসরে ধ্রুবক দক্ষতার চেয়ে খারাপ, প্রাক-কম্পিউটিং মান দ্বারা উন্নত করা যেতে পারে। কিছু ক্ষেত্রে দক্ষ আনুমানিক অ্যালগরিদমগুলি মানগুলির একটি বিচ্ছিন্ন উপসেট গণনা করে এবং মধ্যবর্তী ইনপুট মানগুলির জন্য ইন্টারপোলেট করে প্রাপ্ত করা যেতে পারে, যেহেতু ইন্টারপোলেশনও একটি রৈখিক অপারেশন। কম্পিউটারের আবির্ভাবের আগে, মানুষের দ্বারা জটিল ফাংশনগুলির হাতে গণনা দ্রুত করার জন্য মূল্যের মুদ্রিত সন্ধান টেবিল ব্যবহার করা হত, যেমন ত্রিকোণমিতিক টেবিল, লগারিদম টেবিল এবং পরিসংখ্যানগত ঘনত্বের ফাংশনগুলির টেবিল স্কুল শিশুদের প্রায়শই সর্বাধিক ব্যবহৃত সংখ্যার (9 x 9 বা 12 x 12 পর্যন্ত) গণনা এড়াতে "টাইম টেবিল" মুখস্থ করতে শেখানো হয়। এমনকি 493 খ্রিষ্টাব্দের গোড়ার দিকে, অ্যাকুইটেইনের ভিক্টোরিয়াস একটি 98-কলামের গুণন সারণী লিখেছিলেন যা (রোমান সংখ্যায়) প্রতিটি সংখ্যার গুণফল 2 থেকে 50 গুণ পর্যন্ত দিয়েছিল এবং সারিগুলি ছিল "এক হাজার দিয়ে শুরু হওয়া সংখ্যার একটি তালিকা, যা শত শত থেকে নেমে এসে একশোতে নেমে আসে, তারপর দশ থেকে নেমে আসে, তারপর এক থেকে নেমে আসে এবং তারপর ভগ্নাংশগুলি 1/144 পর্যন্ত নেমে যায়" উদাহরণস্বরূপ এমনকি ডিজিটাল ত্রিকোণমিতি ফাংশনের আধুনিক কম্পিউটার বাস্তবায়নগুলিও প্রায়শই আন্তঃবিন্যাস অ্যালগরিদমের জন্য সহগ সরবরাহ করতে বা ধারাবাহিক আনুমানিক অ্যালগরিদমগুলি শুরু করতে পূর্ব-সংগণিত সন্ধান সারণী ব্যবহার করে। ক্রিপ্টোসিস্টেমের উপর অনেক আক্রমণ প্রাক-গণনার সাথে জড়িত। আধুনিক দক্ষ অ্যালগরিদমের অংশ হিসাবে বড় আকারের প্রাক-গণনার উদাহরণগুলির মধ্যে রয়েছেঃ রেইনবো টেবিল পারফেক্ট হ্যাশ ঘনক আক্রমণ 3ডি গ্রাফিক্সে দৃশ্যমানতা গণনার জন্য পূর্বনির্ধারিত বিএসপি গাছ 3ডি গ্রাফিক্সে আলোকসজ্জার জন্য তেজস্ক্রিয়তা প্রাক-গণনার ফলস্বরূপ কোডের রান-টাইম গতি বাড়ানোর উপায় হিসাবে কম্পাইলারগুলি প্রাক-গণনার ব্যাপকভাবে ব্যবহার করেঃ এই প্রাক-গণনার কার্যকারিতা প্রোগ্রাম কোডের আংশিক মূল্যায়নের একটি রূপ হিসাবে বিবেচনা করা যেতে পারে। এই ধরনের প্রাক-গণনার উদাহরণগুলির মধ্যে রয়েছে তথ্যপ্রবাহ বিশ্লেষণ এবং শক্তি হ্রাসের পদক্ষেপ। আরও দেখুন গাণিতিক টেবিল অ্যালগরিদমিক দক্ষতা আংশিক মূল্যায়ন মেমোজাইজেশন রেফারেন্স সফ্টওয়্যার অপ্টিমাইজেশন