রাফেলের মন্তব্য এবং j_random_hacker এর মন্তব্য দ্বারা ইঙ্গিত হিসাবে , উত্তর ইতিবাচক। আসলে, যে কোনও এমএসটি কিছু ছোট ব্যতিক্রম সহ যে কোনও এমএসটি অ্যালগরিদম দ্বারা অ্যাক্সেসযোগ্য ।
গ্রাফ , সমস্ত প্রান্তে দুটি ওজন ফাংশন (প্রকৃত সংখ্যায়) হিসাবে সংজ্ঞায়িত করা হয় (দুর্বলভাবে) তুলনা-সামঞ্জস্যপূর্ণ (একে অপরের সাথে সামঞ্জস্য ) যদি আমরা উভয় ওজন ফাংশন দ্বারা প্ররোচিত প্রান্তগুলিতে কঠোর দুর্বল ক্রমকে একই কঠোরভাবে প্রসারিত করতে পারি মোট অর্ডার এটি হ'ল, আমরা প্রতিটি ওজন ফাংশনের সাথে সুসংগত টাই-ব্রেকিং নিয়ম তৈরি করতে পারি যাতে একটি ওজন ফাংশন এবং এর টাই-ব্রেকিং বিধি দ্বারা যে কোনও দুটি প্রান্তের তুলনার ফলাফল অন্য ওজন ফাংশন এবং তার টাই-এর ফলাফলের সমান হয়- আইনভঙ্গ.G
1 : আসুন এবং দুটি ওজনের ফাংশন হোক। নিম্নলিখিত পাঁচটি বিবৃতি একে অপরের সমতুল্য।w 2w1w2
- w 2w1 এবং তুলনামূলকভাবে সামঞ্জস্যপূর্ণ।w2
- যে কোনও প্রান্তে এবং দ্বারা একটি হালকা প্রান্ত ।w 2w1w2
- যে কোনও প্রান্তে, এবং দ্বারা প্রান্ত ।w 2w1w2
- একটি ওজন ফাংশন বিদ্যমান যে স্বতন্ত্র প্রান্ত নির্ধারিত স্বতন্ত্র ওজন যেমন যে তুলনা সামঞ্জস্যপূর্ণ হয় এবং ।ডব্লু 3 ডাব্লু 1 ডাব্লু 2w3w3w1w2
- যে কোনও প্রান্তের এবং যেমন এক ওজন ফাংশন দ্বারা চেয়ে হালকা , অন্য ওজন ফাংশনের দ্বারা চেয়ে হালকা বা হালকা ।e 2 e 1 e 2 e 1 e 2e1e2e1e2e1e2
লেমা 1 এর প্রমাণটি একটি সহজ অনুশীলন হিসাবে বাকি আছে।
থিম 2 : দুই ওজন ফাংশন যাক এবং যেমন হতে যে যদি , তারপর । তারপরে তারা তুলনামূলক-তুলনামূলক।w 2 e 1 < w 1 e 2 e 1 < w 2 e 2w1w2e1<w1e2e1<w2e2
(ইঙ্গিত) প্রুফ: একটি পদ্ধতির লেমা 1 এর শর্তটি যাচাই করা হয় 1 অন্য পদ্ধতিটি লেমমা 1 এর 2 শর্তটি যাচাই করে দেখানো হয়েছে যে কোনও প্রান্তে, দ্বারা একটি হালকা প্রান্তটিও দ্বারা হালকা প্রান্ত ,w 1w2w1
গ্রাফ -তে একটি তুলনা-ভিত্তিক অ্যালগরিদমকে তুলনা-সামঞ্জস্যপূর্ণ হিসাবে সংজ্ঞায়িত করা হয় যদি কোনও দুটি ধরণের (দুর্বলভাবে) তুলনা-সামঞ্জস্যপূর্ণ ওজন ফাংশন সমস্ত প্রান্তের জন্য, আমরা কোনও ওজন ফাংশন সহ অ্যালগরিদমকে এমনভাবে চালাতে পারি যা কোনও পরিবর্তন ছাড়াই পুনরাবৃত্তি করা যায় if অন্যান্য ওজন ফাংশন সহ। বিশেষত, অ্যালগরিদমের সেই দুটি রানের একই আউটপুট থাকবে।G
দয়া করে মনে রাখবেন যে সমস্ত এমএসটি অ্যালগরিদম দুটি স্বাদে বর্ণিত হতে পারে না। প্রথম স্বাদটি ধরে নিয়েছে যে স্বতন্ত্র প্রান্তগুলিতে স্বতন্ত্র ওজন রয়েছে যা মূল উদ্বেগের সাথে একটি এমএসটি (যা বাস্তবেও অনন্য এমএসটি) খুঁজে পেতে হয় used দ্বিতীয় স্বাদ স্বতন্ত্র প্রান্তগুলিকে একই ওজন রাখতে দেয়। অবশ্যই এই উত্তরে যেখানে প্রধান উদ্বেগ সমস্ত এমএসটি সন্ধান করা, আমরা কেবল দ্বিতীয় স্বাদে এমএসটি অ্যালগরিদমগুলিকে যত্ন করব।জিGG
একটি তুলনা-সামঞ্জস্যপূর্ণ এমএসটি অ্যালগরিদম সমস্ত এমএসটি খুঁজে পেতে পারে।
উপরের প্রস্তাবটি প্রমাণ করার জন্য, আমাদের কেবলমাত্র এমএসটিগুলির সংখ্যার গণনায় " ক্রুষল প্রতিটি এমএসটি খুঁজে পেতে পারে" বিভাগটি সামান্য গ্রহণ করতে হবে । কোনো এমএসটি জন্য এর ওজন ফাংশন একটি পজিটিভ ওজন যে অসম প্রান্ত ওজন কোন যুগল মধ্যে পরম পার্থক্য চেয়ে অনেক লঘুতর চয়ন। আমরা যদি অন্য প্রান্তের ওজন পরিবর্তন না করে প্রতিটি প্রান্তের ওজন থেকে সেই ওজনটি বিয়োগ করি তবে , আমরা বলি, । তাহলে প্রান্ত চেয়ে অনেক লঘুতর দ্বারা , তুলনায় লাইটার হওয়া আবশ্যক দ্বারাmGw1mw2e1e2w1e1e2w2যেমন. লেমা 2 দ্বারা, এবং 3 তুলনা-সামঞ্জস্যপূর্ণ। নোট করুন যে সাথে অনন্য এমএসটি । (এই স্বতন্ত্রতাটি দেখানোর একটি উপায় হ'ল প্রমাণ করতে হবে যে যখনই একটি এমএসটি প্রান্তের ওজন হ্রাস হয়, নতুন ওজন ফাংশন সহ যে কোনও এমএসটি অবশ্যই সেই প্রান্তটি ধারণ করে ) সুতরাং 2 এর অ্যালগরিদমের কোনও রান খুঁজে পাবে । কারণ অ্যালগরিদম তুলনা-সামঞ্জস্যপূর্ণ, আমরা একইভাবে বা সাথে অ্যালগরিদমটি চালাতে । যেহেতু যে run অনন্য এমএসটি, পাবেন সঙ্গে , এটা পাবেন পাশাপাশি সঙ্গে ।w1w2mw2w2mw1w2mw2mw1
প্রতিটি এমএসটি অ্যালগরিদম তুলনা-সামঞ্জস্যপূর্ণ
উপরের প্রস্তাবটি বিদেশে শোনাচ্ছে। ভাল, প্রতিটি এমএসটি অ্যালগরিদমের দ্বারা, আমি বোঝাচ্ছি যে কোনও সাধারণ তুলনা-ভিত্তিক এমএসটি অ্যালগরিদম যা আমি দেখেছি, ভুল বা অপ্রয়োজনীয় পদক্ষেপের মতো দৃশ্যত প্যাথলজিকালগুলি বাদ দিয়ে। যেহেতু একটি তুলনা-সামঞ্জস্যপূর্ণ এমএসটি অ্যালগরিদম সমস্ত এমএসটি খুঁজে পেতে পারে, তাই প্রতিটি এমএসটি অ্যালগরিদম সমস্ত এমএসটি খুঁজে পেতে পারে। বিশেষ করে, প্রতিটি চার ক্লাসিক এমএসটি আলগোরিদিম , যথা Borůvka এর, পরিপাটি এর, Kruskal এবং রিভার্স-Delete আলগোরিদিম সব MSTs খুঁজে পেতে পারেন।
এখানে আরও তিনটি তুলনা-সামঞ্জস্যপূর্ণ এমএসটি অ্যালগরিদম রয়েছে।
- মুছে ফেলা ভারী প্রান্ত অ্যালগরিদম। সমস্ত প্রান্ত দিয়ে শুরু করুন। বারবার একটি চক্র সন্ধান করুন এবং যতক্ষণ না কোনও চক্র অবশিষ্ট থাকে ততক্ষণ এর অন্যতম ভারী প্রান্তটি সরিয়ে ফেলুন।
- অ্যাড-অ-ভারী-প্রান্তের অ্যালগরিদম। খালি সেট দিয়ে শুরু করুন। সমস্ত প্রান্ত মাধ্যমে Iterate। প্রতিটি প্রান্ত যোগ করা হয় এবং, যদি একটি চক্র গঠিত হয়, তবে এর একটিতে সবচেয়ে প্রান্তটি সরান।
- প্রতিস্থাপন দ্বারা লাইটার প্রান্ত অ্যালগোরিদম। যে কোনও বিস্তৃত গাছ দিয়ে শুরু করুন । মধ্যে চক্র খুঁজুন প্লাস একটি প্রান্ত নেই । একটি প্রান্ত তাহলে যে চক্রে থেকে ভারী হয় , অপসারণ থেকে যোগ করতে । যতক্ষণ না আমরা আর ওজন হ্রাস করতে না পারি ততক্ষণ পুনরাবৃত্তি করুন ।TTeTtetTeTT
নিম্নলিখিত এমএসটি অ্যালগরিদম তুলনা-সামঞ্জস্যপূর্ণ নয়।
- ডিগ্রি-পক্ষপাতদুষ্ট কৃসকলের অ্যালগরিদম, যা নিম্নোক্ত সংশোধন সহ ক্রুসালের অ্যালগরিদম। ধরুন, যখন আমরা ক্রিস্কালের অ্যালগরিদমের উইকিপিডিয়া বর্ণনার মতো থেকে ন্যূনতম ওজনের একটি প্রান্ত সরিয়ে ফেলতে চলেছি, তখন আমাদের বেছে নিতে ন্যূনতম ওজন সহ একাধিক প্রান্ত রয়েছে। আমরা যে প্রান্তটি সরিয়ে ফেলতে চাইছি এটি একটি প্রান্ত হবে যার দুটি শীর্ষ কোণের ডিগ্রির যোগফল সমস্ত পছন্দগুলির মধ্যে বৃহত্তম। এই অ্যালগরিদম তুলনা সামঞ্জস্যপূর্ণ হতে পারে না যেহেতু এটি এমএসটি খুঁজে নেই ছেদচিহ্ন সঙ্গে গ্রাফ , এবং প্রান্ত ওজন এবং প্রান্ত ওজন{ একটি খ , খ গ , গ ঘ } একটি , খ , গ একটি খ 1 খ গ , গ ঘ , ঘ খ 2S{ab,bc,cd}a,b,cab1bc,cd,db2। এই অ্যালগরিদমটিকে অপ্রয়োজনীয় পরিবর্তনের কারণে রোগগত বলে মনে করা হয়।
দয়া করে নোট করুন যে উপরে উল্লিখিত সমস্ত আটটি এমএসটি অ্যালগরিদম তুলনা ভিত্তিক।
তুলনামূলকভাবে সামঞ্জস্যপূর্ণ একটি অ্যালগরিদম কীভাবে প্রদর্শিত করবেন?
আমি উদাহরণ হিসাবে কুষকলের অ্যালগরিদম ব্যবহার করব। এখানে ওয়েটড ডাইরেক্টার্ড সংযুক্ত গ্রাফ তে ক্রুসকলের অ্যালগরিদম (দ্বিতীয় স্বাদে) এর বিবরণ দেওয়া হল ।G
- হিসাবে একই কিনারা ছাড়া প্রান্তটি ছাড়া একটি গ্রাফ তৈরি করুন । সুতরাং একটি একক প্রান্তের পৃথক গাছের বন।জি এফFGF
- গ্রাফের সমস্ত প্রান্তযুক্ত একটি সেট তৈরি করুন ।S
- যখন nonempty এবং এখনো spanning নয়
এফSF
- থেকে সর্বনিম্ন ওজন সহ একটি প্রান্ত নির্বাচন করুন ।S
- থেকে প্রান্ত অপসারণ ।S
- যে প্রান্ত দুটি ভিন্ন গাছ সংযোগ তাহলে বন থেকে এটি যোগ , একটি একক গাছ দুটি গাছ মিশ্রনF
- আউটপুট ।F
যাক এবং দুটি তুলনা সামঞ্জস্যপূর্ণ ওজন ফাংশন হতে । কৃসকলের অ্যালগরিদমে ওজন কার্যকারিতাটি কেবলমাত্র সেই পদক্ষেপে জড়িত যা " থেকে ন্যূনতম ওজন সহ একটি প্রান্ত নির্বাচন করুন "। লেমা 1 এর শর্ত 2 আমাদের জানায় যে আমরা এই ধাপে একটি সাধারণ হালকা প্রান্তটি নির্বাচন করতে পারি। এরপরে আমরা সহজেই প্রবর্তন করে চেক করতে পারি যে আমরা এবং মাধ্যমে একই ধাপে সমস্ত পদক্ষেপগুলি চালাতে । সুতরাং কৃষকলার অ্যালগরিদম তুলনা-সামঞ্জস্যপূর্ণ।ডাব্লু 2 জি এস ডাব্লু 1 ডাব্লু 2w1w2GSw1w2
একটি অ্যালগরিদম তুলনা-সামঞ্জস্যপূর্ণ যদি, আলগা ভাষায়, এটি তিন ধাপে বর্ণনা করা যায়।
- এমন কিছু করুন যাতে ওজন জড়িত না।
- প্রদত্ত প্রান্তগুলির সর্বনিম্ন ওজন সহ একটি প্রান্ত নির্বাচন করুন
- প্রদত্ত প্রান্তের একটি সেটটিতে সর্বাধিক ওজন সহ একটি কিনারা নির্বাচন করুন
এই পর্যাপ্ত শর্তটি বোরভভাক্স, প্রাইমস, ক্রুসকল, বিপরীত মুছুন, মোছা-ভারী-প্রান্ত এবং অ্যাড-নন-হেভি-এজ-অ্যালগোরিদমকে অন্তর্ভুক্ত করে। নোট করুন যে এই পর্যাপ্ত শর্তটি মাপসই করার জন্য, আমাদের অ্যাক্সেসযোগ্য এমএসটিগুলির সেটকে প্রভাবিত না করেই একটি অ্যালগরিদমের কিছু নির্দিষ্ট বিবরণ পরিবর্তন করতে হতে পারে। ডিগ্রি-পক্ষপাতদুষ্ট কৃসকলের অ্যালগরিদম তুলনামূলকভাবে সামঞ্জস্যপূর্ণ হওয়ার কারণে, আমি এই পর্যাপ্ত শর্তটি আলগা শর্তে বর্ণনা করা জোর দিয়েছি