نمودار حالت

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو
نمودار حالت یک در با قابلیت باز و بسته شدن

نمودار حالت[ویرایش]

نمودار حالت نوعی دیاگرام برای تشریح و توضیح رفتار یک سیستم به صورت مرحله ای در علوم کامپیوتری و دیجیتال می باشد. نمودار حالت ، از تعداد محدودی "حالت" تشکیل شده است که این حالت ها بیانگر یکی از حالت های مختلف سیستم می باشد. برخی اوقات نیز برای یک نگاه کلی به مدار سیستم از این نمودار هااستفاده می شود. اشکال مختلفی از نمودار حالت وجود داشته که بعضا دارای معانی متفاوتی می باشند. معمولا هنگام طراحی یک ماشین یا مدار ، برای راحتی و قابل فهم بودن کارکرد آن ابتدا نمودار حالت آن رسم شده و سپس از روی آن جدول حالت و شماتیک آن به دست می آورند. این عمل به دلیل نزدیگی فهم بصری نمودار با کارکردی کلی مدار می باشد.

کلیات[ویرایش]

نمودار حالت یک دید کلی و خلاصه از رفتار یک سیستم را به ما می دهد. این نمودار مجموعه ای از رخداد ها را که در حالات مختلف و ممکن یک سیستم رخ می دهد را تجزیه و تحلیل می کند. بدینوسیله هر نمودار معمولا اشیایی از یک کلاس را ارائه می کند و با حالات مختلف این کلاس، سیستم را مورد ارزیابیو پیگیری قرار می دهد. این موضوع ابتدا به وسیله دانشمندی به نام "شانون" و " ویوور" در کتاب " تئوری ریاضیات در ارتباطات " در سال 1949 مطرح شد. منبع دیگر ، کتاب "تیلور بوث" با نام" ماشین های ترتیبی و تئوری خودکارسازی " در سال 1967 می باشد. در طرف دیگر استفاده از "جدول درستی انتقال " نیز شیوه ای دیگر برای بیان این مفهوم می باشد.

در نمودار حالت ، کلیه حالات یک ماشین در نظر گرفته شده و هر حالت با یم دایره نشان داده می شود. سپس شرایط آن حالت مورد بررسی قرار گرفته و بررسی می شود که براثر ورودی های مختلف ماشین به کدام حالت جدید می رود و یا در حالت فعلی باقی می ماند . این انتقال حالت ها را به وسیله پیکانهایی از حالت فعلی به سمت حالت جدید نشان می دهند و دارای این مفهمو می باشد که ماشین با دریافت یک ورودی خاص ، از این حالت به حالت جدید می رود. همچنین معمولا بروی این پیکانها مقدار ورودی متناظر برای این انتقال و مقدار خروجی از حالت فعلی را برای آن نشامن داده و آنها را با یک ممیز از هم جدا می کنند. این نمودار حالت در واقع شکل بصری جدول حالت یک ماشین یا مدار منطقی می باشد و به وسیله آن دید بهتری را می توان نسبت به مدار به دست آورد.

گراف جهت دار[ویرایش]

یک فرم کلاسیک از نمودار حالت برای سیستم هایی با حالات محدود ، " گراف جهت دار" با المان ها (Q,Σ,Z,δ,q0,F) می باشد :

رأس های Q : حالت های محدود یک سیستم ، با دایره ها و برچسب هایی بر روی آنها که یکتا هستند، نشان داده می شود. گاهی نیز نام حالت را در دایره می نویسند. مؤلفه ورودی Σ : مجموعه متناهی از نمادهای ورودی و یا اختصاص داده شده به ورودی ها. مؤلفه خروجی Z : مجموعه متناهی از نمادهای خروجی و یا اختصاص داده شده به خروجی ها.

تابع خروجی ω نقشه ای برداری از زوج های مرتب ورودی ها و حالات به خروجی سیستم را ارائه می کند و معادل ریاضی آن به صورت ω : Σ × Q→ Z نشان داده می شود.

لبه δ : که نشاندهنده تغییر از یک حالت به حالت دیگر بر اثر یک ورودی می باشد. (که با نماد خود آن بر روی لبه دایره ها نشان داده می شود ) . یک لبه معمولاً به وسیکه یک بردار از یک دایره (یک حالت) به دایره دیگر ( حالت بعدی) متصل می شود. این لبه تغییر حالت را براساس یک ورودی خاص بیان می کند. این را به صورت δ : Q × Σ → Q نشان داده که در آن δ تابع انتقال نامیده می شود . برهمین اساس δ(q,a)= p معرف خروجی P برای حالت q با ورودی a میباشد.

حالت اولیه q0 : یکی از حالات سیستم می باشد که در راه اندازی اولیه سیستم در آن وضعیت قرار گرفته و در صورت نداشتن برنامه خاص به صورت تصافی می باشد. حالت پذیرش F : معمولا به صورت دو دایره داخل هم نشان دهده شده و در واقع حالت پذیرش اولین و شروع کننده سیکل سیستم است. البته برخی اوقات برای مرحله نهایی و یا مرحله ای که وضعیت ماشین از آن خارج نمی شود نیز استفاده می گردد.

مثال[ویرایش]

در شکل زیر S1 و S2 حالات مدار و S1 حالت پذیرش ،می باشد. هر یک از بردار های لبه با یک ورودی نشانه گذاری شده است. مثلاً در حالت S2 در صورتی که ورودی 1 به مدار اعمال شود ، سیستم در حالت خود می ماند.

:DFAexample.svg

مثال : ماشین Mealy[ویرایش]

S1 و S2 و S2 حالات سیستم می باشند. هر بردار لبه به صورت "j / k" نشان داده شده است که در آن j ورودی مدار و k خروجی را نشان می دهد.

State diagram of a simple Mealy machine

مدل ماشین میلی در واقع بر اساس این فرض استوار ایت که یک مدار ترتیبی از دو جزء مداری به صورت زیر ساخته شده است : یک قسمت حافظه و یک قسمت مدارترکیبی. خروجی مدار وابسته به شرایط فعلی و ورودی های فعلی بوده و حافظه نیز تابع شرایط ورودی است. درست مانند یک فیدبک ، مدار به حالت فعلی و و.رودی آن وابسته است. این وابستگی باعث می گردد تا در لحاظت بسیار کوچکی نتوان خروجی درستی از مدار گرفت ( زمانی که هنوز فیدبک به خروجی نرسیده و خروجی پایدار نشده است) البته این زمان بسیار کوته می باشد. به این گونه مدار ها اصطلاحا مدار های میلی گویند. (http://fa.wikipedia.org/wiki/%D9%85%D8%A7%D8%B4%DB%8C%D9%86_%D9%85%DB%8C%D9%84%DB%8C )

نموار حالت در مقابل فلوچارت[ویرایش]

افراد تازه کار در نمودار حالت، معمولاآن را با فلوچارت اشتباه می گیرند. شکل زیر تفاوت نمودار حالت را با فلوچارت نشان می دهد. در نمودار حالت ، عبور از یک حالت به حالت دیگر به واسطه یک ورودی به صراحت بیان می شود در حالتی که در فلوچارت با انجام مراحل هر وضعیت به مرحله بعد رفته و فلوچارت را می پیماییم.

State diagram (a) and flowchart (b)

در فلوچارت مراحل به واسطه یک عمکرد خاص ( مثلا اجرای یک برنامه) انجام شده و مرحله بعد آغاز می شودو در واقع آنها حالت یک سیستم را بیان نمی کنند بلکه وظایف یک سیستم را مشخص می کند. اغلب از فلوچارت برای اجرای برنامه های پشت سرهم استفاده شده و برنامه به صورت مرحله به مرحله اجرا می شودو این دقیقا همان فلوچارت است. به صورت دقیق تر هنگامی یک برنامه کار می کند، کد آن به صورت خط به خط اجرا شده و فلوچارت را پیمایش می کند. در هر کد مشخص شده است که چه کاری را انجام دهد و بنابراین خود برنامه بین دو وضعیت مختلف تصمیم گیری می کند. در سوی دیگر ، یک نمودار حالت، براساس شرایط فعلی و بسته به ورودی های سیستم رفتار می کند و خود آن از قبل برنامه ریزی شده نیست هرچند که تمام حالت های ورودی در آن تعریف شده باشد.


جستارهای وابسته[ویرایش]

رجوع به[ویرایش]

منابع[ویرایش]

پیوند به بیرون[ویرایش]

جستجو در ویکی‌انبار در ویکی‌انبار پرونده‌هایی دربارهٔ نمودار حالت موجود است.