দূরত্ব গণনা সম্পাদনা করার জন্য মাইক্রো-অপ্টিমাইজেশন: এটি বৈধ?


10

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

if s[i] = t[j] then  
  d[i, j] := d[i-1, j-1]       // no operation required
else
  d[i, j] := minimum
             (
               d[i-1, j] + 1,  // a deletion
               d[i, j-1] + 1,  // an insertion
               d[i-1, j-1] + 1 // a substitution
             )
}

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

তবে মুছে ফেলা (বা সন্নিবেশ) এর ফলে একটি ছোট মান হতে পারে , সুতরাং অ্যালগরিদম স্থানীয়ভাবে ভুল, অর্থাত এটি অনুকূল মানদণ্ডের সাথে ভেঙে যায়। তবে সম্ভবত ভুল পরিণতিটি পরিবর্তন করে না - এটি বাতিল হয়ে যেতে পারে।

এই মাইক্রো-অপ্টিমাইজেশন বৈধ, এবং কেন (না)?

উত্তর:


6

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

এখানে চিত্র বর্ণনা লিখুন

এটি অসম্ভব, যেহেতু তীরগুলি "ক্রস" করার অনুমতি নেই। মেলে tবেশ কয়েকটি সন্নিবেশ (চিত্রের সবুজ বাক্সগুলি) প্রেরণা করে, যেমন বাম দিকে চিত্রিত হয়েছে:

এখানে চিত্র বর্ণনা লিখুন

তবে তারপরে আপনি ডানদিকে অঙ্কিত একটি সমানভাবে ভাল প্রান্তিককরণ খুঁজে পেতে পারেন। উভয় ক্ষেত্রেই আপনি একটি মেলে tএবং আপনার দুটি সন্নিবেশ রয়েছে।

শেষের একটির প্রতিস্থাপনের যুক্তি tএকই is সুতরাং আপনি যদি সর্বশেষের একটির বিকল্প প্রতিস্থাপন করেন তবে তার tপরিবর্তে আপনি শেষ দুটি টির সাথে মেলে এবং আরও ভাল সারিবদ্ধতা পেতে পারেন (ছবিটি দেখুন)।

এখানে চিত্র বর্ণনা লিখুন


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