লাইন দুটি বিন্দুর সেট আলাদা করে


19

পয়েন্ট দুটি সেট একটি লাইন দ্বারা পৃথক করা যেতে পারে যদি সনাক্ত করার উপায় আছে?

আমরা পয়েন্ট দুটি সেট আছে এবং বি যদি একটি লাইন যে অনেক কিছুর মতো একজন এবং বি যেমন যে সব পয়েন্ট একটি এবং একমাত্র একজন লাইনের একপাশে, এবং সব পয়েন্ট বি এবং শুধুমাত্র বি ওপারে।ABABAABB

আমি যে সর্বাধিক নিখুঁত অ্যালগরিদম নিয়ে এসেছি তা হ'ল এবং B এর জন্য উত্তল বহুভুজ নির্মাণ এবং তাদের ছেদ করার জন্য পরীক্ষা করা। এটি একটি উত্তল বহুভুজ নির্মাণের জন্য সময় জটিলতা ( এন লগ এইচ ) হওয়া উচিত বলে মনে হচ্ছে । আসলে আমি সময়ের জটিলতায় কোনও উন্নতির প্রত্যাশা করছি না, এটি আদৌ উন্নত হতে পারে তা সম্পর্কে আমি নিশ্চিত নই। তবে অন্তত এমন একটি লাইন আছে কিনা তা নির্ধারণের জন্য আরও সুন্দর উপায় থাকা উচিত।ABO(nlogh)

উত্তর:


19

উলি এবং ডেভ ক্লার্ক উভয়ই সঠিকভাবে পর্যবেক্ষণ করেছেন যে এটি লিনিয়ার প্রোগ্রামিং সমস্যা, এমনকি উচ্চ মাত্রায়ও (এই দুটি পয়েন্টের সেটগুলি হাইপারপ্লেন দ্বারা পৃথক করা যায়?) এবং তাই এটি বহুবর্ষীয় সময়ে সমাধান করা যায়। তবে আপনার পয়েন্টগুলি বিমানে অবস্থান করার কারণে, আপনার সমস্যাটি আসলে সময়ে সমাধান করা যেতে পারে , যেখানে n হ'ল পয়েন্টের সংখ্যা।O(n)n

সবচেয়ে সহজ সমাধানটি সম্ভবত সিডেলের এলোমেলোভাবে অ্যালগরিদম। একটি ইনপুট বিন্দু বেছে নিন এলোমেলোভাবে অবিশেষে এবং যাও recursively একটি পৃথক লাইন গনা সব পয়েন্ট জন্য ব্যতীত পিp p

  • যদি এ জাতীয় কোনও লাইন বিদ্যমান না থাকে তবে মূল পয়েন্টগুলি পৃথকযোগ্য নয়।

  • যদি সঠিক দিকে থাকে , তারপর মূল পয়েন্ট আলাদা করে।p

  • যদি এর ভুল দিকে থাকে তবে মূল পয়েন্টগুলি পি এর মাধ্যমে একটি লাইন দ্বারা পৃথক করা যায় , বা মূল পয়েন্টগুলি একেবারেই পৃথক নয় not এই শর্তটি ( এন ) সময় [অনুশীলন] এ চেক করা সহজ ।ppO(n)

এই অ্যালগরিদম উচ্চ সম্ভাবনার (ও অ্যালগরিদমের এলোমেলো পছন্দগুলির প্রতি সম্মানের সাথে ) সময়ে চলে। আরও তথ্যের জন্য, মূল কাগজ বা অনলাইন বক্তৃতা নোটের যে কোনও সংখ্যা দেখুন।O(n)


আপনাকে অনেক ধন্যবাদ, আমি এই কাগজটি প্রকাশ করতে যাচ্ছি।
com

আপনার তৃতীয় ক্ষেত্রে, আপনি উল্লেখ করেছেন যে এটি এমন হতে পারে যাতে লাইনটি মধ্য দিয়ে যায় , এটি কীভাবে তা জানতে সহায়তা করে? p
তারাসাচ

10

আপনার দুটি ডেটা সেটের সম্পত্তি হ'ল লিনিয়ার পৃথকীকরণের জন্য , কেবলমাত্র এমন একটি লাইন থাকে যা সেগুলি পৃথক করে। প্রচুর মেশিন লার্নিং লিনিয়ার শ্রেণিবদ্ধীদের সন্ধানে নিবেদিত , যা আপনার আগ্রহী এমন বিভাজনগুলি সম্পাদন করে lines

আপনি যেমন লাইনগুলি সম্পর্কে কথা বলছেন, আমি ধরে নেব যে আপনার পয়েন্টগুলি বিমানটিতে রয়েছে। আপনি কি করতে চান মান খুঁজতে , W 2 এবং W 3 , এই ধরনের যে সব পয়েন্টের জন্য ( একটি 1 , একটি 2 ) সেটে একটি , W 1 একটি 1 + + W 2 একটি 2W 3 এবং সব পয়েন্টের জন্য ( 1 , 2 ) মধ্যে বি , W 1 1 + +w1w2w3(a1,a2)Aw1a1+w2a2w3(b1,b2)B । সুতরাং, অসমতার ডাব্লু 1 x + ডাব্লু 2 ওয়াই ডাব্লু 3 সেট এ এর শ্রেণিবদ্ধ হিসাবে দেখা যেতে পারে।w1b1+w2b2<w3w1x+w2yw3A

অনুকূল লাইন নির্ধারণের জন্য প্রচুর পরিমাণে মেশিন লার্নিং অ্যালগরিদম রয়েছে (লিনিয়ার রিগ্রেশন, লজিস্টিক রিগ্রেশন এবং আরও অনেক কিছু)। এগুলি কিছু ত্রুটি মেট্রিকের উপর ভিত্তি করে মানগুলি খুঁজে পাবে । তারপরে আপনি পরীক্ষা করতে পারেন যে সমস্ত পয়েন্ট সঠিকভাবে শ্রেণিবদ্ধ হয়েছে কিনা। অর্থাৎ মান মাঝে সবাই কি একটি উপরে সমীকরণ সন্তুষ্ট এবং একইভাবে জন্য বিw1,w2,w3AB

যেহেতু আপনি কেবল এই জাতীয় লাইন বিদ্যমান কিনা সে বিষয়ে আগ্রহী হিসাবে আপনার বিদ্যমান কৌশলগুলি ব্যবহার করা প্রয়োজন (যদিও এটি সম্ভবত সহজতর হবে)। নিখরচায় বিনামূল্যে ভেরিয়েবলের ক্ষেত্রে নীচের সাম্যিকতার সংকলনটি সেট আপ করুন ।w1,w2,w3

w1a1i+w2a2iw3 প্রতি যেখানে একজন = { ( একটি 1 1 , একটি 1 2 ) , ... , ( একটি | একজন | 1 , একটি | একজন | 2 ) }i=1,..,|A|A={(a11,a21),,(a1|A|,a2|A|)}

w1b1j+w2b2j<w3 প্রত্যেকের জন্য , যেখানে বি = { ( 1 1 , 1 2 ) , ... , ( | বি | 1 , | বি | 2 ) }j=1,..,|B|B={(b11,b21),,(b1|B|,b2|B|)}

যদি এই সীমাবদ্ধতাগুলি সামঞ্জস্যপূর্ণ হয় তবে একটি লাইন বিদ্যমান।


5

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

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