দুটি পার্টিশনের মধ্যে দূরত্ব সম্পাদনা করুন


17

আমার এর দুটি পার্টিশন রয়েছে [1n]এবং আমি তাদের মধ্যে সম্পাদনার দূরত্ব খুঁজছি।

এর দ্বারা, আমি নোডের ন্যূনতম সংখ্যার একটি পৃথক গোষ্ঠীতে ন্যূনতম সংখ্যার সন্ধান করতে চাই যা পার্টিশন এ থেকে পার্টিশন বিতে যেতে প্রয়োজনীয় are

উদাহরণস্বরূপ থেকে দূরত্ব {0 1} {2 3} {4}মধ্যে {0} {1} {2 3 4}হতে হবে দুই

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

কোন সাহায্য প্রশংসা


5
The 0 1 2 3} এবং {0 1} {2 3 between এর মধ্যে দূরত্বটি আপনি কী বিবেচনা করবেন? এটা 2 হবে? দ্বিতীয়ত, আমি দেখতে পাচ্ছি না কেন "গ্রাফগুলি" ছবিতে আসে না। মনে হচ্ছে আপনার [এন] এর দুটি পার্টিশন রয়েছে এবং সেগুলির মধ্যে একটি দূরত্ব গণনা করতে চান।
সুরেশ ভেঙ্কট

হ্যাঁ, এটি দুটি হবে। প্রকৃতপক্ষে এগুলি গ্রাফের নোডে (যেমন একটি গ্রাফ বিভাজন) সেট করা পার্টিশন are এটি সমাধানের পক্ষে সম্ভবত গুরুত্বপূর্ণ নয়, তবে এই সমস্যাটিই আমি সমাধান করার চেষ্টা করছি, তাই আমি কেন এটি উল্লেখ করেছি।
zenna

3
যদি গ্রাফ অপ্রাসঙ্গিক হয় তবে দয়া করে আপনার প্রশ্ন থেকে "গ্রাফ" এবং "নোড" এর সমস্ত উল্লেখ মুছে ফেলুন; এটি সাহায্য করে না, এটি বিভ্রান্ত করে।
Jukka Suomela

পার্টিশন ল্যাটিসের দূরত্বের ভিত্তিতে সম্পাদনা দূরত্বকে সংজ্ঞায়িত করা যায় না?
তেগিরি নেনাশি 17'11

@ টেগিরি - পার্টিটিটনের জালিতে এটি প্রকৃতপক্ষে জিওডেসিক দূরত্ব। দুর্ভাগ্যক্রমে 10 টির চেয়ে অনেক বেশি কার্ডিনালিটির কোনও সেটের জন্য সেই জালিকে গণনা করা অক্ষম।
zenna

উত্তর:


21

এই সমস্যাটি অ্যাসাইনমেন্ট সমস্যায় রূপান্তরিত হতে পারে , এটি সর্বোচ্চ ওজনযুক্ত দ্বিপক্ষীয় মিলের সমস্যা হিসাবেও পরিচিত।

প্রথমে নোট করুন যে সম্পাদনা দূরত্বটি এমন উপাদানগুলির সংখ্যার সমতুল্য যা এক সেট থেকে অন্য সেটটিতে পরিবর্তন করতে হবে। এটি উপাদানের বিয়োগফলের মোট সংখ্যা সংখ্যার সমান যা পরিবর্তন করার প্রয়োজন হয় না। সুতরাং যে উপাদানগুলি পরিবর্তন হয় না তাদের ন্যূনতম সংখ্যার সন্ধান করা যে পরিবর্তন হয় না তার সর্বাধিক সংখ্যার সন্ধানের সমান।

যাক এবং বি = { বি 1 , বি 2 , , বি } এর পার্টিশন হতে [ 1 , 2 , , n ] । এছাড়াও, সাধারণত্ব ক্ষতি ছাড়া যাক (অনুমতি দেওয়া কারণ আমি টিA={A1,A2,...,Ak}B={B1,B2,...,Bl}[1,2,...,n]kl )। তারপরে বি এল + 1 , বি এল + 2 , ..., বি কে সবই খালি সেট হোক। তারপরে পরিবর্তিত হয় না এমন সর্বোচ্চ সংখ্যাটি হ'ল:edit(A,B)=edit(B,A)Bl+1Bl+2Bk

maxfi=1k|AiBf(i)|

যেখানে একটি বিন্যাস হয় [ 1 , 2 , , কে ]f[1,2,...,k]

এটি হ'ল অ্যাসাইনমেন্ট সমস্যা হ'ল যেখানে শীর্ষস্থানগুলি , ..., কে , বি 1 , ..., বি কে এবং প্রান্তগুলি ওজনযুক্ত জোড় ( A i , B j ) হয় | iবি | । এটি ( | ভি | 2 লগ | ভি | + | ভি | || ) সময়ে সমাধান করা যেতে পারে ।A1AkB1Bk(Ai,Bj)|AiBj|O(|V|2log|V|+|V||E|)


আপনি কি অ্যালগরিদমের নাম রাখতে পারবেন, যা এই সময়টাকে জটিলতা দেয়?
ডি -503

আমি বিশ্বাস করি যে @ বেজেজট ক্রমাগতভাবে সংক্ষিপ্ততম পথের অ্যালগরিদম (সাব্রুটিন ডিজজস্ট্রার ফাইবোনাকির স্তূপ ব্যবহার করে প্রয়োগ করা হয়েছে) উল্লেখ করছেন।
ওয়েই

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

আমার ওজনকে নেতিবাচক করা দরকার ছিল। অন্যথায় scipy.optimize.linear_sum_assignment আমাকে সব কিছুর জন্য 0 দেয়।
সিগফ্রিড

2

এই কাগজের পিডিএফ দেখুন

http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.0030160

সেখানে সম্পাদনার দূরত্বের সংজ্ঞাটি আপনার যা মনে হয় ঠিক তেমন হয়। 'রেফারেন্স' পার্টিশনটি আপনার একটি দুটি পার্টিশনের একটি (একটি স্বেচ্ছাসেবী) হবে, অন্যটি কেবল অন্যটি হবে। এছাড়াও প্রাসঙ্গিক উদ্ধৃতি রয়েছে।

সেরা, রব


ধন্যবাদ রব তবে, যতক্ষণ না আমি কিছু মিস করছি, এটি বিভক্ত-সংহতকরণের পদগুলির ক্ষেত্রে সংজ্ঞায়িত একটি সম্পাদনা দূরত্ব। এগুলি ভালভাবে অধ্যয়ন করা হয়েছে এবং কাগজটি উল্লেখ করেছে যে তথ্যের প্রকরণটি এটির একটি তথ্য তাত্ত্বিক পরিমাপ। আমি তবে একক উপাদান সরানো ট্রানজিশনে আগ্রহী।
zenna

1

ক্র্যাঙ্কি রবিবার সকালের ধারণা যা সঠিক হতে পারে বা নাও পারে:

ব্লগ, আরও সেট সহ পার্টিশন হতে দিন , অন্য পি 2 । প্রথমত, বরাদ্দ pairwise বিভিন্ন নাম এন 1 ( এস ) Σ আপনার সেট পি 1 । তারপরে, নীচের নিয়মাবলী অনুসারে পি 2 সেটগুলির জন্য সেরা নামকরণ এন 2 ( এস ) সন্ধান করুন :P1P2n1(S)ΣP1n2(S)P2

  • জন্য এস পি 2 সঙ্গে এস এস ' সর্বোচ্চ সব মাঝে এস 'পি 1 ; যদি একাধিক পছন্দ সম্ভব হয় তবে সর্বনিম্ন বিবাদ তৈরি করতে বেছে নিন।n2(S):=n1(S)SP2SSSP1
  • এখন যদি কিছু এস এস ' , এক ধার্য যে সঙ্গে শেয়ার কম উপাদান এস " , এন 1 ( এস " ) = 2 ( এস ) , সেট নামে মধ্যে পি 1 এটা দিয়ে, অর্থাত্ এটা যে সেট নামের জন্য প্রতিদ্বন্দ্বিতা আছে দ্বিতীয় সর্বাধিক উপাদান শেয়ার।n2(S)=n2(S)SSS,n1(S)=n2(S)P1
  • সাবেক নিয়ম প্রয়োগ করা যাবে না তাহলে উভয় সেটের জন্য চেক খাসি তারা অন্যান্য সেট নামের জন্য প্রতিদ্বন্দ্বিতা করতে পারেন তারা কম উপাদান ভাগ (তারা এখনও কিছু থেকে আরো উপাদান থাকতে পারে সেট যে তার নাম বরাদ্দ পেয়েছে চেয়ে !)। যদি তা হয় তবে এস , এস - এর একটিতে সেই নামটি অর্পণ করুন যা সংশ্লিষ্ট সেটের সাথে আরও উপাদান যুক্ত করে যার নামটির জন্য তারা প্রতিযোগিতা করতে পারে; অন্যটি পূর্বের বিরোধী নাম রাখে।SP1S,S
  • সমস্ত বিবাদ নিষ্পত্তি না হওয়া পর্যন্ত এই প্রক্রিয়াটি ইটারেট করুন। যেহেতু পি 2 এর চেয়ে কম সেট নেই, যথেষ্ট নাম রয়েছে areP1P2

এখন, আপনি আপনার উপাদানগুলির বিট স্ট্রিংগুলি পার্টিশন, যেমন এবং ডাব্লু 2 = n 2 ( 1 ) n 2 ( n ) ( সঙ্গে এন ( আমি ) = ( এস ) , আমি এস পি w1=n1(1)n1(n)w2=n2(1)n2(n)nj(i)=nj(S),iSPjdH(w1,w2)

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