دانشکده

دانلود فایل ها و تحقیقات دانشگاهی ,جزوات آموزشی

دانشکده

دانلود فایل ها و تحقیقات دانشگاهی ,جزوات آموزشی

مقاله درباره الگوریتم 23 ص

لینک دانلود و خرید پایین توضیحات

فرمت فایل word  و قابل ویرایش و پرینت

تعداد صفحات: 23

 

مقدمه

در سالهای اخیر آمارشناسان به طور زیاد روش‌های الگوریتم مونت کارلوی زنجیر مارکوفی (MCMC) را رسم کرده‌اند. الگوریتم نمونه‌گیری گیبر یکی از بهترین روش‌های شناخته شده است برای آشنایی با شرایط مسأله فرض کنید در بردار تصادفی () برای محاسبه چگالی کناری x ، با مشکل روبرو هستیم اما چگالی‌های شرطی و و … در دسترس می‌باشند. در روش نمونه‌گیری گیبس مشاهداتی به صورت غیرمستقیم ازx تولید می‌شود و به کمک آنها چگالی کناری x را بررسی می‌کنیم.

حالا توجه قابل ملاحظه‌ای به الگوریتم متروپولیس- هستینگس تخصیص داده شده است که توسط متروپولیس و روسنبلوس، تلر (1953) گسترش و بعداً توسط هستینگس (1970) نظم داده شده است. الگوریتم M-H به طور زیاد در فیزیک کاربرد دارد و هنوز با وجود مقاله‌ای که توسط هستینگس ارائه شده است، به طور خیلی کم برای آمارشناسان شناخته شده است.

به دلیل سودمندی الگوریتم M-H ، کاربردهای آن به طور مداوم ظاهر می‌شود. برای مثال‌های جدید مولر (1993)، چیب وگریبزگ (1994) و فیلیپس و اسمیت (1994) را ببینید.

ما مقدمه‌ای را از این الگوریتم تهیه کرده‌ایم که از اصول اولیه آن مشتق شده است این مقاله به تنهایی مربوط به تئوری زنجیر مارکوف است. مطالب مربوط به این مقاله چنان که در پایین می‌آید به بحث گذاشته می‌شود. در بخش 2،‌ ما به طور خلاصه مشابه روش‌پذیرش- رد کردنی را مرور می‌کنیم. اگر چه MCMC نیست ولی بعضی از تفسیرهایی که در الگوریتم متروپولیس- هستینگس ظاهر می‌شود را به کار می‌برد و این مقدمه ای خوب برای این موضوع است. بخش 3 ارتباط تئوری زنجیر مارکوف به فضای وضعیت دائم را معرفی می‌کند که با فلسفه کلی که در پشت روش MCMC است همراه می‌شود. در بخش 4 الگوریتم M-H را نتیجه می‌گیریم و بخش 5 شامل مقالاتی می‌شود که با انتخاب چگالی کاندیدی- تولیدی در ارتباط هستند.

2- نمونه‌گیری پذیرش- رد کردنی

بر خلاف روش‌های MCMC که در پایین توضیح داده شده تکنیک‌های مشابه قدیمی که نمونه‌های مارکوفی را تولید نمی‌کند وجود دارد. روش مهم این دسته روش A-R است که به این صورت است.

روش A-R :

روش A-R به طور علمی نمونه‌هایی را تولید می‌کند که از چگالی معین می‌آید که یک چگالی غیرنرمالی و k یک ثابت نرمالیز است که ناشناخته است.

فرض کنید که h(x) یک چگالی باشد که با روش‌هایی معین می‌تواند شبیه‌سازی شود و فرض کنید که یک ثابت شناخته شده C باشد طوری که برای تمام x ها باشد.

*یک مقدار Z از h(.) و یک مقدار U از (1/0)U (توزیع یکنواخت روی (اره)) بگیرید. اگر آنگاه z=y و به * برگردید،‌در غیر این صورت باز هم به * برگردید.

به آسانی نشان داده می‌شود که این y یک متغیر تصادفی از است. برای اینکه این روش مفید و سودمند باشدC باید با دقت انتخاب شود.

 

نظر به تولید چگالی همچنین در الگوریتم M-H ظاهر می‌شود، اما قبل از در نظر گرفتن تفاوت‌ها و مشابهت‌ها، ما به منطق و فکری که در پشت روش MCMC است توجه می‌کنیم.

3- شبیه‌سازی مونت کارلوی زنجیر مارکوفی



خرید و دانلود مقاله درباره الگوریتم 23 ص


مقاله درباره الگوریتم های ژنتیکی به کاربره شده در مدیریت ترافیک هوایی 25 ص

لینک دانلود و خرید پایین توضیحات

فرمت فایل word  و قابل ویرایش و پرینت

تعداد صفحات: 25

 

الگوریتم های ژنتیکی به کاربره شده در مدیریت ترافیک هوایی

افزایش ترافیک هوایی، از زمان شروع تجارت هوایی، باعث مشکل اشباع در فرودگاهها، یا مکانهای فضایی شده است. در حالی که هواپیماها ارتقاء می یابند و اتوماتیک تر می شوند. اما هنوز کنترل ترافیکی بر پایه تجربیات انسان است. مطالعه حاضر ، دو مشکل مدیریت ترافیک هوایی (ATM) را به جزء بیان می کند، که برای آنها راه حل های بر پایه الگوریتم ژنتیکی وجود دارد. اولین کاربرددر رابطه با مشکل enroute است و دومین کاربرد در مورد مشکلات مدیریت ترافیکی در سکوهای فرودگاهها است.

1-راه حل درگیریهای Enroute = کنترل ترافیک هوایی (ATC) می تواند توسط یک سرس از فیلترها نشان داده شود، جایی که هر فیلتر یک ؟ خاص دارد و افق های خاص محیطی و موقتی را اداره می کند. 5 سطح (لِوِل) قابل تشخیص است. در دوره طولانی (بشتر از 6 ماه) ترافیک در یک روش میکروسکوپی می تواند برنامه ریزی شود. برای مثال مردم با یک نمودار ترافیکی روبرو هستند که اندازه های کمیته ، که برنامه های ساعتی و موافقت با ارتش را مورد توجه قرار داده است، به کاربرده می شود برای فرهنگ هواپیمایی در زمانهای اوج یعنی بعد ظهر جمعه.

در دوره کوتاهتر ، معمولاً در مورد تنظیمات قبل ، صحت می شود. این مورد شامل برنامه ریزی کردن روز ترافیک ، یک یا دو روز قبل تر می شود. در این مرحله ، اشخاص ایدة مشخصی درباره بیشتر برنامه ی پرواز و ظرفیت کنترل هر مرکز دارند. حداکثر جریان هواپیما که می تواند یک قطر را سوراخ کند. ظرفیت قطر نامیده می شود. این عمل توسط CFMU3 انجام می شود. ترافیک میان آتلانتیک برای مثال در این مرحله مورد توجه قرار می گیرد. راههای هوایی، تنظیم ساعت های پرواز و حالت هوا مورد توجه قرار می گیرد. به طور کل این شغل توسط FMP4 در هر مرکز صورت می گیرد. آخرین فیلتر ، فیلتر تاکتیکال است که با کنترل داخل یک قطر بستگی دارد. زمان متوسطی که یک هواپیما در یک بخش صرف می کند حدود 15 دقیقه است. اینجا میزان رویت کنترل کننده کمی بالاتر از میزان دریافت طرحهای پرواز است چند دقیقه قبل از ورود هواپیما به بخش. کنترل کننده وظیفه چک کردن، حل اختلافات و همپایه بودن با بخش های همسایه را تضمین می کند. در این حالت تعیین تعریف برخورد مطلوب است. دو هواپیما با هم برخورد دارندوقتی که فاصله جدایی افقی بین آنها کمتر 5 مایل باشد و تفاوت انها در ارتفاع کمتر از 1000 فیت باشد. روش هایی که توسط کنترل کننده برای حل این برخورد به کار می رود بر پایه مسائل زیر است.

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

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

خلبان. نامطمئنی بین سرعت فرود آمدن و بلند شدن بسیار زیاد است (بین 10% و 50% سرعت عمودی). در طول مسافرت ، نااطمینانی در سرعت کاهش می یابد. بعد از آن ، نا اطمینانی به همراه گذشت زمان بیشتر نمی شود، همانطور که یک هواپیما، ارتفاع خود را کاملاً خوب نگه داشته است. تقریباً غیر ممکن است که به دنبال راه حل های آنالیتکی برای حل مشکل برخورد باشیم . اما، اصلی ترین مشکل از پیچیدگی مشکل بوجود می آید. بخش اول این فصل ، به معرفی بعضی از توضیحات می پردازد که حل مشکل برخورد برای ما قابل فهم تر می کند و بخش دوم به تاریخچه ایی کوتاه از الگوریتمهای آزمایش شده برای این مشکل و محدودیتهای آن می پردازد. قسمت سوم مدلهای مشکل را به جزء بررسی می کند و پیشرفت الگوریتم ژنیتکی برای حل مشکل در بخش چهارم وجود دارد که با آمارهای ؟ بدست آمده دنبال می شود.

2- پیچیدگی حل مشکل برخورد= یک برخورد را می توان به صورت زیر توضیح داد:

یک برخورد یعنی برخوردی بین دو هواپیما در طول یک زمان داده شده از مسیر پیش بینی شده، گرفتن نااطمینانیها در مسیر.

کلاسهای معادل مربوطه به عنوان دسته و مجموعه برخورد هواپیما یا مجموعه ایی از اندازه n می تواند شامل شود به برخوردهای قوی n. توجه کردن به فقط هواپیمای افقی ، نشان می دهد که تمام راه حل های قابل قبول شامل 2n(n-1) اجزای مرتبط، تحت این تصور که یک متر مناسب به کاربرده شده که نیاز دارد به اجراهای زیادی از الگوریتم جستجو بنابر این برای مجموعه هواپیمای 6،32768 عضو متصل پیشنهاد می شود. در حقیقت اگر عملکرد هواپیما مورد توجه قرار گیرد، تمام اجزای مرتبط لازم نیست که مورد بررسی قرار گیرد. با آرام کردن محدودیت های جدا کننده، مشکل شبیه یک مشکل جهانی می شود که حداقل شامل بهینه های داخلی می شود مانند اجزای متصل. اضافه کردن بعد عمودی خصوصیت ترکیبی مشکل را کم نمی کند.

3- وجود مترهای حل کننده:

اولین پروژه اتوماتیک کنترل ترافیک ، آمریکایی بود و در شروع دهه 80 بوجود امد، اما قادر به حل مجموعه سایز 3 یا بیشتر نبود. پروژه اروپایی ARC2000 یک متر از نارساییهای ممتر لوله چهار بعدی را پیشنهاد کرد که مسیر n+1+h هواپیما در محیط n که قبلاً مسیرش محاسبه شده بود. ارتقاء دهد.

این مدلها شکیات را مورد توجه قرار ندادند و قادر نبودند با حجم عظیم ترافیک مواجه شوند. در نهایت پروژه تجربی اروپایی FREER در سال 1995 کامل شد. و پیشنهاد کرد که می تواند برخورد هواپیماها را حل کند. مشکل همپایه بودن بین هواپیماها با به کار بردن قوانین قبلی هدایت می شد ، که مانند استفاده



خرید و دانلود مقاله درباره الگوریتم های ژنتیکی به کاربره شده در مدیریت ترافیک هوایی 25 ص


مقاله درباره الگوریتم 20 ص

لینک دانلود و خرید پایین توضیحات

فرمت فایل word  و قابل ویرایش و پرینت

تعداد صفحات: 20

 

الگوریتم

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

الگوریتم های میکرو در مقابل ماکرو

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

همانگونه که احتمالا" حدس زده اید ، ما می توانیم تمام الگوریتم های میکرو را بمنظور ایجاد یک الگوریتم ماکرو ، جمع آوری نمائیم . اگر ما با الگوریتم های میکرو ، آغاز نمائیم ، و حرکت خود را بسمت نمایش ماکروی یک برنامه ، پیش ببریم ، کاری را انجام داده ایم که موسوم به طراحی " پایین به بالا" (buttom-up)  ، است . اگر ما فعالیت خود را با یک الگوریتم ماکرو آعاز و حرکت خود را بسمت پائین و الگوریتم های میکرو ، ادامه دهیم ، طراحی از نوع " بالا به پایین " (top-down)  را انجام داده ایم .

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

مراحل پنج گانه

هر برنامه را صرفنظر از میزان پیچیدگی آن ، می توان  به  پنج مرحله اساسی تجزیه کرد :

مقدار دهی اولیه

ورودی

پردازش

خروجی

پاکسازی

در ادامه به بررسی هریک از مراحل فوق ، خواهیم پرداخت .

مرحله مقداردهی اولیه

مرحله مقداردهی اولیه ، اولین مرحله ای است که می بایست در زمان طراحی یک برنامه  در رابطه با آن فکر کرد . مرحله فوق ، شامل تمامی عملیات مورد نیازی  است که برنامه می بایست قبل ازبرقراری ارتباط  با کاربر ، انجام دهد . در ابتدا ممکن است این موضوع که عملیاتی را قبل از برقراری  ارتباط با کاربر می بایست انجام داد ، تا اندازه ای عجیب بنظر رسد ولی احتمالا" برنامه های زیادی را مشاهده نموده اید که در این راستا عملیات مشابهی را انجام می دهند. مثلا" ،  در زمان استفاده از برنامه هائی نظیر Word ، Excel و یا برنامه های مشابه دیگر ، با چنین مواردی برخورد نموده ایم . مثلا"  با انتخاب  گزینه منو File ، می توان  لیستی از فایل هائی را که با آنها کار کرده ایم در بخش انتهائی منوفوق ، مشاهده کرد. ( مشاهده آخرین فایل های  استفاده شده در یک برنامه خاص ، با استفاده از جادو! میسر نشده است ) . برنامه مورد نظر شاید ، لیست فایل های اخیر را از دیسک خوانده و آنها را به لیست مربوطه در منوی File ، اضافه کرده باشد . با توجه به اینکه لیست فایل های فوق ، می بایست  قبل از اینکه برنامه هر چیز دیگر را برای کاربر نمایش دهد ، خوانده و نمایش داده شوند ، می توان انجام عملیات فوق را نمونه ای از مرحله مقداردهی اولیه، در نظر گرفت.یکی دیگر از عملیات متداول که به این مرحله مرتبط می باشد ، خواندن فایل های Setup است . چنین فایل هائی ممکن است حاوی اطلاعاتی در رابطه با نام مسیرهائی باشند که بانک ها ی اطلاعاتی خاصی و یا فایل های  ذخیره شده  دیگری را  بر روی دیسک را مشخص می نمایند . با توجه به نوع برنامه ای که اجراء می گردد ، فایل های Setup می توانند شامل اطلاعاتی در رابطه با فونت های نمایش ، نام و محل چاپگر ، رنگ های زمینه و رویه ، وضوح تصویر صفحه نمایشگر و اطلاعات مشابهی دیگر باشند . سایر برنامه ها ممکن است مستلزم خواندن اطلاعاتی در رابطه با اتصالات شبکه ، مجوزهای امنیتی و دستیابی به اینترنت ، رمزهای عبور و سایر اطلاعات حساس دیگر باشند . در چنین مواردی فایل های Setup دارای نقشی مهم خواهند بود.



خرید و دانلود مقاله درباره الگوریتم 20 ص


تحقیق در مورد الگوریتم 20 ص

لینک دانلود و خرید پایین توضیحات

دسته بندی : وورد

نوع فایل :  .doc ( قابل ویرایش و آماده پرینت )

تعداد صفحه : 20 صفحه

 قسمتی از متن .doc : 

 

الگوریتم

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

الگوریتم های میکرو در مقابل ماکرو

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

همانگونه که احتمالا" حدس زده اید ، ما می توانیم تمام الگوریتم های میکرو را بمنظور ایجاد یک الگوریتم ماکرو ، جمع آوری نمائیم . اگر ما با الگوریتم های میکرو ، آغاز نمائیم ، و حرکت خود را بسمت نمایش ماکروی یک برنامه ، پیش ببریم ، کاری را انجام داده ایم که موسوم به طراحی " پایین به بالا" (buttom-up)  ، است . اگر ما فعالیت خود را با یک الگوریتم ماکرو آعاز و حرکت خود را بسمت پائین و الگوریتم های میکرو ، ادامه دهیم ، طراحی از نوع " بالا به پایین " (top-down)  را انجام داده ایم .

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

مراحل پنج گانه

هر برنامه را صرفنظر از میزان پیچیدگی آن ، می توان  به  پنج مرحله اساسی تجزیه کرد :

مقدار دهی اولیه

ورودی

پردازش

خروجی

پاکسازی

در ادامه به بررسی هریک از مراحل فوق ، خواهیم پرداخت .

مرحله مقداردهی اولیه

مرحله مقداردهی اولیه ، اولین مرحله ای است که می بایست در زمان طراحی یک برنامه  در رابطه با آن فکر کرد . مرحله فوق ، شامل تمامی عملیات مورد نیازی  است که برنامه می بایست قبل ازبرقراری ارتباط  با کاربر ، انجام دهد . در ابتدا ممکن است این موضوع که عملیاتی را قبل از برقراری  ارتباط با کاربر می بایست انجام داد ، تا اندازه ای عجیب بنظر رسد ولی احتمالا" برنامه های زیادی را مشاهده نموده اید که در این راستا عملیات مشابهی را انجام می دهند. مثلا" ،  در زمان استفاده از برنامه هائی نظیر Word ، Excel و یا برنامه های مشابه دیگر ، با چنین مواردی برخورد نموده ایم . مثلا"  با انتخاب  گزینه منو File ، می توان  لیستی از فایل هائی را که با آنها کار کرده ایم در بخش انتهائی منوفوق ، مشاهده کرد. ( مشاهده آخرین فایل های  استفاده شده در یک برنامه خاص ، با استفاده از جادو! میسر نشده است ) . برنامه مورد نظر شاید ، لیست فایل های اخیر را از دیسک خوانده و آنها را به لیست مربوطه در منوی File ، اضافه کرده باشد . با توجه به اینکه لیست فایل های فوق ، می بایست  قبل از اینکه برنامه هر چیز دیگر را برای کاربر نمایش دهد ، خوانده و نمایش داده شوند ، می توان انجام عملیات فوق را نمونه ای از مرحله مقداردهی اولیه، در نظر گرفت.یکی دیگر از عملیات متداول که به این مرحله مرتبط می باشد ، خواندن فایل های Setup است . چنین فایل هائی ممکن است حاوی اطلاعاتی در رابطه با نام مسیرهائی باشند که بانک ها ی اطلاعاتی خاصی و یا فایل های  ذخیره شده  دیگری را  بر روی دیسک را مشخص می نمایند . با توجه به نوع برنامه ای که اجراء می گردد ، فایل های Setup می توانند شامل اطلاعاتی در رابطه با فونت های نمایش ، نام و محل چاپگر ، رنگ های زمینه و رویه ، وضوح تصویر صفحه نمایشگر و اطلاعات مشابهی دیگر باشند . سایر برنامه ها ممکن است مستلزم خواندن اطلاعاتی در رابطه با اتصالات شبکه ، مجوزهای امنیتی و دستیابی به اینترنت ، رمزهای عبور و سایر اطلاعات حساس دیگر باشند . در چنین مواردی فایل های Setup دارای نقشی مهم خواهند بود.



خرید و دانلود تحقیق در مورد الگوریتم 20 ص


تحقیق درباره الگوریتم فلوید word

لینک دانلود و خرید پایین توضیحات

فرمت فایل word  و قابل ویرایش و پرینت

تعداد صفحات: 7

 

الگوریتم فلوید برای یافتن کوتاه ترین مسیر

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

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

اگر مسیری هیچگاه دوبار از یک راس نگذرد مسیر ساده نامیده می شود.توجه کنید که یک مسیر ساده هرگز حاوی زیر مسیری که چرخه ای باشد نیست.طول یک مسیر در گراف موزون حاصل جمع اوزان مسیر است. در یک گراف ناموزون طول مسیر صرفاً عبارت است از تعداد رئوس موجود در آن است.

مسئله ای که کاربردهای فراوان دارد یافتن کوتاهترین مسیر از راسی به رئوس دیگر است. واضح است کوتاهترین مسیر باید مسیری ساده باشد. در شکل سه مسیر ساده از v1 به v2 وجود دارد یعنی [v1,v2,v3] [v1,v4,v3] [v1,v2,v4,v3] .چون

Length[v1,v2,v3]=1+3=4

Length[v1,v4,v3]=1+2=3

Length[v1,v2,v4,v3]=1+2+2=5

[v1,v4,v3]کوتاهترین مسیر ازv1 به v3 است.همانطور که پیش از این گفته شد یک کاربرد متداول کوتاهترین مسیر تعیین کوتاهترین مسیر میان دو شهر است.

مسئله کوتاهترین یک مسئله بهینه سازی است. برای هر نمونه از مسئله بهینه سازی ممکن است بیش از یک راه حل وجود داشته باشد.هریک از راه حل های پیشنهادی دارای مقداری مرتبط با آن است و حل نمونه آن حلی است که دارای مقدار بهینه است.مقدار بهینه حداقل است یا حد اکثر در مورد مسئله کوتاهترین مسیر یک حل پیشنهادی مسیری از یک راس به راس دیگر بود .مقدار آن طول مسیر و مقدار بهینه حداقل طول است.

چون ممکن است بیش از یک کوتاهترین مسیر از راسی به راس دیگر وجود داشته باشد مسئله ما یافتن هر یک از این کوتاهترین مسیر هاست.یک الگوریتم واضح برای این مسئله تعیین طول همه مسیرها برای هر راس از ان راس به هریک از رئوس دیگر است.اما زمان این الگوریتم بدتر از زمان نمایی است. برای مثال فرض کنید از هر راس به همه رئوس دیگر یک یال وجود دارد .در این صورت زیر مجموعه ای از همه مسیر ها عبارت است از مجموعه ای خواهد بود که از راس نخست شروع می شود و به راسی دیگر ختم می شود و از همه رئوس دیگر عبور می کنند.چون راس دوم در چنین مسیری می تواند هریک از n-2 راس باشد راس سوم در چنین مسیری می تواند هر یک از n-3 راس باشد...

و راس دومی به آخری روی چنین مسیری فقط می تواند یک راس باشد.تعداد کل مسیرها از یک راس که از همه رئوس دیگر بگذرد عبارت است از :

(n-2)(n-3)…1=(n-2)!

که بد تر از حالت نمایی است. در بسیاری از مسائل بهینه سازی با همین وضعیت مواجه هستیم . یعنی الگوریتمی که همه حالت های ممکن را در نظر بگیرد زمان آن نمایی یا بدتر است.

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

اگر یالی بین , باشد وزن یال

اگر یالی بین , نباشد w[i][j]=

اگر i=j باشد 0

چون راس vj وقتی مجاور راس vi خوانده می شود که یالی بین vj و vi باشد به این آرایه نمایش ماتریس همجواری یک گراف می گویند .اگر بتوانیم راهی برای محاسبه مقادیر d از مقادیر w بیابیم الگوریتمی برای مسئله کوتاهترین مسیر خواهیم داشت این هدف با ایجاد n+1 آرایه قابل حصول است که وداریم : =طول کوتاهترین مسیر از VI به VJ فقط با استفاده از رئوس موجود در مجموعه {V1,V2,….VK} به عنوان رئوس واسطه پیش از انکه نشان دهیم چرا به این ترتیب قادر به محاسبه D از روی W هستیم معنی عناصر این آرایه ها را توضیح می دهیم .

مثال چند مقدار از را به عنوان مثال برای گراف شکل حل می کنیم.

 

برای هر گراف اینها مساویند زیرا کوتاهترین مسیری که از v2 آغاز می شود نمی تواند از v2 بگذرد

برای این گراف ها اینها مساویند زیرا با گنجاندن v3 مسیر جدیدی از v2 به v5 بدست نمی آید

.

برای هر گراف اینها مساویند زیرا کوتاهترین مسیری به v5 منتهی می شود نمی تواند از v5 بگذرد.



خرید و دانلود تحقیق درباره الگوریتم فلوید word