বুলিয়ান এক্সপ্রেশন উপলব্ধি করতে প্রয়োজনীয় ন্যূনতম / এনওআর গেটের ন্যূনতম সংখ্যা নির্ধারণ করা


9

ন্যানড বা এনওআর গেটের ন্যূনতম সংখ্যা নির্ধারণের জন্য কি কোনও অ্যালগরিদম রয়েছে?

  1. ইনপুট দেওয়া নম্বর
  2. পরিপূরক ইনপুটটির উপলব্ধতা / অনুপলব্ধতা

বুলিয়ান এক্সপ্রেশন উপলব্ধি করার জন্য প্রয়োজনীয়? আমরা কর্নো মানচিত্রের মাধ্যমে সংক্ষিপ্ত আকারের মাধ্যমে একটি AND-OR ফর্ম পেতে পারি যা সর্বনিম্ন (যতদূর আমি জানি, কুইন-ম্যাকক্লুসকি অ্যালগোরিদম এগুলি নির্বিচারে গ্রহণ করে)। NAND বা NOR বাস্তবায়নের জন্যও কি একই জাতীয় কৌশল উপস্থিত রয়েছে? কমপক্ষে, এই জাতীয় কৌশলটি প্রকৃত চিত্রটি না পেয়েও প্রয়োজনীয় ন্যূনতম / এনওআর গেটগুলির প্রয়োজনীয় ন্যূনতম সংখ্যা নির্ধারণ করতে হবে?

মূল বিষয়গুলিতে দে মরগানের আইন প্রয়োগ করা নির্বিচারবাদী বলে মনে হয় না,

A ⊕ B = A'B + AB' = ((A'B)'(AB')')' [5 NAND gates]
A ⊕ B = (AB + A'B')' = ((ABAB+ABB') + (A'AB+A'B'))' = (AB(AB+B') + A'(AB+B'))' = ((AB+A')(AB+B'))' = (((AB)'A)'((AB)'B)')' [4 NAND gates by reusing (AB)']

এটি কি দ্বি-পর্যায় বা বহু-পর্যায় বাস্তবায়নের জন্য?
ফিজ

@ রেসপাউনফ্লুফ মাল্টি-লেভেল বাস্তবায়নের লক্ষ্য গেটের সংখ্যা হ্রাস করা, সুতরাং ন্যূনতম ন্যানড / এনওআর বাস্তবায়নটিও বহু-স্তরের হওয়া উচিত।
সামিক

কে-ম্যাপ আপনাকে বহু-স্তরের অপ্টিমাইজেশনের জন্য সর্বনিম্ন ফলাফল দেয় না।
ফিজ

উত্তর:


10

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

আনুমানিক পদ্ধতি রয়েছে যা আপনাকে সর্বনিম্ন সংখ্যা দেয় না তবে প্রয়োজনীয় সময়ের নিরিখে আরও ট্র্যাকটেবল হয় ... এগুলি নিজের মধ্যে একটি বিস্তৃত বিষয়, মূলত মাল্টি-লেভেল অপ্টিমাইজেশনের পুরো ক্ষেত্র। আপনি এখানে একটি [বিনামূল্যে] ওভারভিউ পড়তে পারেন ।

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

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

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

তিনি থেকে অনুসন্ধানমূলক অপটিমাইজার দ্বারা উত্পাদিত সাথে সঠিক ফলাফল (NANDs জন্য) তুলনা এবিসি

এবিসি 4,043 ফাংশনগুলির মধ্যে 340 যেখানে অনুকূল নেটওয়ার্কটি পরিচিত সেখানে একটি অনুকূল নেটওয়ার্ক উত্পাদন করতে সক্ষম হয়েছিল। যেসব ফাংশনগুলির জন্য এবিসি অনুকূল নেটওয়ার্ক তৈরি করে নি সেখানে এটি সর্বনিম্ন নেটওয়ার্কের তুলনায় গড়ে ৩%% বড় [[]

সেখানে (স্পষ্টতই) কয়েকটি [বৃহত্তর] নেটওয়ার্ক রয়েছে যার জন্য BESS শেষ হয়নি, তবে একটি উপরের গণ্ডিকে সন্ধান করার অনুমতি দিয়েছে (যেখানে অনুসন্ধান ত্যাগ করা হয়েছিল)। আপনি যে নীচের ২ য় গ্রাফ থেকে দেখতে পাচ্ছেন, সেইসব এবিসি'র জন্য [সীমাবদ্ধতার সীমাটি সম্পর্কে ভালভাবে] ভাল কাজ করেছেন।

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


আপনি যদি কৌতূহলী হন তবে আমি এক্সোর সমস্যা নিয়ে এবিসি চেষ্টা করেছি ... এবং এটি কমপক্ষে resyn2স্ক্রিপ্টের সাথে 5 টি ন্যান্ড গেট দেয় । সুতরাং এটি লজিক শুক্রবারের চেয়ে ভাল নয় (যা মিসআইআই ব্যবহার করে)।
ফিজ

এবিসির জন্য স্ক্রিপ্ট এবং ডাটাবেস রয়েছে যা মূলত প্রাক-গণিত অনুকূল বাস্তবায়নের জন্য প্রচুর পরিমাণে ফাংশন সন্ধান করে যেমন arxiv.org/pdf/1108.3675.pdf আমি সেটির চেষ্টা করিনি, তবে এটি কাজ করলেও হার্ড কাজ ছিল অন্য কোথাও করা হয়েছে।
ফিজ

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

1

সম্ভবত সেখানে আরও উন্নত কৌশল রয়েছে তবে অন্ধকার যুগে ফিরে এসে আমি কর্নহো ম্যাপসকে ঠিক ঠিক কাজ করতে দেখলাম


কর্নোখের মানচিত্র থেকে প্রাপ্ত AND-OR বাস্তবায়ন থেকে ন্যূনতম NAND / NOR বাস্তবায়নে কীভাবে এগিয়ে যাওয়া যায় সে সম্পর্কে আপনি কি এই "অন্ধকার যুগ" সম্পর্কে কিছুটা আলোকপাত করবেন?
সামিক 3'15

1

ন্যানডের পরে ন্যান্ডের সাথে ন্যাশনাল এবং তার পরে ওআর হয়।

NOR দ্বারা অনুসরণ করা NOR এর সাথে OR এর অনুসরণযোগ্য এবং এর পরে AND হয়।

ন্যানডের পরে এনএনডি যথাযথ হবে এবং এরপরে এবং এটি যা আসলে খুব বেশি বোঝায় না। ন্যানডের পরে এনওআর একইভাবে ওআর এর পরে ওআর এর সমতুল্য হবে।

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


সুতরাং বুদবুদ স্থানান্তর চেয়ে ভাল আর কোন উপায় আছে?
সামিক 3'15

1

সেরা অ্যালগরিদম হ'ল এস্প্রেসো অ্যালগরিদম। কিছুটা ডিগ্রি এ এফপিজিএ সংশ্লেষে প্রয়োগ করা হয়

লজিক ফ্রাইডে হ'ল আপনি ব্যবহার করতে পারেন এমন একটি সফটওয়্যার। দ্রষ্টব্য: এটি একটি এক্সওআরকে 5 ন্যাণ্ড গেট থেকে কমিয়ে দেয়।


তবে এস্প্রেসোও AND-OR বাস্তবায়ন দেয়, তাই না?
সামিক

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