আরএসএ থেকে স্যাট-এ দ্রুত হ্রাস


28

স্কট অ্যারনসনের ব্লগ পোস্ট আজ জটিলতার মধ্যে আকর্ষণীয় উন্মুক্ত সমস্যা / কার্যগুলির একটি তালিকা দিয়েছে। বিশেষ করে একজন আমার দৃষ্টি আকর্ষণ করেছেন:

যতটা সম্ভব ভেরিয়েবল এবং ক্লজ সহ 3 এসএটি ইনস্ট্যান্সের একটি পাবলিক লাইব্রেরি তৈরি করুন, যদি সমাধান করা হয় তবে এর উল্লেখযোগ্য পরিণতি হবে। (উদাহরণস্বরূপ, আরএসএ ফ্যাক্টরিং চ্যালেঞ্জগুলি এনকোডিংয়ের উদাহরণ)) এই গ্রন্থাগারের সেরা বর্তমান স্যাট-সলভারগুলির কার্যকারিতা অনুসন্ধান করুন।

এটি আমার প্রশ্নকে উদ্বুদ্ধ করেছিল: আরএসএ / ফ্যাক্টরিং সমস্যাগুলিকে স্যাট হ্রাস করার স্ট্যান্ডার্ড কৌশলটি কী এবং এটি কতটা দ্রুত? এরকম স্ট্যান্ডার্ড হ্রাস কি আছে?

কেবল স্পষ্ট করে বলতে গেলে, "দ্রুত" দ্বারা আমি বহুপদী সময় বলতে চাই না। আমি ভাবছি যে হ্রাসের জটিলতার উপর আমাদের আরও উপরের সীমা রয়েছে whether উদাহরণস্বরূপ, কোন কিউবিক হ্রাস জানা যায়?

উত্তর:


26

স্যাট থেকে ফ্যাক্টরিং (আরএসএ) এনকোড করার একটি পদ্ধতিকে হ'ল গুণক সার্কিট (প্রতিটি সার্কিটকে সিএনএফ হিসাবে এনকোড করা যায়) ব্যবহার করা।

ধরা যাক আমাদের বিট, সহ একটি পূর্ণসংখ্যা দেওয়া হয়েছে । আমরা দুটি বিট পূর্ণসংখ্যা এবং যার পণ্য ।C2nC=(c1,c2,,c2n)2nA=(a1,,an)A=(b1,,bn)C=AB

সর্বাধিক নিষ্পাপ এনকোডিং এর মতো কিছু হতে পারে: আমরা এটি জানি

c 2 n - 1 = ( a nb n - 1 ) x o r ( a n - 1b n ) C a r r y : d 2 n - 1 = ( a nb n - 1 ) ( একটি এন )

c2n=anbn
c2n1=(anbn1)xor(an1bn)
সি 2 এন - 2 =( একটি এন বি এন - 2 )এক্সআর( একটি এন - 1 বি এন - 1 )এক্সআর( একটি এন - 2 বি এন )এক্সআর d 2 n - 1 ...
সিএকটিRRY:2এন-1=(একটিএনএন-1)(একটিএন-1এন)
2এন-2=(একটিএনএন-2)এক্সR(একটিএন-1এন-1)এক্সR(একটিএন-2এন)এক্সR2এন-1

তারপরে সিসিটিন রূপান্তর ব্যবহার করে উপরের এনকোডিংটি সিএনএফ-এ অনুবাদ করা যেতে পারে।

এই পদ্ধতির তুলনামূলকভাবে একটি ছোট সিএনএফ উত্পাদন করে। তবে এই এনকোডিংটি "ইউনিট প্রচার" সমর্থন করে না এবং তাই, স্যাট সলভারগুলির কার্য সম্পাদন সত্যই খারাপ।

গুণনের জন্য অন্যান্য সার্কিট রয়েছে যা এই উদ্দেশ্যে ব্যবহার করা যেতে পারে তবে তারা একটি বৃহত সিএনএফ উত্পাদন করে।


10
কুক এবং মিশেল দ্বারা "সন্তুষ্টি সমস্যার শক্ত উদাহরণ খুঁজে পাওয়া: একটি সমীক্ষা" বিভাগের 6.1 বিভাগে, তারা এই সমস্যাটিকে একটি চ্যালেঞ্জ হিসাবে ব্যবহার করে।
আমির

আপনি কীভাবে জানেন যে A এবং B অবশ্যই n বিট দৈর্ঘ্য হওয়া উচিত, এটি n - 1 এবং n বিট হতে পারে না। নিশ্চিতভাবে এটি 2n বিট এবং 1 বিট হতে পারে।
ইলিয়া গাজমান

1
@ বাবিবু: আমরা যদি সাধারণ ফ্যাক্টেরাইজেশন সম্পর্কে কথা বলি তবে আপনি ঠিক বলেছেন। তবে আরএসএর ক্ষেত্রে আমরা জানি যে দুটি প্রাইমের প্রত্যেকটিরই বিট রয়েছে। এন
আমির

আমি আপনার উত্তরটি বুঝতে পেরেছি তবে কীভাবে এটি চালিয়ে যেতে হয় তা আমি জানি না। আপনি দয়া করে প্রদর্শন করতে পারেন ? 2এন-2
ইলিয়া গাজমান


18

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


1
সেই লিঙ্কটি খুব দুর্দান্ত!
হকের বেনিেট

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

11

ফ্যাক্টরিং থেকে স্যাট উদাহরণ তৈরির জন্য একটি কাগজ এখানে রয়েছে:

হ্যারি, এস। ও ওয়াটানাব, ও। [1997] " স্যাট-এর জন্য হার্ড ইনস্ট্যান্স জেনারেশন " অ্যালগরিদম এবং গণনা 1350: 22-31 ( পিডিএফ )

এন2


9

ToughSat হেনরি ইউয়েন এবং জোসেফ Bebel দ্বারা অন্য টুল @Martin দ্বারা সংযুক্ত, যা CNF সূত্র উত্পন্ন অনুরূপ যে ফ্যাক্টরিং এবং অন্যান্য কঠিন সমস্যার সঙ্কেতাক্ষরে লিখা দৃষ্টান্ত।


1
স্কট এ সম্পর্কেও ব্লগ করেছে: স্কটিটাআরনসন.com
আলেসান্দ্রো

0

দেখুন satfactor:


পূর্ণসংখ্যার ফ্যাক্টরাইজেশনকে একটি বুলিয়ান সন্তুষ্টি সমস্যার মধ্যে রূপান্তর করুন

শেন নেফ

সংক্ষিপ্ত বিবরণ

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

এই কোডটি কী করে

একটি পূর্ণসংখ্যার ফ্যাক্টরীকরণ সমস্যাটিকে বুলিয়ান সন্তুষ্টি সমস্যার মধ্যে রূপান্তর করে। যদি কোনও স্যাট সমাধানকারী দ্বারা সমস্যাটি সমাধান করা হয় তবে এটি পূর্ণসংখ্যার কারণগুলি বের করে।

বুলেট সন্তোষজনকতা solvers প্রতি বছর উন্নতি। প্রতি 2 বছর অন্তর, সলভারগুলির মধ্যে একটি আন্তর্জাতিক প্রতিযোগিতা হয় (দেখুন http://www.satcompression.org/ এবং http://www.satlive.org/ )। এই অত্যাধুনিক সমাধানকারীরা অস্তিত্বের প্রাচীনতম উন্মুক্ত গণিত সমস্যার মধ্যে থেকে কতটা ভাল করতে পারেন?

এই প্রকল্পের 2 টি প্রধান উদ্দেশ্য রয়েছে:
1) সমস্যাটি রূপান্তর করুন এবং আগ্রহের পূর্ণসংখ্যার কারণ দিন!
2) দ্রুত সমাধানযোগ্য বা একটি অবিশ্বাস্য সন্তুষ্টি সমস্যা তৈরি করুন, যার অসুবিধা সহজেই ক্রিয়েটার দ্বারা নিয়ন্ত্রিত হয়।
- অবিশ্বাস্য সন্তুষ্টিজনক সমস্যা তৈরি করতে, কেবল একটি প্রাথমিক সংখ্যা এনকোড করুন।
- আরও কঠিন তবে সমাধানযোগ্য সমস্যা তৈরি করতে, কম কারণগুলির সাথে আরও বড় সংমিশ্রণ সংখ্যা চয়ন করুন।

আগ্রহের সংখ্যা যে কোনও আকার হতে পারে!

কিছু মুক্ত-উত্স সন্তুষ্টি সমাধানকারী রয়েছে। এর কয়েকটিটির জন্য http://www.satlive.org/ দেখুন ।

বিল্ড

মেক-সিসিআরসি /

কিভাবে

এর বাইনারি ফর্মটিতে বেশ কয়েকটি আগ্রহের ইনপুট করুন:

বিন / iencode 10101> composite.21
// আপনার প্রিয় সমাধানকারী সঙ্গে সমাধান এবং solution.txt ফলাফল করা
বিন / নির্যাস-বসে composite.21 solution.txt

আউটপুট হবে:
00011
00111

দশমিক পূর্ণসংখ্যা 3 এবং 7, 21 এর কারণগুলির জন্য বাইনারি উপস্থাপনা।

যদি কোনও ইনপুট পূর্ণসংখ্যার মধ্যে 2 টিরও বেশি কারণ থাকে এবং স্যাট সমস্যাটি সমাধান হয়ে যায় তবে আউটপুট কেবল দুটি কারণের হয়ে থাকে। এগুলি প্রাথমিক সংখ্যা নাও হতে পারে (আপনি ম্যাক্সিমা, ম্যাপেল বা ম্যাথমেটিকাতে সহজেই এটি পরীক্ষা করতে পারেন)।

সমস্ত SAT solvers আউটপুট একই ফর্ম্যাট ফলাফল। আপনার কিছুটা ফলাফলের জন্য ডাক্তার প্রয়োজন হতে পারে। extract-sat এর জন্য একটি সমাধান ফাইলের প্রয়োজন যা পূর্ণসংখ্যার (যে কোনও লাইনের সংখ্যায়) একটি তালিকা থাকে। উদাহরণ স্বরূপ,

1 -2 3 4 -5 ...


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