সর্বাধিক প্রস্থের লাইনে সমানভাবে পাঠ্য ভাঙ্গার জন্য একটি রৈখিক সময় অ্যালগরিদম রয়েছে। এটি এসএমএডাব্লুকে (বা নুথ অ্যান্ড প্লাস) এবং "সমানভাবে" অর্থ: http://en.wikedia.org/wiki/Word_wrap# মিনিমাম_রেজিডনেস
উপরের অ্যালগরিদমের জন্য কোনও অ্যালগরিদম বা একটি অবতল ব্যয়ের কার্যকারিতা রয়েছে যা সর্বাধিক লাইনের প্রস্থের পরিবর্তে পাঠ্যটি ভাঙতে চাইলে আমি যে রেখাগুলি ভাঙ্গতে চাইব তা বিবেচনা করবে? রৈখিক সময়েও?
অন্য কথায়, আমি একটি লাইন ব্রেকিং (বা অনুচ্ছেদে গঠন, বা শব্দ মোড়ানো) আলগোরিদিম সন্ধান করছি যেখানে ইনপুটটি পছন্দসই লাইন প্রস্থ নয়, রেখার পছন্দসই সংখ্যা।
কেবল একটি ব্যবহারিকভাবে ব্যবহারযোগ্য অব্যবহৃত পদ্ধতির বর্ণনা দিতে: প্রতিটি শব্দের জোড়ার মধ্যে এন শব্দ এবং এন -1 স্পেস রয়েছে, এম হ'ল রেখার পছন্দসই সংখ্যা (এম <= এন)। প্রতিটি স্থানের পরে কমপক্ষে একটি (সম্ভবত শূন্য) লাইন-ব্রেক হতে পারে। এখন, অ্যালগরিদম "সম্ভাব্যতা" গণনা করে প্রতিটি সম্ভাব্য সংমিশ্রণে বিরতি স্থাপনের চেষ্টা করবে এবং সেরাটি ফিরিয়ে দেবে। কীভাবে এটি আরও দ্রুত করা যায়?
এছাড়াও, এই জাতীয় সমস্যার কোনও নাম আছে? এটি কোন "পরিবারের" সমস্যার সাথে সম্পর্কিত? (উদাহরণস্বরূপ "বিন প্যাকিং") যদি আমার পুরোপুরি অনুকূল সমাধানের প্রয়োজন না হয়, তবে খুব খুব ভাল, খুব দ্রুত সমাধান করা কি সম্ভব? (হিউরিস্টিক্সের কিছু ফর্ম ব্যবহারযোগ্য হতে পারে, যদি কোনও প্রদত্ত ইনপুট জন্য সর্বদা একই থাকে, সম্ভবত উপ-অনুকূল, সমাধান)।
হালনাগাদ
চন্দ্র চেকুরি পরামর্শ দিলেন "ক্লিনবার্গ এবং টার্ডোস অধ্যায়ের একটি সমস্যা ডায়নামিক প্রোগ্রামিং" " এটি একটি ভাল পঠিত ছিল তবে এটি লাইন গণনার চেয়ে প্রস্থের ভিত্তিতে লাইন ব্রেকিং নিয়ে কাজ করে। এটি এই সমস্যার সাথে খাপ খাইয়ে নিতে পারে যা আমি এখনই বের করার চেষ্টা করছি। সমাধানের জন্য এখানে একটি ভাল লিঙ্ক, তারা এমনকি লিনিয়ার সময় এটি সমাধান করার দাবি করে: http://web.media.mit.edu/~dlanman/courses/cs157/HW5.pdf
এছাড়াও, স্কিয়েনার দ্য অ্যালগরিদম ডিজাইন ম্যানুয়ালে "8.5 পার্টিশন সমস্যা" একটি অধ্যায় রয়েছে যা হুবহু অনন্য বিষয় বলে মনে হচ্ছে, আমি এখনও এটি পড়ছি, শক্ত। (দুর্ভাগ্যক্রমে, আমি যা বুঝতে পেরেছি তাতে চতুর্ভুজ সময় জটিলতা রয়েছে)