সত্যি বলতে, আমি বিশ্বাস করতে পারি না এটি ইতিমধ্যে জিজ্ঞাসা করা হয়নি, তবে এটি এখানে
পটভূমি
একটি সাধারণ অনির্দেশিত দেওয়া হয়েছে প্ল্যানার দেওয়া (গ্রাফিকটি ছেদ ছাড়াই বিমানে আঁকতে পারে) দেওয়া, এটি একটি প্রমাণিত উপপাদ্য যে গ্রাফটি 4-সমৃদ্ধ, একটি শব্দ যা আমরা কিছুটা ঘুরে দেখব। যাইহোক, এটি একটি গ্রাফটি 5-রঙ করা আরও সহজ, যা আমরা আজকে আমাদের চ্যালেঞ্জকে ফোকাস করব।
গ্রাফের একটি বৈধ কে-কালারিং হ'ল নিম্নোক্ত বৈশিষ্ট্য সহ গ্রাফের নোডগুলিতে "রঙ" এর একটি অ্যাসাইনমেন্ট
- যদি দুটি নোড একটি প্রান্ত দ্বারা সংযুক্ত থাকে তবে নোডগুলি বিভিন্ন রঙের সাথে রঙিন হয়।
- গ্রাফ জুড়ে সর্বাধিক 5 টি রঙ রয়েছে।
এটি দেওয়া, আমি আপনার কাছে একটি সাধারণ প্রাথমিক অ্যালগরিদম 5-রঙের যে কোনও সাধারণ অনির্দেশিত প্ল্যানার গ্রাফ উপস্থাপন করব। এই অ্যালগরিদমের নিম্নলিখিত সংজ্ঞা রয়েছে requires
পুনঃব্যবহারযোগ্যতা : নোড 1 নোড 2 থেকে যদি পৌঁছতে পারে তবে এর অর্থ হ'ল নোডগুলির ক্রম রয়েছে, প্রতিটি একটি পরবর্তী প্রান্তের সাথে সংযুক্ত, যেমন প্রথম নোড নোড 2 এবং শেষটি নোড 1 নোট করুন যেহেতু পুনর্নির্দেশিত গ্রাফগুলি প্রতিসম হয়, নোড 1 নোড 2 থেকে পৌঁছনীয় হলে নোড 1 নোড 1 থেকে পৌঁছনীয়।
উপগ্রাফ : নোডের প্রদত্ত সংকলনের গ্রাফের একটি উপগ্রহ একটি গ্রাফ যেখানে সাবগ্রাফের নোডগুলি সমস্ত N এ থাকে এবং মূল গ্রাফের একটি প্রান্তটি যদি অনুচ্ছেদে থাকে এবং কেবল যদি উভয় নোড প্রান্ত দ্বারা সংযুক্ত থাকে তবে এন এ আছে
কালার (এন) 5 টি রঙযুক্ত এন নোডের সাথে প্ল্যানার গ্রাফগুলি রঙ করার জন্য একটি ফাংশন হোক। আমরা নীচে ফাংশন সংজ্ঞায়িত
- এর সাথে সংযুক্ত নূন্যতম সংখ্যার সাথে নোডটি সন্ধান করুন। এই নোডটির সাথে সর্বাধিক 5 টি নোড সংযুক্ত থাকবে।
- গ্রাফ থেকে এই নোড সরান।
- এটিকে রঙ করার জন্য এই নতুন গ্রাফে কল রঙ (এন -১)।
- মুছে ফেলা নোডটি গ্রাফের পিছনে যুক্ত করুন।
- যদি সম্ভব হয় তবে যুক্ত নোডটিকে এমন কোনও রঙ করুন যা এর সাথে সংযুক্ত নোডের কোনওটিই নেই।
- যদি সম্ভব না হয় তবে সংযুক্ত নোডের সমস্ত 5 প্রতিবেশী নোডের 5 টি ভিন্ন রঙ রয়েছে, সুতরাং আমাদের অবশ্যই নিম্নলিখিত প্রক্রিয়াটি চেষ্টা করতে হবে।
- যোগ করা নোড n1 ... n5 এর চারপাশে নোডগুলির সংখ্যা দিন
- মূল গ্রাফের সমস্ত নোডের সাবগ্রাফটিকে এন 1 বা এন 3 এর মতো রঙিন হিসাবে বিবেচনা করুন।
- এই অনুচ্ছেদে যদি এন 1 এন এন থেকে পৌঁছনীয় না হয়, এন 1 (এন 1 সহ) থেকে আগত নোডগুলির সেটগুলিতে, এন 1 এর রঙের সমস্ত উপস্থিতিগুলিকে এন 3 এর এবং এর বিপরীতে প্রতিস্থাপন করুন। এখন যুক্ত নোড এন 1 এর মূল রঙটি রঙ করুন।
- এই নতুন গ্রাফটিতে যদি এন 3 এন 1 থেকে পৌঁছনীয় হয় তবে এন 1 এবং এন 3 এর পরিবর্তে নোডগুলি এন 2 এবং এন 4 এ পদক্ষেপ 9 থেকে করুন।
চ্যালেঞ্জ
একটি এজলিস্টের একটি ইনপুট দেওয়া (একটি গ্রাফ প্রতিনিধিত্ব করে), প্রতিটি নোডকে একটি মান নির্ধারণ করে গ্রাফটি রঙ করুন।
ইনপুট : গ্রাফের প্রান্তগুলির একটি তালিকা (যেমন, [('a','b'),('b','c')...]
)
নোট করুন যে ইনপুট প্রান্ত তালিকাটি এমন হবে যে যদি (ক, খ) তালিকায় থাকে তবে (খ, ক) তালিকায় নেই।
আউটপুট : মানগুলির জোড়া যুক্ত একটি বস্তু, যেখানে প্রতিটি জোড়ের প্রথম উপাদানটি একটি নোড এবং দ্বিতীয়টি এর রঙ, অর্থাত্, [('a',1),('b',2)...]
বা{'a':1,'b':2,...}
আপনি রং, সংখ্যা থেকে অক্ষর, অন্য যে কোনও কিছু উপস্থাপন করতে ব্যবহার করতে পারেন anything
ইনপুট এবং আউটপুটটি বেশ নমনীয়, যতক্ষণ না ইনপুট এবং আউটপুটগুলি কী তা সম্পূর্ণ পরিষ্কার।
বিধি
- এটি একটি কোড-গল্ফ চ্যালেঞ্জ
- উপরে বর্ণিত অ্যালগরিদমটি আপনাকে ব্যবহার করতে হবে না। এটি কেবল রেফারেন্সের জন্য রয়েছে।
- যে কোনও গ্রাফের জন্য প্রায়শই তাদের রঙ করার অনেকগুলি বৈধ পদ্ধতি রয়েছে। যতক্ষণ না আপনার উত্পাদিত অ্যালগরিদম কালারিং বৈধ, ততক্ষণ তা গ্রহণযোগ্য।
- মনে রাখবেন যে গ্রাফটি অবশ্যই 5 রঙিন হওয়া উচিত।
পরীক্ষার কেস
আপনার রঙিন ফলাফলের বৈধতা পরীক্ষা করতে নিম্নলিখিত কোডটি ব্যবহার করুন । প্রতি গ্রাফে অনেকগুলি বৈধ গ্রাফের বর্ণ রয়েছে, এই অ্যালগরিদমটি কেবল রঙের বৈধতা পরীক্ষা করে। কোডটি কীভাবে ব্যবহার করবেন তা দেখতে ডকাস্ট্রিং দেখুন।
কিছু এলোমেলো (এবং বরং নির্বোধ) পরীক্ষার কেস :
পরীক্ষার কেস 2: ক্র্যাকার্ড্ট ঘুড়ি গ্রাফ
[(0, 1), (0, 2), (0, 3), (0, 5), (1, 3), (1, 4), (1, 6), (2, 3), (2, 5), (3, 4), (3, 5), (3, 6), (4, 6), (5, 6), (5, 7), (6, 7), (7, 8), (8, 9)]
একটি বৈধ আউটপুট:
{0: 4, 1: 3, 2: 3, 3: 2, 4: 4, 5: 1, 6: 0, 7: 4, 8: 3, 9: 4}
বিঃদ্রঃ : রঙিন অ্যালগরিদমের আরও সংখ্যক আচরণের পরীক্ষা করার জন্য এই পরীক্ষাগুলি খুব ছোট, সুতরাং আপনার নিজের গ্রাফগুলি তৈরি করা সম্ভবত আপনার কাজের বৈধতার একটি ভাল পরীক্ষা।
দ্রষ্টব্য 2 : আমি কোডের আরও একটি অংশ যুক্ত করব যা শীঘ্রই আপনার রঙিন সমাধানটি গ্রাফ করবে।
দ্রষ্টব্য 3 : আমি উপস্থাপন করা হয়েছে যে এলোমেলো রঙিন অ্যালগরিদমগুলিকে ছেড়ে দিতে পারি নি, এটিই পিপিসিজি সম্পর্কে এত দুর্দান্ত! তবে, যদি কেউ আরও নির্দ্বিধায়নের অ্যালগরিদম গল্ফ করতে পারে তবে তা খুব সুন্দর হবে।
5
করতে পারে 4
এবং তাদের আবার জমা দিতে পারে না।