ইউক্লিডিয়ান প্লেন (2D) এ এমবেড করা গ্রাফের জন্য সংক্ষিপ্ততম আন্তঃ ছেদ করার পথ


14

ইউক্লিডিয়ান বিমানে এম্বেড থাকা গ্রাফের সবচেয়ে সংক্ষিপ্ত পথটি খুঁজে পেতে আপনি কোন অ্যালগরিদম ব্যবহার করবেন, এই পথটিতে কোনও স্ব-ছেদ না থাকা (এমবেডিংয়ে) থাকা উচিত নয়?

উদাহরণস্বরূপ, নীচের গ্রাফ, আপনি থেকে যেতে চাই । সাধারণত, ডিজকস্ট্রার অ্যালগরিদমের মতো একটি অ্যালগরিদম এর মতো ক্রম তৈরি করে:(0,0)(-3,2)

[(0,0)3(0,3)2(1,2)4(-3,2)]=7+ +2

পূর্ণ গ্রাফ:

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

সংক্ষিপ্ততম পথ:

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

সংক্ষিপ্ততম ছেদ না করা পথ:

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

তবে, এই পথটি ইউক্লিডিয়ান বিমানে নিজেকে ছেদ করে, অতএব আমি একটি অ্যালগরিদম চাই যা আমাকে এই ক্ষেত্রে সবচেয়ে সংক্ষিপ্ততর আন্তঃ ছেদ করার ক্রম দেবে:

[(0,0)3(0,3)3(0,6)5(-3,2)]=11।

এই পথটি সংক্ষিপ্ততম পথের চেয়ে দীর্ঘ, তবে এটি সংক্ষিপ্ততম ছেদ না করা পথ।

এমন কোনও (দক্ষ) অ্যালগরিদম আছে যে এটি করতে পারে?

টিকজেড সূত্র


2
চমৎকার সমস্যা! (+1 টি)। অ্যাপ্লিকেশন বা প্রসঙ্গটি যেখানে এই সমস্যা দেখা দেয় সেখানে আপনি কিছু বলতে পারেন? আমি কৌতূহলী. (পিএস একটি পৃথক নোটের উপর: এই ঝাঁকুনির বাইরে বেরোনোর ​​সুস্পষ্ট উপায় হ'ল আপনি প্রতিটি ছেদ পয়েন্টের জন্য একটি নতুন শীর্ষবিন্দু প্রবর্তন করতে পারবেন কিনা তা বোঝা উচিত, যেখানে প্রতিটি পয়েন্ট যেখানে একটি প্রান্তটি অন্য প্রান্তকে ছেদ করতে পারে। তবে আমি বুঝতে পারি যে কিছু / অনেক অ্যাপ্লিকেশনের জন্য এটি সম্ভব নাও হতে পারে))
ডিডাব্লু

2
@ ডিডব্লিউ এটিই আমি বাব্বির দুর্বোধ্য জ্বলন্ত গাধা / পোনা সমস্যার সংশোধন করছি ; অ্যাপ্লিকেশনটি তাঁর ইউক্লিডিয়ান টিএসপি হিউরিস্টিক অ্যালগরিদম, তিনি কীভাবে এটি ব্যবহার করতে চান তা আমি ঠিক নিশ্চিত নই, তবে আমি কল্পনা করেছি যে তিনি জানতে চান তিনি দুটি পয়েন্টের মধ্যে কোনও পথ খুঁজে পেতে পারেন কিনা, যখন তিনি ইতিমধ্যে আরও বেশ কয়েকজনকে পরিদর্শন করেছেন (ইউক্লিডিয়ান টিএসপি-র সেরা সফর হবে) আন্তঃ ছেদ করা উচিত)। এবং হ্যাঁ, আপনি যদি নতুন নোডগুলি প্রবর্তন করতে পারেন তবে তা দুর্দান্ত হবে তবে আপনি যদি ইউক্লিডিয়ান টিএসপির জন্য নতুন শহরগুলি প্রবর্তন করতে না পারেন তবে প্রশ্নটি দুর্দান্ত।
রিয়েলজ স্লাও

1
আমাকে পথ অস্তিত্বের সমস্যাটিকে 3 এসএটিতে রূপান্তরিত করার চেষ্টা করা যাক। দুটি পথ অতিক্রম না করার সময় দুটি সংকেত অতিক্রম করার উপায় তৈরি করা সবচেয়ে বড় চ্যালেঞ্জ বলে মনে হয়।
জন ডিভোরাক

1
হাঁ। আমি এর মাধ্যমে স্যাট সমাধান করা বোঝাতে চাইছি।
জন ডিভোরাক

উত্তর:


11

এমনকি কোনও পথের অস্তিত্ব আছে কিনা তা সিদ্ধান্ত নেওয়াও এনপি-সম্পূর্ণ ।

প্রদত্ত গ্রাফের যে কোনও পথই একটি বৈধ পথ, যাচাই করা স্পষ্টভাবে সম্ভব। সুতরাং সীমানা-দৈর্ঘ্যের সমস্যা এনপি-তে রয়েছে এবং এর উপসেটটি হ'ল যে কোনও পথের সমস্যা।

এখন, যে কোনও পথের সমস্যার (এবং এভাবে সীমাবদ্ধ দৈর্ঘ্যের সমস্যার) এনপি-কঠোরতা প্রমাণ করতে, আসুন এই সমস্যাটির জন্য স্যাট-সিএনএফ হ্রাস করুন:


গ্লোবাল স্ট্রাকচার হ'ল তারের টুকরাগুলির একটি গ্রিড যা ক্লজ টুকরাগুলির একটি কলাম দ্বারা সংযুক্ত। গ্রাফের মাধ্যমে কোনও আন্তঃ ছেদ করার পথ উপস্থিত থাকলে লজিক সূত্রটি সন্তুষ্টযোগ্য।

পথের দুটি টুকরো অতিক্রম করা অসম্ভব তবে দুটি যুক্তির তারকে অতিক্রম করা প্রয়োজনীয়। বরং, পথ প্রবাহ কঠোরভাবে দেওয়া হয়: দুটি নোড দ্বারা একটি তারের বিন্দু দেওয়া হয়। তারের বিন্দুর ক্রম যার মধ্য দিয়ে পথটি হ্রাস করে বাধ্য হয়। যুক্তিকে প্রতিনিধিত্ব করা হয় যার দ্বারা নোডটি বেছে নেওয়া হয়। যে কোনও পথ যতক্ষণ না সমস্ত ওয়্যার পয়েন্টের মধ্য দিয়ে যায় ততক্ষণ চয়ন করা যায়।

এই চিত্রটিতে, পথটি লাল বক্র দ্বারা প্রতিনিধিত্ব করা হয়েছে এবং লজিক প্রবাহটি কালো তারের দ্বারা উপস্থাপিত হয়েছে:

বামদিকে তারের গ্রিড, ডানদিকে ক্লজ টুকরাগুলির কলাম।

এখন প্রতিটি উপাদান তৈরি করা যাক।


তারের মধ্যে তিনটি টাইল ব্যবহার করা হয়: ক্রসিং, শাখা পয়েন্ট এবং উল্লম্ব তার। আসুন সবচেয়ে কঠিন দিয়ে শুরু করুন:

ক্রসিংয়ের পেছনের মূল ধারণাটি হ'ল প্রতিটি জোড় তারের পয়েন্টের জন্য একটি পথ প্রস্তুত করা এবং সম্ভাব্য পাথগুলিকে যথেষ্ট পরিমাণে বাঁকানো যাতে একই যুক্তি (সামঞ্জস্যপূর্ণ পাথ) এনকোড করা ব্যতীত সমস্ত জোড়া একে অপরকে অতিক্রম করে। অবশ্যই আমরা দুটি সমান্তরাল প্রান্তকে ছেদ করতে বলতে পারি না, তবে দুটি পথকে ছেদ করার জন্য আমরা অতিরিক্ত অর্ডার -2 নোড প্রবর্তন করতে পারি।

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

উপরের গ্রাফিকাল চিত্র

ব্রাঞ্চ পয়েন্ট এবং উল্লম্ব তারগুলি একই কাজ করে তবে এর সাথে সম্পর্কিত করার জন্য খুব কম পথ রয়েছে:

এখানে দুটি জোড়া পথ যথেষ্ট।  তারের মূলত একটি শাখা বিন্দু যা শাখা নষ্ট হয়ে যায়

¬একজন¬বি

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

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


বাহ, ভাল কাজ। আমি এখনও এটি পর্যালোচনা করি নি, তবে আপনি যে কাজটি রেখেছেন তা আশ্চর্যজনক।
রিয়েলজ স্লাও

ঠিক আছে, আমি কেবল আমার বোঝার সংক্ষিপ্ত বিবরণ দিতে চাই: প্রথম গ্যাজেটটি ব্যবহার করে কেউ যে কোনও দুটি আক্ষরিক পথ জুড়ি পার করতে পারে এবং ব্যবহৃত পথগুলি বজায় রাখতে পারে। অতএব, পাথগুলি বিছানোর জন্য পরিকল্পনার বিষয়ে কাউকে চিন্তার দরকার নেই (যেমন প্ল্যানারক্রিটস্যাটে জোর গ্যাজেট সার্কিটগুলির জন্য করে)। তারপরে চূড়ান্ত গ্যাজেটটি ব্যবহার করে, কেউ যথেচ্ছ যৌক্তিক ধারাগুলি তৈরি করতে পারে (পরিকল্পনার বিষয়ে আর চিন্তা করতে হবে না)। এটা কি সঠিক?
রিয়েলজ স্লাও 22:53

এটি সঠিক বলে মনে হচ্ছে তবে সাধারণ লেআউটের জন্য আপনাকে দুটি জিনিস নিশ্চিত করতে হবে: যে আপনি একটি এনআইপি পাথ দিয়ে সমস্ত গ্যাজেটকে শক্তি দিতে সক্ষম হন (এটি সর্বদা সম্ভব হওয়া উচিত - যদি কোনও পথটি কেন্দ্রে আটকে যায় তবে আপনি তারের গ্যাজেটগুলি চালু করতে পারেন) একসাথে পাথের একা প্রান্তটি নিয়ে আসুন) এবং পড়ার তারের সমস্ত পাথ একে অপরকে এমনভাবে অতিক্রম করে যে তারের মধ্যে বিপরীত হওয়া সম্ভব না (সত্যই দফা না থাকলে এটি আমার কাছে নিশ্চিত) ( কোনও আক্ষরিক ক্রস না ​​করা) এবং যদি সমস্ত ধারাগুলি সার্কিটের বাইরের দিকে থাকে (একই মুখের শুরু এবং শেষটি হয়))।
জন ডিভোরাক

পঠন তারের সমস্ত পাথ একে অপরকে অতিক্রম করার বিষয়টি নিশ্চিত করা - আপনি যদি নিশ্চিত হতে চান তবে কেবল এন পাথগুলি শাখা বন্ধ করুন, তবে এখনই সেগুলি সমস্ত ক্রস করুন। আমি মনে করি এটি অবশ্য কখনও প্রয়োজনীয় নয়।
জন ডিভোরাক

1
আমি বিশ্বব্যাপী কাঠামোর জন্য ওপেন অফিস ড্র ব্যবহার করেছি এবং বাকীগুলির জন্য [ইয়েড] (www.yworks.com/products/yed) yed আমি কি (সাথে <sub>) এডিট করব ?
জন ডিভোরাক

-1

সমস্যাটি তুরান ১৯৪৪ সালের সাথে দেখা যাচ্ছে this এটি থিওরি এবং অ্যালগরিদমগুলির একটি ভাল সমীক্ষার মতো দেখায় , গ্রাফের ক্রসিং নম্বর: মুটজেল দ্বারা থিওরি এবং গণনা । উইকিপিডিয়ায় গ্রাফের সংখ্যা পেরিয়ে কিছু তথ্য রয়েছে


1
এটি মন্তব্য হিসাবে ভাল?
জুহো

এটি বৈজ্ঞানিকভাবে "আপনি কোন অ্যালগরিদমটি ব্যবহার করবেন"
ভিজেএন

1
যতক্ষণ এই তাত্ত্বিক প্রশ্নের উত্তর হতে পারে, এটা বাঞ্ছনীয় হবে উত্তর অপরিহার্য অংশের এখানে অন্তর্ভুক্ত করা, এবং রেফারেন্স এর জন্য লিঙ্ক প্রদান।
জন ডিভোরাক

জান স্ট্যাকেক্সচেঞ্জ মেটা থেকে রেফারিকে উদ্ধৃত করে। একটি কার্যকর ধারণা পোষণ করার সময়, বিজ্ঞান / গণিতে প্রশংসাপত্রের ভূমিকা একটি প্রোগ্রামিং টিপস সাইটের চেয়ে পৃথক .... [অবশ্যই স্বীকার করা রেফ বর্তমানে আমার কাছে আরও বিশদ উত্তরের জন্য পাওয়া যায় না) .. যাইহোক এটি সম্ভবত কিছুটা সম্ভব জ্যানস নির্মাণ, দরকারী / সার্থক হলেও ইতিমধ্যে সাহিত্যে এবং বিজ্ঞানে রয়েছে, এটির স্ট্যান্ডার্ড প্রক্রিয়া / সেরা অনুশীলনের অংশ এটি সনাক্ত করার [প্রচেষ্টা চালানোর] চেষ্টা ....
ভিজেএন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.