مالتیپلکسر دستگاهی است که یکی از چند سیگنال دیجیتال یا آنالوگ ورودیهایش را انتخاب کرده و سپس آن ورودی انتخابشده را به یک خط خروجی هدایت میکند. تسهیمکنندهای با n به توان 2 ورودی، nخط انتخاب دارد که این خطوط انتخاب مشخص میکنند که کدام خط ورودی باید به خط خروجی هدایت شود.
از تسهیمکنندهها برای افزایش مقدار اطلاعاتی که در یک مدتزمان مشخص با یک پهنای باند مشخص بر روی شبکه ارسال میشود مورد استفاده قرار میگیرد. یک تسهیمکننده الکترونیکی به چند سیگنال امکان میدهد تا از یک دستگاه یا منبع بهصورت اشتراکی استفاده کنند. برای مثال میتوان یک تبدیلکننده آنالوگ به دیجیتال یا یک خط ارتباطی را در بین خطوط ورودی به اشتراک گذاشت.
یک دیمالتیپلکسر دستگاهی است که یک خط ورودی و چندین خط خروجی دارد که هر بار خط ورودیاش را به یکی از چند خط خروجی هدایت میکند. یک مالتیپلکسر را میتوان مانند یک سوئیچ چند ورودی یک خروجی فرض کرد و یک دیمالتیپلکسر را بهمانند یک سوئیچ یک ورودی با چند خروجی.
مالتی پلکسر چگونه کار میکند؟
نوعی مالتی پلکسر که به طور رایج MUX نامیده میشود، به انتخاب کردن یک خروجی از تعداد زیادی ورودی در دسترس برمیگردد. پروفسر شانکر بالاچندرن مالتی پلکسینگ را به عنوان یک روشی که تعداد زیادی واحد اطلاعات را از طریق تعداد کمی کانال یا خطوط منتقل میکند و یک مالتی پلکسر دیجیتال یک مدار منطق ترکیبی است که اطلاعات باینری را از یکی، تعداد زیاد خطوط ورودی انتخاب میکند و آن را به یک خط سیگنال خروجی هدایت میکند.
اصول مالتی پلکسرها
بهترین راه برای درک مالتی پلکسر با نگاه کردن به یک تک قطب چندگانه است. در این سوئیچ چندین ورودیD0، D1، D2 و D3 وجود دارد ولی فقط یک پین خروجی دارد. از دکمه کنترل برای انتخاب یکی از چهار داده موجود استفاده میشود و این دادهها در سمت خروجی منعکس میشوند. به این ترتیب کاربر میتواند سیگنال مورد نیاز را در بین بسیاری از سیگنالهای موجود انتخاب کند.
این یک نمونه ساده از یک مالتی پلکسر مکانیکی است. اما در مدار الکترونیکی که شامل سوئیچینگ با سرعت بالا و انتقال داده است، باید بتوانیم ورودی مورد نیاز را خیلی سریع با استفاده از مدارهای دیجیتال انتخاب کنیم. سیگنالهای کنترلS1 و S0 دقیقاً همین کار را براساس سیگنالی که به آنها داده میشود یک ورودی از موردهای زیادی که وجود دارد را انتخاب می کنند. بنابراین سه اصطلاح اساسی و پایهای در هر مالتی پلکسر عبارتند از:
· پین های ورودی
· پین خروجی
· سیگنال کنترل
پینهای ورودی: پینهای سیگنال موجود هستند که باید یکی از آنها انتخاب شود. این سیگنالها میتوانند یک سیگنال دیجیتال یا یک سیگنال آنالوگ باشند.
پین خروجی: یک مالتی پلکسرفقط یک پین خروجی دارد. سیگنال پین ورودی انتخاب شده توسط پین خروجی ارائه میشود.
پین کنترل یا انتخاب: از پینهای کنترل برای انتخاب سیگنال پین ورودی استفاده میشود. تعداد پینهای کنترل در مالتی پلکسر به تعداد پینهای ورودی بستگی دارد. یک مالتی پلکسر4 ورودی دارای 2 پین سیگنال است.
در طراحی دیجیتال برای کاهش تعداد گیتهای منطقی به کار رفته و یا انتقال چند سیگنال دیجیتالی مختلف از تنها یک باس داده، از مالتیپلکسرها استفاده میشود. به عنوان مثال با یک مالتیپلکسر 8 کاناله میتوان 8 سیگنال ورودی مختلف را به تنها یک خروجی سوئیچ کرد.
به طور کلی، انتخاب هر خط ورودی در مالتیپلکسر از طریق چند ورودی جداگانه که به آنها «خطوط کنترلی» گفته میشود صورت میگیرد. بر اساس وضعیت باینری ورودیهای کنترلی که ممکن است HIGH یا LOW باشند، دادهی ورودی متناسب مستقیماً به خروجی وصل میشود. به طور معمول هر مالتیپلکسر n2 خط ورودی داده و n خط ورودی کنترلی دارد.
به این نکته توجه داشته باشید که مالتیپلکسرها کاملاً با انکودرها (Encoder) متفاوتند. در انکودرها یک دادهی ورودی n بیتی به چند خروجی سوئیچ میشود. مقدار قرار گرفته در خطوط خروجی بیانگر معادل BCD پایهی ورودی فعال است.
همانگونه که در شکل زیر نشان داده شده، میتوان با استفاده از چند گیت NAND ساده یک مالتیپلکسر با دو خط ورودی و یک خط خروجی (مالتیپلکسر 2 به 1) ساخت.
متدولوژی حل
الگوریتمهای ژنتیک از اصول انتخاب طبیعی داروین برای یافتن فرمول بهینه جهت پیش بینی یا تطبیق الگو استفاده میکنند. قانون انتخاب طبیعی بدین صورت است که تنها گونههایی از یک جمعیت ادامه نسل میدهند که بهترین خصوصیات را داشته باشند و آنهایی که این خصوصیات را نداشته باشند به تدریج و در طی زمان از بین میروند. موتور الگوریتم ژنتیک یک جمعیت اولیه تصادفی از پاسخ های ممکن برای مسئله ایجاد میکند که هریک از این پاسخها در قالب یک کروموزوم دارای تعدادی ژن ( هر ژن نماینده ی یک مجهول مسئله میباشد) بوده و به صورت مناسبی کدگذاری شدهاند. در مرحله بعدی هر کروموزوم در برابر مجموعهای از معیارها مورد آزمایش قرار میگیرد. تابع برازش با توجه به میزان موفقیت هر کروموزوم در حل مسئله ارزش آنها را معین میکند. سپس بر اساس این ارزشها کروموزومها به ترتیب صعودی به نزولی مرتب می شوند تا x% از آنها حفظ شده و بقیه حذف شوند. برای جایگزینی این کروموزومهای حذف شده، کروموزومهای باقیمانده به نحوی دو به دو انتخاب شده و تولید فرزند میکنند. یک نحوهی این انتخاب اینست که مجموعه کوچکی از کروموزومها به صورت تصادفی انتخاب شده و سپس از بین این کروموزومها، دو کروموزومی که دارای ارزش بیشتری هستند بهعنوان والدین برای تولید فرزند انتخاب میشوند. شرایط خاتمه الگوریتمهای ژنتیک عبارتند از:
· بودجه اختصاص داده شده تمام شود(زمان محاسبه/پول)
· یک فرد(فرزند تولید شده) پیدا شود که مینیمم (کمترین)ملاک را برآورده کند
· بیشترین درجه برازش فرزندان حاصل شود یا دیگر نتایج بهتری حاصل نشود
· بازرسی دستی
· ترکیبهای بالا
روشهای نمایش
قبل از این که یک الگوریتم ژنتیک برای یک مسئله اجرا شود، یک روش برای کد کردن ژنومها به زبان کامپیوتر باید به کار رود. یکی از روشهای معمول کد کردن به صورت رشته های باینری است(رشته های ۰و۱). یک راه حل مشابه دیگر کدکردن راه حلها در آرایهای از اعداد صحیح یا اعشاری است،که دوباره هر جایگاه یک جنبه از ویژگیها را نشان میدهد. الگوریتمهای ژنتیکی که برای آموزش شبکههای عصبی استفاده میشوند، از این روش بهره میگیرند. سومین روش برای نمایش صفات در یک الگوریتم ژنتیک یک رشته از حروف است که هر حرف دوباره نمایش دهنده یک خصوصیت از راه حل است. در این مساله ما از کدگذاری عدد صحیح استفاده کردیم، به اینصورت که هر کروموزوم توالی گرههای تقاضا در مسیرها را نشان میدهد.
روش های انتخاب
روش های مختلفی برای الگوریتمهای ژنتیک وجود دارند که میتوان برای انتخاب کروموزومهای والد از آنها استفاده کرد. تعدادی از این روشها عبارتند از:
· انتخاب Elitist : مناسبترین عضو هر اجتماع انتخاب میشود.
· انتخاب Roulette : یک روش انتخاب است که در آن عنصری که عدد برازش(تناسب) بیشتری داشته باشدانتخاب میشود.
· انتخاب Scaling : به موازات افزایش متوسط عدد برازش جامعه،سنگینی انتخاب هم بیشتر می شود وجزئیتر. این روش وقتی کاربرد دارد که مجموعه دارای عناصری باشد که عدد برازش بزرگی دارند وفقط تفاوتهای کوچکی آنها را از هم تفکیک میکند.
· انتخاب Tournament : یک زیر مجموعه از کروموزومهای یک جامعه انتخاب میشوند و اعضای آن مجموعه با هم رقابت میکنند و سرانجام فقط دو کروموزوم از هر زیر گروه برای تولید انتخاب میشوند.
عملگر تقاطع:
در این عملگر که Crossover نام دارد، ۲ کروموزوم برای معاوضه ژنهایشان انتخاب میشوند. این فرآیند براساس فرآیند ترکیب کروموزومها در طول تولید مثل در موجودات زنده شبیه سازی شده است. اغلب روشهای معمول Crossover از نوع Single-point Crossover هستند، که نقطه تعویض در جایی تصادفی بین ژنهای کروموزومها است. بخش اول قبل از نقطه و بخش دوم سگمنت بعد از آن ادامه پیدا میکند،که هر قسمت برگرفته از یک والد است.
عملگر جهش:
این عملگر دقیقاً مثل جهش در موجودات زنده است که عبارت است از تغییر یک ژن به دیگری. در الگوریتم ژنتیک جهش تغییر کوچکی در یک ژن از کد کروموزوم ایجاد میکند.