دانلود مقاله تحلیل الگوریتم شاخه و قید موازی آسنکرون

Word 62 KB 403 32
مشخص نشده مشخص نشده کامپیوتر - IT
قیمت قدیم:۲۴,۰۰۰ تومان
قیمت: ۱۹,۸۰۰ تومان
دانلود فایل
  • بخشی از محتوا
  • وضعیت فهرست و منابع
  • - خلاصه: در این مقاله توضیحی درباره کامپیوترهای موازی می‌دهیم و بعد الگوریتمهای موازی را بررسی می‌کنیم.

    ویژگیهای الگوریتم branch & bound را بیان می‌کنیم و الگوریتمهای b&b موازی را ارائه می‌دهیم و دسته‌ای از الگوریتمهای b&b آسنکرون برای اجرا روی سیستم MIMD را توسعه می‌دهیم.

    سپس این الگوریتم را که توسط عناصر پردازشی ناهمگن اجرا شده است بررسی می‌کنیم.

    نمادهای perfect parallel و achieved effiency را که بطور تجربی معیار مناسبی برای موازی‌سازی است معرفی می‌کنیم زیرا نمادهای قبلی speed up (تسریع) و efficiency (کارایی) توانایی کامل را برای اجرای واقعی الگوریتم موازی آسنکرون نداشتند.

    و نیز شرایی را فراهم کردیم که از آنومالیهایی که به جهت موازی‌سازی و آسنکرون بودن و یا عدم قطعیت باعث کاهش کارایی الگوریتم شده بود، جلوگیری کند.

    2- معرفی: همیشه نیاز به کامپیوترهای قدرتمند وجود داشته است.

    در مدل سنتی محاسبات، یک عنصر پردازشی منحصر تمام taskها را بصورت خطی (Seqventia) انجام میدهد.

    به جهت اجرای یک دستورالعمل داده بایستی از محل یک کامپیوتر به محل دیگری منتقل می‌شد، لذا نیاز هب کامپیوترهای قدرتمند اهمیت روز افزون پیدا کرد.

    یک مدل جدید از محاسبات توسعه داده شد، که در این مدل جدید چندین عنصر پردازشی در اجرای یک task واحد با هم همکاری می‌کنند.

    ایده اصل این مدل بر اساس تقسیم یک task به subtask‌های مستقل از یکدیگر است که می‌توانند هر کدام بصورت parallel (موازی) اجرا شوند.

    این نوع از کامپیوتر را کامپیوتر موازی گویند.

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

    اما در عمل این دو شرط بطور کامل برقرار نمی‌شوند: اولاً: این امکان وجود ندارد که هر taskی را بطور دلخواه به تعدادی زیر task‌های مستقل تقسیم کنیم.

    چون همواره تعدادی زیر task های وابسته وجود دارد که بایستی بطور خطی اجرا شوند.

    از اینرو زمان مورد نیاز برای اجرای یک task بطور موازی یک حد پایین دارد.

    دوماً: هر کامپیوتر موازی که عملاً ساخته می‌شود شامل تعداد معینی عناصر پردازشی (Processing element) است.

    به محض آنکه تعداد taskها فراتر از تعداد عناصر پردازشی برود، بعضی از sub task ها بایستی بصورت خطی اجرا شوند و بعنوان یک فاکتور ثابت در تسریع کامپیوتر موازی تصور می‌شود.

    الگوریتمهای B&B مسائل بهینه سازی گسسته را به روش تقسیم فضای حالت حل می‌کنند.

    در تمام این مقاله فرض بر این است که تمام مسائل بهینه سازی مسائل می‌نیمم کردن هستند و منظور از حل یک مسئله پیدا کردن یک حل ممکن با مقدار می‌نیمم است.

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

    الگوریتم B&B یک مسئله را به زیر مسئله‌های کوچکتر بوسیله تقسیم فضای حالت به زیر فضاهای (Subspace) کوچکتر، تجزیه می‌کند.

    هر زیر مسئله تولید شده یا حل است و یا ثابت می‌شود که به حل بهینه برای مسئله اصلی (Original) نمی‌انجامد و حذف می‌شود.

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

    این پروسه آنقدر ادامه پیدا می‌کند تا تمام زیر مسئله‌های تولید شده یا حل شوند یا حذف شوند.

    در الگوریتمهای B&B کار انجام شده در حین اجرا به شدت تحت تاثیر نمونه مسئله خاص قرار می‌گیرد.

    بدون انجام دادن اجرای واقعی الگوریتم این امکان وجود ندارد که تخمین درستی از کار انجام شده بدست آورد.

    علاوه برآن، روشی که کار باید سازمان‌دهی شود بر روی کار انجام شده تاثیر می‌گذارد.

    هر گامی که در اجرای الگوریتم b&b ی موازی بطور موفقیت‌آمیزی انجام می‌شود و البته به دانشی است که تاکنون بدست آورده.

    لذا استفاده از استراتژی جستجوی متفاوت یا انشعاب دادن چندین زیر مسئله بطور موازی باعث بدست آمدن دانشی متفاوت می‌شود پس می‌توان با ترتیب متفاوتی زیر مسئله‌ها را انشعاب داد.

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

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

    اجرای الگوریتم b&b بطور آشکاری تغییر می‌کند (به عبارت دیگر ترتیبی که در آن زیر برنامه‌ها انشعاب پیدا می‌کنند تغییر می‌کند).

    بنابراین حل مسائل بهینه‌سازی گسسته سرسع بوسیله یک کامپیوتر موازی نه تنها باعث افزایش قدرت محاسبه کامپیوتر موازی شده است بلکه باعث گسترش الگوریتمهای موازی نیز گشته است.

    3- کامپیوترهای موازی (Parallel computers): یکی از مدلهای اصلی محاسبات Control drivenmodel است، در این مدل کاربر باید صریحاً ترتیب انجام عملیات را مشخص کند و آن دسته از عملیاتی که باید به طور موازی اجرا شوند را تعیین کند.

    این مدل مستقل از عناصر پردازش به صورت زیر تقسیم‌بندی می‌شود: - کامپیوترهای SISD، که یک عنصر پردازشی وجود دارد و توان انجام فقط یک عمل را در یک زمان دارد.

    - کامپیوترهای MIMD، دارای چندین عنصر پردازشی هستند که بطور موازی دستورالعمل‌های متفاوت را روی دیتاهای متفاوت انجام می‌دهند.

    - کامپیوترهای SIMD، همه عناصر پردازشی‌شان یک دستور یکسان را در یک زمان بر روی داده‌های متفاوتی انجام می‌دهند.

    اگر چه امکان پنهان کردن عناصر پردازشی وجود دارد.

    عنصر پردازشی پنهان شده نتیجه عملی را که انجام داده ذخیره نمی‌کند.

    سیستمهای SIMD بر اساس نحوه ارتباط و اتصال عناصر پردازشی به یکدیگر خود به بخشهایی تقسیم می‌شوند: اگر تمام عناصر پردازشی به یکدیگر متصل باشند و از طریق یک حافظه مشترک ارتباط داشته باشند، به آن tightly coupled system گویند.

    و اگر عناصر پردازش حافظه مشترک نداشته باشند اما از طریق شبکه‌ای بهم متصل باشند و بروش message passing با هم ارتباط داشته باشند، به آن loosely coupled system گویند.

    حافظه مشترک در tightly coupled system ها هم نقطه قوت و هم نقطه ضعف این سیستمها است.

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

    ارتباط به عملیات ساده read و wite روی حافظه مشترک خلاصه می‌شود و هر عنصر پردازشی مستقیماً با دیگر عناصر پردازشی ارتباط برقرار می‌کند.

    با این حال، اگر تعداد عناصر پردازشی متصل به حافظه مشترک افزایش یابد، حافظه مشترک تبدیل به گلوگاه (Bottleneck) می‌شود.

    بنابراین تعداد عناصر پردازشی در یک سیستم tightly coupled محدود است.

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

    از طرف دیگر، ارتباط در یک سیستم loosely coupled کند و آهسته است.

    تبادل پیامها نیاز به زمانی بیش از زمان لازم برای نوشتن یا خواندن از یک حافظه مشترک دارد.

    این امکان هم وجود دارد که یک عنصر پردازش مستقیماً به عنصر پردازش دیگر که قصد ارتباط دارد متصل نباشد.

    در مقابل compactness بودن سیستمهای tightly coupled ، عناصر پردازشی در یک سیستم loosely coupled می‌توانند در تمام نقاط توزیع شوند.

    لذا فاصله فیزیکی که یک پیام باید طی کند، بیشتر می‌شود.

    به جهت این حقیقت که عناصر پردازشی برای ارتباط در یک شبکه از یک پروتکل استفاده می‌کنند، lossely coupled system می‌توانند شامل انواع مختلفی از عناصر پردازشی باشند.

    امکان اضافه کردن عناصر پردازشی اضافه‌تری به سیستم وجود دارد.

    در حالت کلی عناصر پردازشی خودشان یک کامپیوتر کاملی هستند.

    مثالی از سیستمهای loosely coupled، Distributed Processing utilities Package است که بعداُ به تفضیل درباره آنها توضیح می‌دهیم.

    4- الگوریتم های موازی (Parallel Algorithm): یک الگوریتم موازی شامل sub taskهایی است که باید انجام شود.

    بعضی از این sub taskها بصورت موازی اجرا می‌شوند، اما گاهی sub taskهایی هم وجود دارد که باید بصورت خطی اجرا شوند.

    اجرای هر sub task توسط یک پروسس مجزا انجام می‌شود.

    از ویژگیهای مهم یک الگوریتم موازی نحوه محاوره این پروسسها، سنکرون بودن و قطعی بودن الگوریتم است.

    دو پروسس با یکدیگر محاوره (interact) دارند، اگر خروجی یکی از آندو پروسس ورودی دیگری باشد.

    نحوه محاوره دو پروسس می‌تواند بطور کامل مشخص شده باشد یا نباشد.

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

    اگر گیرنده هنوز آماده ارتباط نباشد، فرستنده نمی‌تواند اقدامی انجام دهد.

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

    سنکرون شدن در اینجا یعنی قبل از آغاز subtask جدید، آنها باید منتظر کامل شدن عمل دیگر پروسسها باشند.

    وقتی یک الگوریتم آسنکرون اجرا می‌شود، پروسسها لازم نیست که منتظر یکدیگر شوند تا taskهایشان را تمام کنند.

    البته این امکان وجود دارد که یک الگوریتم آسنکرون تا حدی سنکرون شود.

    یک الگوریتم قطعی است اگر هر بار که الگوریتم بر روی ورودی مشابه اجرا شود، نتیجه اجرا یکسان باشد.

    یعنی دستورالعملهای مشابه به ترتیب مشابه انجام شود.

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

    مثلاً خروجی یک تصمیم ممکن است و البته به فاکتور های محیطی معینی باشد که توسط الگوریتم کنترل نمی‌شود.

    از اینرو اجراهای پی‌در پی یک الگوریتم غیر قطعی، خروجی‌های متفاوت تولید می‌کند.

    مثلاً خروجی یک تصمیم ممکن است و البته به فاکتورهای محیطی معینی باشد که توسط الگوریتم کنترل نمی‌شود.

    غیرقطعی بودن در سیستم tightly coupled هم رخ دهد چون امکان دارد یک پروسس متغیری را از حافظه مشترک در لحظه‌ای بخواند که پروسس دیگر می‌خواهد روی آن متغیر بنویسد.

    (توجه کنید که در الگوریتمهای آسنکرون، ترتیب عملیات read و write اهمیتی ندارد.) در سیستم loosely coupled هم غیر قطعی بودن رخ می‌دهد، اگر زمانیکه task بعدی که باید انجام شود توسط یک پروسس وابسته به پیامی از پروسس دیگر باشد.

    (در الگوریتمهای آسنکرون، درباره ترتیب ارسال و دریافت پیام و بررسی وجود پیام صحبتی نمی‌شود.) کاری که توسط الگوریتم موازی انجام می‌شود صرف computation و communication می‌شود.

    بنابراین پیچیدگی کل یک الگوریتم موازی به شامل پیچیدگی محاسبه و پیچیدگی ارتباط است.

    الگوریتمهای سنکرون نسبت به الگوریتمهای آسنکرون کار را بین پروسسها بطور جدی‌تری تقسیم می‌کنند.

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

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

    اجتناب از سنکرون کردن (همزمانی) دو مزیت مهم دارد: اولاً: در حالتی که taskهای اجرا شونده سایز یکسانی ندارند، عناصر پردازشی می‌توانند کارایی بالاتری داشته باشند.

    دوماً: در حالتی که کاری که باید انجام شود از قبل کاملاً مشخص نباشد براحتی می‌توان با الگوریتم ارتباط برقرار کرد.

    چون تقسیم منصفانه یک کمیت ناشناخته دشوار است، از اینرو ارتباط داشتن با الگوریتم می‌تواند مفید باشد.

    5- شاخه و قید (Branch and Bound): الگوریتم B&B با 4 قانون مشخص می‌شود: - قانون Branching: چگونه یک مسئله را به زیر مسئله‌هایی تقسیم کنیم.

    - قانون Bounding: چگونه یک حد پایین از حل بهینه برای یک زیر مسئله را محاسبه کنیم.

    - قانون Selection: کدام زیرمسئله برای انشعاب بعدی باید انتخاب شود.

    - قانون Elimination: چگونه زیر مسئله‌هایی که به حل بهینه برای مسئله اولیه (Origina) نمی‌انجامند را حذف و سازماندهی کنیم.

    اگر Po مسئله می‌نیممی باشد که باید حل شود.

    مسیری که Po مرتباً توسط قانون انشعاب به زیر مسئله‌های کوچکتر تجزیه می‌شود توسط یک درخت ریشه‌دار محدود B=(P,A) که P مجموعه نودها است و A مجموعه یالها است، نشان داده می‌شود.

    به این درخت، Search tree (درخت جستجو) گویند.

    ارتباط یک به یک بین نودهای درخت جستجو و زیر مسئله‌های تولید شده از تجزیه وجود دارد.

    ریشه این درخت Po است.

    اگر زیر مسئله Pj از طریق تجزیه از زیر مسئله Pi ایجاد شود آنگاه است.

    اگر f(p) حل بهینه زیر مسئله P باشد و زیر مسئله P به P1 و ....

    Pk تجزیه شود: (1-5) اگر g(P) یک حد پایین برای زیر مسئله P باشد که توسط قانون Bounding محاسبه شده است، باشد و T مجموعه زیر مسئله‌هایی باشد که بدون تجزیه می‌توانند حل شوند (به عبارت دیگر، برگهای درخت) آنگاه ویژگیهای زیر برای تابع حد پایین g متصور است: (2-5) (3-5) (4-5) همانطور که مشاهده می‌شود g یک تخمینی از حد پایین برای f است و زمانیکه Pi را بدون تجزیه بتوان حل کرد یعنی Pi برگ درخت جستجو باشد، آنگاه g دقیقاً همان حل بهینه است.

    مفهوم Heuristic search (جستجوی اختیاری) یک قالب کاری را فراهم می‌کند که بتوانیم انواع قوانین انتخاب را با هم مقایسه کنیم مثل depthfirst، breadth first، best bound و ...

    .

    در یک جستجوی اختیاری تابع دلخواه (hevristic function)h بر روی مجموعه زیر مسئله‌ها تعریف می‌شود.

    این تابع ترتیب انشعاب زیر مسئله‌ها را مشخص می‌کند.

    الگوریتم همیشه زیر مسئله با کمترین مقدار را برای انشعاب انتخاب می‌کند.

    قانون حذف شامل سر تست برای حذف زیر مسئله‌ها است: - feasibility test (بررسی امکان‌پذیری): یک زیر مسئله زمانی حذف می‌شود که بتوان ثابت کرد حل

  • فهرست:

    ندارد.


    منبع:

    ندارد.


تحقیق دانش آموزی در مورد دانلود مقاله تحلیل الگوریتم شاخه و قید موازی آسنکرون, مقاله دانشجویی با موضوع دانلود مقاله تحلیل الگوریتم شاخه و قید موازی آسنکرون, پروژه دانشجویی درباره دانلود مقاله تحلیل الگوریتم شاخه و قید موازی آسنکرون

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

«کارایی الگوریتم مسیریابی شکسته شده برای شبکه های چندبخشی سه طبقه» چکیده: این مقاله شبکه های سویچنگ سه طبقه clos را از نظر احتمال bloking برای ترافیک تصادفی در ارتباطات چند بخشی بررسی می کند حتی چنانچه سویچ های ورودی توانایی چند بخشی را نداشته باشند و نیاز داشته باشند به تعداد زیاد وغیرمجازی از سویچهای میانی برای فراهم کردن این مسیرهایی که پلاک نشوند مطابق درخواستها ...

تحلیل مساله کوتاهترین مسیر در گراف جهت دار اگر یک گراف جهت دار باشد فرض کنید هر لبه با وزن مشخص می گردد و هزینه رفتن مستقیم از گره i به j را مشخص میسازد بزودی الگوریتم دایجسترا را که برای یافتن کوتاهترین مسیر در گراف با وزن های مثبت کاربرد دارد را بیان میکنیم . در این بخش و بخش بعدی دو مساله مرتبط با گراف را بیان خواهیم کرد . 1 ) گراف G را در نظر بگیرید ( وزن دار ) اگر این گراف ...

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

بررسی دامپرهای مگنتورئولوژیک برای شبیه سازی اکیب زمین لرزه چکیده: در بررسی های اخیر، کارایی وسایلMC برای تعدیل پاسخ زلزله أی از لحاظ تجربی و تحلیلی شده داده شده است. بررسی های قبلی بررسی کاربرد یک دامپر MR واحد برای کنترل یک ساختمان چند طبقه متمرکز گردید. یک الگوریتم کنترل بهینه شده توسط تراشه بر اساس بازخورد شتاب برای استفاده با دامپر MR توسعه یافت. بررسی های تحلیلی، این روش را ...

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

مفید بودن شبکه عصبی آنالوگ مصنوعی بصورت خیلی نزدیکی با میزان قابلیت آموزش پذیری آن محدود می شود . این مقاله یک معماری شبکه عصبی آنالوگ جدید را معرفی می کند که وزنهای بکار برده شده در آن توسط الگوریتم ژنتیک تعیین می شوند . اولین پیاده سازی VLSI ارائه شده در این مقاله روی سیلیکونی با مساحت کمتر از 1mm که شامل 4046 سیناپس و 200 گیگا اتصال در ثانیه است اجرا شده است . از آنجائیکه ...

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

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

خوشه بندی روشی است که داده های یک مجموعه داده را به گروه یا خوشه تقسیم می کند . از مرسوم ترین روش های خوشه بندی،الگوریتم های خوشه بندی k-Means وfuzzy k-Means می باشند.این دو الگوریتم فقط روی داده های عددی عمل می کنند و به منظور رفع این محدودیت، الگوریتم های k-Modes و fuzzy k-Modes ارائه شدند که مجموعه داده های گروهی (دسته ای) را نیز خوشه بندی می کنند. . با این وجود، این الگوریتم ...

ثبت سفارش