সেট অন্তর্ভুক্তি পরীক্ষা করার দ্রুততম উপায় কী?


24

প্রদত্ত n সাব-সেট নির্বাচন S1,,Sn এর {1,,d}

Si,SjSiSj

এই সমস্যার তুচ্ছ সমাধানের জন্য সমস্ত জোড়া সেট এবং সময় মধ্যে একটি জুটির জন্য চেক অন্তর্ভুক্ত হয় , সুতরাং সামগ্রিক রানটাইমটি হ'ল । এই সমস্যাটি কি দ্রুত সমাধান করা যায়? সাহিত্যে কি এর কোনও নাম আছে?O(d)O(n2d)

উত্তর:


27

স্ট্রং এক্সপোনেনশিয়াল টাইম হাইপোথেসিস মিথ্যা না হলে আপনি কোনও ধ্রুবক জন্য সময়ে এটি সমাধান করতে পারবেন না ।O(n2ϵ)ϵ>0

এটি হ'ল, আমাদের যদি এই জাতীয় একটি অ্যালগরিদম থাকে তবে আমরা পরিবর্তনশীল সিএনএফ সন্তুষ্টি সমাধান করতে পারি some কিছু সময়ের জন্য । কারণ যে আমরা দুটি সমান অংশে ভেরিয়েবল ভাগ পারে P_1 এবং P_2 এর এন / 2 ভেরিয়েবল প্রতিটি। প্রতিটি অংশের জন্য আমরা নিম্নলিখিত উপায়ে ধারাগুলির সাবসেটের যথাক্রমে একটি পরিবার F_1 এবং F_2 তৈরি করি। প্রতিটি অ্যাসাইনমেন্টের জন্য আমরা অ্যাসাইনমেন্ট দ্বারা সন্তুষ্ট নয় এমন ক্লজগুলি সমন্বিত একটি উপসেট যুক্ত করি। এই নির্মাণটি বহু (এন) 2 ^ {n / 2} সময়ে চলে।nO((2ϵ)n)ϵ>0P1P2n/2F1F2poly(n)2n/2

নির্মাণ শেষ করার জন্য, আমরা নোট মূল CNF উদাহরণস্বরূপ একটি সমাধান আছে যা iff সেখানে একটি উপসেট F1 যা কিছু উপসেট থেকে টুকরো করা হয় F2

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

এটি গ্রাউন্ড সেটটিতে উপসেটগুলিতে একটি সেট অন্তর্ভুক্তি প্রশ্ন । যুক্তিটি মূলত রায়ান উইলিয়ামসের কিছু প্রাথমিক কাগজে ফিরে যায় (কোনটি মনে করতে পারে না)। ডি = পি এল ওয়াই ( এন )2n/2+1d=poly(n)


দ্রুত উত্তরের জন্য আপনাকে অনেক ধন্যবাদ। আমাদের কাছে এমনকি , যদি আমরা স্পারশিফিকেশন লেমাকে প্রথমে ব্যবহার করি, তাই না? d=O(n)
কার্ল

9

আপনি যদি সেট পরিবারগুলিতে আগ্রহী হন , তবে যুভালের উত্তরে বর্ণিত মতটির সাথে একইভাবে অন্য একটি সমাধান হ'ল জেটা রূপান্তর গণনা করাn=ω(2d/2)

fζ(T)=STf(S),

যেখানে ইনপুট পরিবারের সূচকটি ফাংশন । এটি হ'ল, যদি এবং অন্যথায় হয়। স্পষ্টত সেখানে টি সেট রয়েছে যেমন যে যদি এবং কেবল যদি জন্য কিছু ।এফ = { S 1 , S 2 , ... , এস এন } ( এস ) = 1 এস এফ( এস ) = 0 S আমিএস এস আমিএস ζ ( এস ) > 1 এস এফf:2[d]RF={S1,S2,,Sn}f(S)=1SFf(S)=0SiSjSiSjfζ(S)>1SF

ইয়েটসের অ্যালগরিদম ব্যবহার করে জেটা ট্রান্সফর্মটি সময় হিসাবে গণনা করা যেতে পারে , উদাহরণস্বরূপ নুথের টিএওসিপি, খণ্ড দেখুন। 2, .64.6.4। অ্যালগরিদম নিজেই একটি মোটামুটি সোজা ডাইনামিক প্রোগ্রামিং এবং এটি উপস্থিত থাকলে সেটেল সংস্থার উদাহরণ দিতে এটি পরিবর্তন করা সহজ।O(d2d)


এটি আমার উত্তর চেয়ে অনেক সহজ!
যুবাল ফিল্মাস

8

এই সমস্যাটি দ্রুত ম্যাট্রিক্সের গুণণের জন্য অ্যালগরিদম ব্যবহার করে সমাধান করা যেতে পারে এবং আমি এটি সন্দেহ করি যে এটি গণনাগতভাবে ম্যাট্রিক্সের গুণকের সমতুল্য (যদিও আমি এটি প্রমাণ করার কোনও উপায় জানি না, এবং আমি মনে করি না এটি বিদ্যমান প্রমাণ করার জন্য কৌশলগুলিও রয়েছে) )। N = d এবং d এবং n এর মধ্যে অন্যান্য সম্পর্কের জন্য অন্যান্য চলমান সময়গুলিতে এই সমাধানটির ও (চলমান সময়) (n ^ {2.373}) এর চলমান সময় থাকবে।

এখানে আপনি ম্যাট্রিক্স গুণনের সাহায্যে এটি কীভাবে সমাধান করেছেন: আপনি ডি ম্যাট্রিক্স এ দ্বারা এন এর সারিগুলিতে সেটগুলির বৈশিষ্ট্যযুক্ত ভেক্টর এবং এন ম্যাট্রিক্স বি দ্বারা বিজ্ঞাপনের কলামগুলিতে সেটগুলির পরিপূরকগুলির বৈশিষ্ট্যযুক্ত ভেক্টরগুলি লিখেছেন You তারপরে এটিকে বি দ্বারা গুণন করুন সেটের জোড়গুলি যেগুলি ছেদ করে সেগুলি হ'ল শূন্যের সমান প্রোডাক্ট এ * বি এর অবস্থানগুলি।

এই সমস্যার জন্য পরিচিত সেরা চলমান সময়ের জন্য, বিষয়টিতে হুয়াং এবং প্যানের কাগজটি দেখুন। যদি আমি সঠিকভাবে মনে রাখি, যখন ডি যথেষ্ট পরিমাণে বড় হয়ে যায়, চলমান সময়টি স্পষ্টত-অনুকূল ও (এনডি) হয়ে যাবে। এন = ডি এর জন্য আপনার চলমান সময় থাকবে (n ^ {2.373})। এন এবং ডি এর অন্যান্য সম্পর্কের জন্য, আপনি অন্যান্য মান পাবেন। যদি আয়তক্ষেত্রাকার ম্যাট্রিক্স গুণনের জন্য একটি অনুকূল অ্যালগরিদম উপস্থিত থাকে তবে আপনি আপনার সমস্যার জন্য চলমান সময় হে (এন ^ 2 + এনডি) সহ একটি অ্যালগরিদম পাবেন। আমি সন্দেহ করি আপনার সমস্যা সমাধানের জন্য এর চেয়ে ভাল আর কোনও উপায় নেই তবে আমি নিশ্চিত থেকে অনেক দূরে।

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


6

যদি তবে আমরা জানি যে সেটটি স্পারারের লিমা দ্বারা অ্যান্টিচেইন নয়, এবং তাই সমস্যার সিদ্ধান্ত সংস্করণ তুচ্ছ হয়ে ওঠে। তবে সেই মানটির নিকটে যেখানে বিবেচনা করা আকর্ষণীয় হতে পারে । এনn>(dd/2)2dπd/2n

যে চরিত্রগত ভেক্টর দেওয়া Erdős-কো-Rado উপপাদ্য শো উপর Friedgut এর কাজ এর সাব-সেট নির্বাচন একটি পরিবার এর এক সময় খুঁজে পেতে পারেন কিনা একটি ছেদ পরিবার (প্রতিটি দুটি উপাদান হল ছেদ)। আরও সাধারণভাবে, তার পদ্ধতিটি গণনা করতে দেয় যেখানে কিছু (নির্দিষ্ট) জ্ঞাত ফাংশন যা অ- শূন্য কেবলমাত্র যদি হয়। কেবলমাত্র এর হিস্টোগ্রামের উপর নির্ভর করে , যেখানে for এর সূচক ।[ মি ] হে ( মি 2 মি ) Σ = Σ এক্স , Y এস ( এক্স , Y ) , এস ( এক্স , Y ) 0 এক্স , Y এস ( এক্স , Y ) { ( এক্স আমি , Y i ) : i [ d ] } x if[m]O(m2m)ff

Σ=x,yfS(x,y),
S(x,y)0x,yS(x,y){(xi,yi):i[d]}xiix

(একদিকে যেমন, আমরা মন্তব্য করি যে যদি আমাদের দুটি পরিবার দেওয়া হয় এবং যদি are আগ্রহী হয় তবে তার পদ্ধতিটিও কাজ করে In উভয় ক্ষেত্রেই, আমাদের একটি সালমানী জন্য এর স্কিউড ফুরিয়ার-ওয়ালশ রূপান্তরগুলি গণনা করতে হবে , এবং তারপরে , যেখানে শুধুমাত্র Hamming ওজন উপর নির্ভর করে ।)Σ = Σ এক্স , Y এস ( এক্স , Y ) পি , পি ( 0 , 1 / 2 ) Σ = Σ এক্স টি ( X ) ( এক্স ) ( এক্স ) টি ( x ) xf,gΣ=xf,ygS(x,y)pf,gp(0,1/2)Σ=xT(x)f^(x)g^(x)T(x)x

এই সমস্ত হাতের সমস্যার সাথে কীভাবে সম্পর্কিত? পরিবারটিকে বিবেচনা করুন প্রতিটি প্রত্যেক থেকে টুকরো করা হয় । যেহেতু স্পষ্টভাবে দেওয়া হয়, আমরা এইসব যুগলের অবদান গনা করতে । আরও কি কোনও বিতর্কিত জুটি আছে? যদি যদি from থেকে তবে এবং তাই । সুতরাং একটি iff এস আই{ এক্স } ¯ এস আই{ } এস ( এক্স , ওয়াই ) Σ এস আই{ এক্স } ¯ এস

F={Si{x}:i[n]}{Si¯{y}:i[n]}.
Si{x}Si¯{y}S(x,y)ΣSi{x}Sj¯{y}SiSj¯=SiSjS1,,Sn
Σ=i=1nS(Si{x},Si¯{y}).

এই অ্যালগরিদম সময় সময়ে সঞ্চালিত হয় , বহুবর্ষের কারণগুলি উপেক্ষা করে । যখন পাসে হবে , এই তুলনায় উল্লেখযোগ্যভাবে ভালো । সাধারণভাবে, আমরা হিসাবে একটি উন্নতি পাই ।O~(n+2d)dn2dO~(n2)n=ω(2d/2)

প্রদত্ত যে আমরা জানি যে সন্তুষ্টকারী একটি জুটি বিদ্যমান, আমরা কীভাবে এটি সন্ধান করব? ধরুন আমরা সমস্ত সেট কে দুটি গ্রুপে এলোমেলোভাবে। প্রায় সম্ভাব্যতার সাথে , সেটগুলি এবং একই গ্রুপে পাবেন। আমরা যদি খুব ভাগ্যবান হয় তবে আমরা আমাদের অ্যালগরিদমটি এবং চালাতে , মধ্যে কোনটি অন্তর্ভুক্ত তা সন্ধান করতে পারি এবং তাই আমাদের বিবেচনার জন্য সেটগুলির সংখ্যা অর্ধেক করে দিতে হবেযদি তা না হয় তবে আমরা আবার চেষ্টা করতে পারি। এটি দেখায় যে সিদ্ধান্ত সংস্করণে প্রত্যাশিত ওরাকল কলগুলির সাথে আমরা প্রকৃতপক্ষে সন্তুষ্ট একটি জুড়ি পেতে ।SiSjS1,,SnG1,G21/2SiSjG1G2O(logn)SiSj

আমরা অ্যালগোরিদমকেও ড্যারানডমাইজ করতে পারি। সাধারণতার ক্ষতি ছাড়াই ধরুন, । প্রতিটি পদক্ষেপে, আমরা প্রতিটি বিট অনুসারে বিভাজন করি । এর মধ্যে একটি পার্টিশন সর্বদা এবং একই অংশে রাখে, যদি না তাদের বিপরীত মেরুটি থাকে; আমরা কেবল অপারেশনগুলি স্পষ্টভাবে এর জন্য পরীক্ষা করতে পারি । এটি সিদ্ধান্ত সংস্করণে ওরাকল কলগুলি ব্যবহার করে একটি ডিস্ট্রিমেন্টিক অ্যালগরিদম দেয় । কে এক্স ( এন ডি ) ( লগ 2 এন )n=2kkxyO(nd)O(log2n)


মজাদার. আমি এই সম্পর্কে আরও জানতে চাইলে আমার কী পড়া উচিত?
জান্নে এইচ। কোর্হোনেন

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