تابع بولی متقارن

از testwiki
نسخهٔ تاریخ ۲۰ نوامبر ۲۰۲۴، ساعت ۱۶:۰۰ توسط imported>Tinaziba
(تفاوت) → نسخهٔ قدیمی‌تر | نمایش نسخهٔ فعلی (تفاوت) | نسخهٔ جدیدتر ← (تفاوت)
پرش به ناوبری پرش به جستجو

در ریاضیات، یک تابع بولی متقارن، یک تابع بولی است که مقدار آن به ترتیب بیت های ورودی آن بستگی ندارد، یعنی فقط به تعداد یک ها (یا صفرها) در ورودی بستگی دارد.[۱]

به همین دلیل آنها را به عنوان توابع شمارش بولی نیز می شناسند.[۲]

تعداد 2(n+1) تابع بولی n متغیره متقارن وجود دارد. به‌جای استفاده از جدول درستی که به‌طور سنتی برای نمایش توابع بولی به کار می‌رود، می‌توان از یک نمایش فشرده‌تر برای یک تابع بولی متقارن n متغیره استفاده کرد: بردار (n+1) تایی که در آن مقدار عنصر i ام (i=0,...,n) برابر با مقدار تابع برای بردار ورودی با i عدد "۱" است. از نظر ریاضی، توابع بولی متقارن به‌طور یک‌به‌یک با توابعی که n+1 عنصر را به دو عنصرf:{0,1,...,n}{0,1} نگاشت می‌کنند، متناظر هستند.

توابع بولی متقارن برای دسته‌بندی مسائل رضایت‌پذیری بولی استفاده می‌شوند.

موارد خاص

تعدادی از موارد خاص قابل شناسایی هستند:

  • تابع اکثریت : مقدار این تابع برای بردارهای ورودی با بیش از n/2 عدد "۱"، برابر با ۱ است.
  • توابع آستانه : مقدار این تابع برای بردارهای ورودی با k یا بیشتر عدد "۱" (برای یک مقدار ثابت k)، برابر با ۱ است.
  • توابع همه-مساوی و نه-همه-مساوی : مقدار این توابع برابر با ۱ است زمانی که تمام مقادیر ورودی یکسان باشند(نباشند).
  • توابع شمارش دقیق : مقدار این توابع برای بردارهای ورودی با دقیقاً k عدد "۱" (برای یک مقدار ثابت k)، برابر با ۱ است.
    • تابع تک‌فعال یا تابع ۱ در n: مقدار این تابع برابر با ۱ است اگر بردار ورودی دقیقاً یک عدد "۱" داشته باشد.
    • تابع تک‌خاموش : مقدار این تابع برابر با ۱ است اگر بردار ورودی دقیقاً یک عدد "۰" داشته باشد.
  • توابع هم‌نهشتی : مقدار این توابع برابر با ۱ است اگر تعداد اعداد "۱" در بردار ورودی با k مود m (برای k, m ثابت) برابر باشد.
  • تابع توازن : مقدار این تابع برابر با ۱ است اگر تعداد اعداد "۱" در بردار ورودی فرد باشد.

نسخه‌های n متغیره AND، OR، XOR، NAND، NOR و XNOR نیز توابع بولی متقارن هستند.

ویژگی‌ها

در ادامه، fk​ نشان‌دهنده مقدار تابع f:{0,1}n{0,1} است، هنگامی که به بردار ورودی با وزن k اعمال شود.

وزن

وزن تابع را می‌توان از بردار مقدار آن محاسبه کرد:​

|f|=k=0n(nk)fk

فرم نرمال جبری

فرم نرمال جبری یا شامل همه مونو‌میال‌های مربوط به مرتبه خاص m است یا هیچ‌کدام از آن‌ها را شامل نمی‌شود. تبدیل موبیوس f^ این تابع نیز یک تابع متقارن است. بنابراین، این فرم می‌تواند توسط یک بردار ساده (n+1) بیتی، یعنی بردار ANF f^m توصیف شود. بردارهای ANF و مقدار با رابطه موبیوس به هم مرتبط هستند:

f^m=k2m2fk

که در آن k2m2​ شامل تمامی وزن‌های k است که نمایش در مبنای ۲ آن‌ها توسط نمایش در مبنای ۲ از m پوشش داده شده است (بر اساس قضیه لوکاس).[۳]

به‌طور مؤثر، یک تابع بولی متقارن n متغیره متناظر با یک تابع بولی معمولی log(n) متغیره است که بر روی نمایش در مبنای ۲ وزن ورودی عمل می‌کند.

برای مثال، برای توابع سه‌متغیره:​

f^0=f0

f^1=f0f1

f^2=f0f2

f^1=f0f1f2f3

تابع اکثریت سه‌متغیره با بردار مقدار (0,0,1,1)، بردار ANF (0,0,1,0) را دارد، یعنی:

Maj(x,y,z)=xyxzyz

چندجمله‌ای مکعب واحد

ضرایب چندجمله‌ای حقیقی که با تابع در {0,1}n مطابقت دارد، به صورت زیر داده می‌شود:

fm*=k=0m(1)|k|+|m|(mk)fk

برای مثال، چندجمله‌ای تابع اکثریت سه‌متغیره دارای ضرایب (0,0,1,2) است:

Maj(x,y,z)=(xy+xz+yz)2(xyz)

مثال ها

16 تابع بولی متقارن از سه متغیر
مقادیر تابع مقادیر بردار وزن نام توضیح غیررسمی بردار ANF
0 1 2 3
غ غ غ غ (0,0,0,0) 0 ثابت نادرست "هرگز" (0,0,0,0)
غ غ غ ص (0,0,0,1) 1 AND سه‌طرفه، آستانه(3)، شمارش(3) "هر سه" (0,0,0,1)
غ غ ص غ (0,0,1,0) 3 شمارش(2)، یک-سرد "دقیقا دو" (0,0,1,1)
غ غ ص ص (0,0,1,1) 4 اکثریت، آستانه(2) "اکثرأ" و "حداقل دو" (0,0,1,0)
غ غ ص غ (0,1,0,0) 3 شمارش(1)، یک-گرم "دقیقاً یک" (0,1,0,1)
غ ص غ ص (0,1,0,1) 4 XOR سه‌طرفه، فرد "یکی یا سه" (0,1,0,0)
غ ص ص غ (0,1,1,0) 6 نابرابر "یکی یا دو" (0,1,1,0)
ص غ غ غ (0,1,1,1) 7 OR سه‌طرفه، آستانه(1) "هرکدام"، "حداقل یکی" (0,1,1,1)
ص غ غ غ (1,0,0,0) 1 NOR سه‌طرفه، شمارش(0) "هیچکدام" (1,1,1,1)
ص غ غ ص (1,0,0,1) 2 کاملاً برابر "همه یا هیچ" (1,1,1,0)
ص غ ص غ (1,0,1,0) 4 XNOR سه‌طرفه، زوج "هیچ یا دو" (1,1,0,0)
ص غ ص ص (1,0,1,1) 5 "نه دقیقا یک" (1,1,0,1)
ص ص غ غ (1,1,0,0) 4 قضیه شاخ "حداکثر یک" (1,0,1,0)
ص غ ص ص (1,1,0,1) 5 "نه دقیقا دو" (1,0,1,1)
ص ص ص غ (1,1,1,0) 7 NAND سه‌طرفه "حداکثر رو" (1,0,0,1)
ص ص ص ص (1,1,1,1) 8 ثابت درست "همیشه" (1,0,0,0)

جستارهای وابسته

مراجع

  1. Ingo Wegener, "The Complexity of Symmetric Boolean Functions", in: Computation Theory and Logic, Lecture Notes in Computer Science, vol. 270, 1987, pp. 433–442
  2. الگو:یادکرد وب
  3. الگو:یادکرد وب