زد فایل

مرجع دانلود فایل ,تحقیق , پروژه , پایان نامه , فایل فلش گوشی

زد فایل

مرجع دانلود فایل ,تحقیق , پروژه , پایان نامه , فایل فلش گوشی

دانلود پروژه ارائه یک الگوریتم خوشه بندی برای توزیع مناسب کار و ارزیابی کارایی آن

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

دانلود پروژه ارائه یک الگوریتم خوشه بندی برای توزیع مناسب کار و ارزیابی کارایی آن


دانلود پروژه ارائه یک الگوریتم خوشه بندی برای توزیع مناسب کار و ارزیابی کارایی آن

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

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

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

واژه‌های کلیدی

خوشه بندی ، چسبندگی ، توزیع شده گی

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

  افزایش نیاز به  سیستم هایی با کارائی بسیار زیاد و سرعت فوق العاده بالای شبکه ها (شبکه های ترابیتی)  سبب جلب علاقه محققان به پردازش های موازی و توزیع شده، شده است. از جمله دلایل افزایش توجه به سیستم های توزیع شده می توان به موارد زیر اشاره کرد:

1: پیشرفت تکنولوژی پردازش.

2: سرعت بالای شبکه ها.

3: انجام تحقیقات گسترده برای ارائه محیطهائی برای انجام محاسباتی توزیع شده.

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

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

1-1. سیستم های توزیع شده

در حالت کلی تعریف زیر را می توان برای یک سیستم توزیع شده ارائه کرد:

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

  • مزایا و معایب سیستم های توزیع شده

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

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

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

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

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

  1. فهم کامل تئوری محاسبات توزیع شده هنوز صورت نگرفته است. این موضوع نسبتاً جدید بوده و ما، قبل از اینکه به تئوری طراحی چنین سیستم های پردازشی تسلط پیدا کنیم باید تعداد زیادی سیستم توزیع شده معتبر با اهداف معمول و معماری های متفاوت را طراحی و آزمایش کنیم.
  2. رفتار ناهماهنگ و مستقل منابع سیستم یا اجزای آن، کنترل نرم افزار را پیچیده می کند در حالیکه این امر در یک سیستم متمرکز محاسباتی کار ساده ای است. اگر کامپیوترها به صورت مشتری-خدمتگذار سازماندهی شوند، کنترل نرم افزار ساده تر و رفتار آن قابل پیش بینی تر خواهد بود با این حال این ساختار با یکی از مشخصات سیستم های توزیع شده که همان مستقل بودن کامپیوترها و اجرای آسنکرونن می باشد در تناقض است.
  3. استفاده از شبکه های ارتباطی برای اتصال کامپیوترها به یکدیگر مرحله دیگری از پیچیده گی را معرفی می کند. طراحان سیستم توزیع شده نه تنها باید در طراحی سیستم های کامپیوتری و سیستم های نرم افزاری و سرویس ها ماهر باشد بلکه در طراحی شبکه ارتباطی مطمئن، ایجاد همزمانی ، سازگاری و برطرف کردن خطاها در یک سیستم پیچیده از کامپیوترهای ناهمگن و پراکنده از نظر جغرافیایی نیز تسلط داشته باشند. تعداد منابع استفاده شده در چنین سیستمهائی می تواند دهها، صدها و یا حتی هزاران منبع محاسباتی و ذخیره سازی باشد.

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

2- کاربران نباید از این موضوع که منبع مورد استفاده آنها در کامپیوتر دیگری در شبکه قرار دارد مطلع شوند.(شفافیت)  

 3- سیستم توزیع شده باید باز باشد.

4- سیستم توزیع شده باید مقیاس پذیر باشد. 

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

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

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

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

  • انگیزش

      ایده شی گرایی از محبوب ترین روش های تولید نرم افزار است,که برای طراحی، توصیف و پیاده سازی سیستم های توزیع شده نیز بسیار سودمند است.[11] مزیت این روش برای ساخت سیستم های توزیع شده این است که میتوان کدهای برنامه را در اشیا کپسوله کرده و سپس اشیا را به ماژول های مستقلی دسته بندی کرد و هر ماژول را بر روی یک منبع محاسباتی مجزا مستقر نمود. با این حال به عنوان یک اصل [8]تولید یک برنامه توزیع شده، همواره سخت تر از ایجاد یک برنامه غیر توزیع شده است, که عملکردی معادل آن را دارد. به طوری که ساخت یک سیستم توزیع شده میتواند به یک کار خسته کننده  و مملو از خطا تبدیل شود.[4] با وجود اینکه امروزه  ابزار ها و تکنیک های بسیار مفیدی مانند[29] RPC ،[15] CORBA و[8] DCOM جهت ساخت سیستم های توزیع شده با کارایی بالا ارائه گشته اند، اما در حالت کلی فرایند ساخت یک سیستم توزیع شده از بدو پیدایش سیستم های توزیع شده تغیر اندکی کرده است : برنامه نویس برنامه را به ماژول های مختلفی تقسیم کرده، هر ماژول را به صورت مجزا پیاده سازی کرده و امکان برقراری ارتباط بین آنها را ایجاد می کند و در نهایت هر ماژول را  در یک کامپیوتر مستقل در شبکه مستقر میکند. برخی از چالش هایی که در رابطه با ساخت سیستم های توزیع شده پیش روی یک برنامه نویس یا طراح نرم افزار می تواند قرار گیرد عبارت اند از:

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

      لذا اتوماتیک سازی فرایند تبدیل یک برنامه ترتیبی به یک برنامه قابل اجرا برروی یک محیط محاسباتی توزیع شده همواره به عنوان یک مساله باز تحقیقاتی مطرح بوده است. امروزه شبکه‌های کامپیوتری به واسطه پیشرفت تکنولوژی ارتباطات  توانسته‌اند جایگزین کامپیوترهای گران قیمت موازی­­گردند[1].

هنگام طراحی برنامه های توزیع شده برای مسائل کاربردی، اغلب الگوریتم ها به مجموعه ای از کارهای کلاسیک، و تکراری  تجزیه می شوند. از جمله کارهای بنیادی که در اغلب الگوریتم ها دیده می شوند می توان به انتشار[1] اطلاعات به تمام گره ها،ارسال پیام به برخی از گره ها[2]، سنکرون سازی عمومی تمام پردازه ها، شروع اجرای برخی رویداد ها، ضمن اجرای پردازه ها، یا انجام محاسبه ای که داده های مورد نیاز آن بین گره های مختلف توزیع شده، اشاره کرد. این عملیات ها معمولا با تبادل پیام بین پردازه ها انجام می گیرند.با طراحی زیر ساختی که بتواند این primitive ها را در اختیار برنامه های ترتیبی قرار دهد می توان نسخه توزیع شده ای از یک برنامه ترتِبی تولید کرد.

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

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

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

به هنگام توزیع، بخشی از برنامه در ایستگاه کاری راه دور اجرا می‌گردد. برای محاسبه زمانِ اجرای برنامه ترتیبی توزیع شده، باید مدت زمانیکه طول می کشد تا افراز[4] احضار شده در ایستگاه کاری راه‌دور اجرا گردد و مدت زمان سپری شده بین دستور احضار[5] تا اولین استفاده از نتیجه این احضار، تخمین زده شود و بر اساس مدت زمان احضار و ارسال نتایج، زمان اجرای توزیع شده محاسبه گردد. بعنوان مثال در مرجع [4] میزان تسریع توزیع محاسبه شده است. این عامل بر اساس زمان محاسبه شده  دو ایستگاه کاری بر روی لبه اتصال دهنده آنها، مشخص می شود.

1-3-  مراحل کلی تبدیل برنامه ترتیبی به برنامه توزیع شده

در حالت کلی برای تبدیل  یک برنامه ترتیبی به یک برنامه توزیع شده مراحل زیر پیموده می شود  

فهرست مطالب:

مقدمه ..........................................................  1

  • فصل اول - مفاهیم اولیه .................................................. 2

   1-1. سیستم های توزیع شده ......................................................................................  3

      1-1-1. مزایا و معایب سیستم های توزیع شده..................................................   3

   1-2. انگیزش  ...............................................    6    

1-3. مراحل کلی تبدیل برنامه ترتیبی به برنامه توزیع شده ............................................    8    

1-4. ساختار پروژه..........................................................................     9

   1-5. جمع بندی .......................................................................    10

  • فصل دوم - تکنیک ها و ابزارهای مرتبط ............................................................ 11

   2-1.ابزارهای تبادل پیام در مقایسه با حافظه اشتراکی توزیع شده.....................................................    13

2-1-1. تبادل پیام ....................................................................................................................    13

        2-1-2. خصوصیات مطلوب یک سیستم تبادل پیام..............................................................   14

 2-1-3. طبقه بندی ابزارهای تبادل پیام.......................................................................................     14

    2-2. توزیعگر های اتوماتیک ..............................................................................................        17

 2-2-1. ابزار های نیمه اتوماتیک ..............................................................................................................     17 

 2-2-2. ابزار های تمام اتوماتیک .............................................................................................................     18

        2-2-3. توزیع بایت­ کد جاوا بر مبنای تحلیل­ وابستگی به صورت اتوماتیک ..............................................     21  

2-4. مطابقت اندازه گره در محیط برنامه نویسی شی­گرا به صورت پویا توسط روش اسکوپ .........................     24  

2-5.افرازبندی در سیستم توزیع شده شی گرا به صورت پویا .........................................................................     25

      2-5-1. معیارهای دسته بندی اشیاء .....................................................................................     26

      2-5-2. الگوریتم خوشه بندی مشتق شده از الگوریتم حریصانه lo,s  ...............................

       2-5-3. دسته بندی اشیاء موجود در خوشه ها .............................................................     29

    2-6. نتیجه گیری .................................................................................................................  30

3- فصل سوم - استخراج گراف فراخوانی ..........................................................................  31

2-ساخت گراف فراخوانی   

3-1. ساخت گراف جریان فراخوانی ............................................................................................................  32

3-2-1.   الگوریتم های  تعین مقصد فراخوانی ..................................................................................  34

3-2-2.  روش آنالیز نوع ایستاتیک .................................................................................................  34

روش آنالیز سلسله مراتب کلاس ...........................................................................................................     35

3-2-3.  روش آنالیز نوع سریع ........................................................................................................37

3-2-4. روش آنالیز نوع سریع حساس به جریان برنامه ....................................................................37

3-2. استخراج گراف فراخوانی جهت ساخت گراف کلاسها ...................................................................41

3-3.  مقایسه روش های ساخت گراف فراخوانی .........................................................................................  43

3-4.  وزن گذاری گراف فراخوانی ............................................................................................................  45

  • استراتژی وزن گذاری یال های گراف فراخوانی توابع ......................................................................  46
  • برآورد زمان اجرای کد های ترتیبی .................................................................................................  50
    • روش های برآورد زمان اجرای کد های ترتیبی ......................................................................  51
    • برآورد زمان اجرای کدهای برنامه باآنالیز متن برنامه................................................................  51
    • تعیین سرحد تکرار حلقه­ها و فراخوانی­های بازگشتی ............................................................... 57
    • حذف مسیرهای اجرا نشدنی ..................................................................................................  57
    • بهینه سازی کامپایلرها و تخمین زمان اجرای برنامه ..................................................................  57
    • نحوه شناسایی حلقه های تکرار ................................................................................... 65
    • تشخیص حلقه های تکرار ................................................................................................. 71
    • تخمین تعداد تکرار حلقه ها .............................................................................................. 71
    • انتشار مقادیر .................................................................................................................... 71
  • یافتن نقاط همگام سازی ................................................................................................................. 73
  • بررسی نتیجه الگوریتم پیشنهادی برروی یک برنامه نمونه................................................................. 76
  • جمع بندی ......................................................................................................... 80

3-7-3.   تخمین ایستای زمان اجرای برنامه ها ...................................................................

.           زبان های برنامه سازی و تخمین زمان اجرا .......................................................  58

3-8.           رعایت میزان دقت تخمین در زمان اجرا ...................................................................... 58

3-9.           معیارهای موجود در تخمین طولانی ترین زمان اجرا .......................................................................... 59

3-10-1.            تحلیل جریان داده ................................................................................. 59

3-10-2.            تحلیل کاهش بازگشتی .......................................................................................... 61

3-10-3.            حجم زیاد اطلاعات ......................................................................................... 62

3-10-4.            استفاده از کد Object برنامه ............................................................................ 63

3-10.  بایت کد جاوا و محاسبه زمان اجرای دستورالعملها ........................................................................... 63

3-11. محاسبه زمان اجرای حلقه ها ........................................................................... 64

12.  انتشار دامنه مقادیر ........................................................................................... 67

3-13.  دستورات شرطی و نحوه شناسایی آنها ........................................................ 68

3-14. محاسبه زمان اجرای کل برنامه با استفاده از روش پیشنهادی   .................................. 70

15-4.  محاسبه زمان اجرای توابع موجود در یک دور از گراف...................................................  71

  • فصل چهارم - خوشه بندی ............................................................................................. 81
    • خوشه بندی سلسله مراتبی ............................................................................................... 82
    • خوشه بندی سلسله مراتبی پایین به بالا (تلفیق) .................................................................... 85
    • روش های ادغام خوشه ها در خوشه بندی پایین به بالا .......................................................... 88
      • Single Linkage..................................................................................
      • Simple Average Linkage .................................................................................
      • Weighted Average Linkage .......................................................................
      • سه روش مفید دیگر (Median, Centroid, Wards ) ............................................
    • تکنیک های یافتن تعداد خوشه های بهینه ..................................................................................... 94
      • جدول تلفیق (جدول ادغام) ........................................................................................... 94
      • تراز تلفیق .......................................................................................................... 96
      • نمودار dendrogram ..............................................................................................
      • تعیین تعداد خوشه های بهینه ................................................................................... 98
    • تکنیک های پیدا کردن نقطه پیچش در نمودار جدول تلفیق......................................................... 100
    • روش پیشنهادی در این پایان نامه جهت خوشه بندی .................................................................. 103
      • الگوریتم پیشنهادی برای خوشه بندی کلاس ها ............................................................ 103
    • جمع بندی ..................................................................................................................... 106
    • محیط پیاده سازی شده .................................................................................................... 109
    • مقایسة روش خوشه بندی پیشنهادی با روش حریصانه متداول.................................................... 111

          مقدمه ................................................................................................................................... 

            Complete Linkage ...................................................................................................

             Group Average Linkage ............................................................................             

فصل پنجم - پیاده سازی و ارزیــابــی ......................................................................................             

فصل ششم - نتیجـه‌گیـری .......................................................................................................         

نتیجه گیری ...........................................................................................................................        

کارهای آتی .......... .............................................................................................................

منابع و مراجع .......................................................................................................................................

شامل 125 صفحه فایل WORD قابل ویرایش


دانلود با لینک مستقیم


دانلود پروژه ارائه یک الگوریتم خوشه بندی برای توزیع مناسب کار و ارزیابی کارایی آن

دانلود فایل ورد Word پروژه پیش بینی بهره کشی و خوشه بندی آسیب پذیری­ ها بوسیله­ متن کاوی

اختصاصی از زد فایل دانلود فایل ورد Word پروژه پیش بینی بهره کشی و خوشه بندی آسیب پذیری­ ها بوسیله­ متن کاوی دانلود با لینک مستقیم و پر سرعت .

دانلود فایل ورد Word پروژه پیش بینی بهره کشی و خوشه بندی آسیب پذیری­ ها بوسیله­ متن کاوی


دانلود فایل ورد Word پروژه  پیش بینی بهره کشی و خوشه بندی آسیب پذیری­ ها بوسیله­ متن کاوی

عنوان:پیش بینی بهره کشی و خوشه بندی آسیب پذیری­ ها بوسیله­ متن کاوی

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


چکیده:

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

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

در زمینه پیش بینی بهره کشی با استفاده از متن کاوی، تاکنون فقط یک تحقیق انجام شده است. این تحقیق در KDD2010، با عنوان “فراتر از اکتشافی: آموزش برای، کلاس بندی آسیب پذیری و پیش بینی بهره کشی” ارائه شده است. این تحقیق به سوالات زیر، با استفاده از متن کاوی پاسخ داده است: آیا از آسیب پذیری بهره کشی خواهد شد؟ چه زمانی از آسیب پذیری موجود بهره کشی خواهد شد؟ این مقاله در مقایسه با CVSS(که یکی از متریک­های معروف آسیب پذیری است) به نتایج خوبی رسیده است. در این پژوهش به سوالات فوق و به سوالات جدید زیر دقت بالایی پاسخ داده شده است:

اگر سیستمی مورد بهره کشی قرار گرفته، چه زمانی این بهره کشی آغاز شده است؟ (دقت پاسخ­ها بین 94.5-84%)

اگر سیستمی آسیب پذیر است، چه زمانی بسته اصلاح شده آن از سوی سازندگان ارائه خواهد شد؟ (دقت پاسخ­ها بین 91-68%)

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

در این پژوهش از دو پایگاه داده معروف آسیب پذیری­ها (OSVDB و CVE)، و اطلاعات تاریخ آسیب پذیری­ها که استفان فری در اختیارمان قرار داد، استفاده شده است. برای پیش بینی بهره کشی از کلاس بندی کننده ­های ماشین بردار پشتیبانی و جنگل تصادفی، و برای انجام خوشه بندی از روش نگاشت خود سازمانده نوخاسته استفاده شده است.

فصل اول: مقدمه

1-1- آسیب پذیری

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

1-1-1- تعریف آسیب پذیری

آسیب پذیری از جمله مفاهیمی است که منابع مختلف تعاریف متفاوتی را برایش ارائه داده­اند. از جمله این تعاریف می­توان به موارد زیر اشاره کرد:

ISO 27005: ضعف یک دارایی یا گروهی از دارایی­ها که می­تواند توسط فرد یا گروهی از افراد مورد بهره کشی قرار گیرد . در این تعریف دارایی به معنای هر چیزی که برای سازمان ارزشی داشته باشد، است، برای مثال منابع اطلاعاتی مورد حمایت سازمان.

IETF RFC 2828: یک عیب یا ضعف در طراحی، پیاده سازی، عملکرد یا مدیریت سیستم، که می­تواند باعث بهره کشی، در جهت نقض سیاست امنیتی سیستم شود .

کمیته ملی سیستم­های امنیتی ایالات متحده آمریکا، در دستورالعمل CNSSشماره 4009، در تاریخ 26 آوریل 2010، واژه نامه تضمین اطلاعات ملی: آسیب پذیری ضعف در یک IS، روش­های امنیتی سیستم، کنترل­های داخلی یا پیاده سازی است، که می­تواند منجر به بهره کشی شود .

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

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

تحلیل عاملی از خطر اطلاعات(FAIR): احتمال اینکه یک دارایی قادر به مقاومت در برابر عوامل خطر نباشد .

امنیت داده و کامپیوتر، فرهنگ لغات مفاهیم و لغات استاندارد، نویسندگان دنیس لانگلی و مایکل شین، استاکتون پرس، ISBN 0-935859-17-9:

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

2-1-1- کلاس بندی آسیب پذیری ها

آسیب پذیری­ها، براساس نوع دارایی به دسته­های زیر تقسیم می­شوند :

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

3-1-1- علت­های ایجاد آسیب پذیری­ها

 برخی از منابع و علت­ های ایجاد آسیب پذیری­ ها عبارتند از:

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

4-1-1- شناسایی و حذف آسیب پذیری­ها

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

2-1- مفاهیم اولیه­ مورد نیاز

1-2-1- متن کاوی

مشکلی که دنیای امروز با آن رو به رو است، کمبود یا نبود اطلاعات نیست بلکه کمبود دانشی است که از این اطلاعات میتوان حاصل کرد. میلیون­ها صفحه­ وب، میلیون­ها کلمه در کتابخانه­های دیجیتال و هزاران صفحه اطلاعات در هر شرکت، تنها بخشی از این منابع اطلاعاتی هستند. اما نمی­توان به طور مشخص منبعی از دانش را در این بین معرفی کرد. دانش حاصلی است که از نتیجه گیری و فکر و تحلیل بر روی اطلاعات به دست می­آید. هدف داده کاوی مشخص کردن روابط میان داده­ های موجود در پایگاه داده­ها و استخراج دانش از میان آن­ها می­باشد. زمانی که داده­های موجود ساخت یافته باشند استفاده از روش­های داده کاوی و کسب دانش از آن­ها ساده است. اما امروزه بخش زیادی از اطلاعات به صورت متن نگهداری می­شود و متن­ ها داده­ هایی غیر ساخت یافته هستند. یک فرد برای دریافت دانش از اطلاعات یک متن، بایستی ابتدا آنرا درک کند، تا بفهمد چه معانی و مفاهیمی در آن موجود است و چه ارتباطی میان مفاهیم وجود دارد. با این حال عصر تکنولوژی به دنبال خودکارسازی است، حتی اگر این کار “درک معنی متن” باشد .

متن کاوی تمام فعالیت­ هایی که به نوعی به دنبال کسب دانش از متن هستند را شامل می‌گردد. تحلیل داده ­های متنی توسط روش­های یادگیری ماشین، بازیابی اطلاعات هوشمند، پردازش زبان طبیعی، همگی در دسته فعالیت­های متن کاوی قرار می‌گیرند. تصویر 1-1 مراحل متعارف متن کاوی را نشان می­دهد. اولین گام در متن کاوی استفاده از روش­هایی برای ساختارمند نمودن متن­ها است. متن از مجموعه­ای از کلمات و عبارات زبان طبیعی تشکیل شده است. عموماً روش­های متن کاوی ابتدا کلمات و عبارات، را از متن استخراج می­کنند و سپس آن­ها را مورد پردازش قرار می­دهند، برای مثال برخی کلمات مثل حروف اضافه و ضمایر حذف، و کلمات باقی مانده ریشه­ یابی می­شوند. سپس مشخصات استخراج شده از متن­ها به روش­های مختلفی مقداردهی می­شوند، از میان این روش­ها می­توان به مقداردهی دودویی (بیان­گر ظاهر شدن/ نشدن کلمه در متن است)، فراوانی کلمه در متن، وزن TF-IDFاشاره کرد .در این تحقیق از روش وزن­دهی TF-IDFاستفاده شده است، که در قسمت بعد درباره این روش توضیح داده خواهد شد. با استفاده از مقادیر به دست آمده بردارهای ویژگی برای داده­ها ساخته و از بین مجموعه­ی داده­ ها، داده­ های آموزش و تست کلاس بندی کننده انتخاب می­شوند. پس از آن یک روش کلاس بندی انتخاب می­شود. کلاس بندی کننده با استفاده از داده­ های آموزش، آموزش داده و با استفاده از داده ­های تست ارزیابی می­شود.



دانلود با لینک مستقیم


دانلود فایل ورد Word پروژه پیش بینی بهره کشی و خوشه بندی آسیب پذیری­ ها بوسیله­ متن کاوی

ترجمه مقاله"5 عنصر اساسی برای رشد خوشه های بیوتکنولوژی " با اصل مقاله

اختصاصی از زد فایل ترجمه مقاله"5 عنصر اساسی برای رشد خوشه های بیوتکنولوژی " با اصل مقاله دانلود با لینک مستقیم و پر سرعت .

ترجمه مقاله"5 عنصر اساسی برای رشد خوشه های بیوتکنولوژی " با اصل مقاله


ترجمه مقاله

ترجمه مقاله"5 عنصر اساسی برای رشد خوشه های بیوتکنولوژی "  با اصل مقاله

                                                         Five Essential Elements for Growing Biotechnology Clusters

                                                               Craig Shimasaki, PhD, MBA

President & CEO, Moleculera Labs and BioSource Consulting Group, Oklahoma City, Oklahoma

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

نوع فایل :word


دانلود با لینک مستقیم


ترجمه مقاله"5 عنصر اساسی برای رشد خوشه های بیوتکنولوژی " با اصل مقاله

دانلود مقاله ISI الگوریتم خوشه بندی موازی مبتنی بر موجک روی GPU با استفاده از CUDA

اختصاصی از زد فایل دانلود مقاله ISI الگوریتم خوشه بندی موازی مبتنی بر موجک روی GPU با استفاده از CUDA دانلود با لینک مستقیم و پر سرعت .

موضوع فارسی : الگوریتم خوشه بندی موازی مبتنی بر موجک روی GPU با استفاده از CUDA

موضوع انگلیسی : Parallel wavelet-based clustering algorithm on GPUs using CUDA 

تعداد صفحه : 5

فرمت فایل :pdf

سال انتشار : 2010

زبان مقاله : انگلیسی

چکیده

دارای منافع قابل توجهی در جامعه علمی و مهندسی کامپیوتر به سرعت بخشیدن به کارهای CPU-فشرده در شده است وجود
واحد پردازش گرافیکی (GPU ها) با توسعه پردازنده های گرافیکی بسیاری از هسته به عنوان داشتن پهنای باند حافظه بسیار بزرگ و قدرت محاسباتی. تجزیه و تحلیل خوشه یک تکنیک به طور گسترده استفاده برای گروه بندی مجموعه ای از اشیاء را به کلاس از اشیاء "مشابه" است و معمولا در زمینه های بسیاری مانند داده کاوی، بیوانفورماتیک و تشخیص الگو استفاده می شود. WaveCluster مفهوم تعریف
خوشه به عنوان یک منطقه متراکم متشکل از اجزای متصل در فضای ویژگی تبدیل شده است. در این مطالعه، ما در حال حاضر
اجرای الگوریتم WaveCluster به عنوان یک روش خوشه رمان بر اساس تبدیل موجک به سطح GPU
موازی و بررسی عملکرد موازی برای مجموعه داده های بسیار بزرگ فضایی. پیاده سازی CUDA از دو اصلی
زیر الگوریتم از روش WaveCluster. یعنی استخراج مولفه های فرکانس پایین از سیگنال با استفاده از موجک
تبدیل و برچسب زدن وصل ارائه شده است. پس از آن، ارزیابی عملکرد مربوطه برای گزارش
هر یک از زیر الگوریتم. تقسیم و تسخیر روش بر اجرای موجک به دنبال تبدیل و چند پاس کشویی
پنجره رویکرد در اجرای برچسب وصل.
حداکثر به دست آورد تسریع در هسته به عنوان 107x در محاسبه استخراج مولفه فرکانس پایین و 6X در محاسبه برچسب وصل با توجه به الگوریتم های پی در پی در حال اجرا بر روی CPU شده است.
کلمات کلیدی: محاسبات GPU؛ CUDA. آنالیز خوشه ای؛ الگوریتم WaveCluster

دانلود با لینک مستقیم


دانلود مقاله ISI الگوریتم خوشه بندی موازی مبتنی بر موجک روی GPU با استفاده از CUDA

تأثیر خوشه بندی الگوریتم پایه توزیع شده انحصار متقابل برای شبکه های موبایلی adhoc

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

تأثیر خوشه بندی الگوریتم پایه توزیع شده انحصار متقابل برای شبکه های موبایلی adhoc


تأثیر خوشه بندی الگوریتم پایه توزیع شده انحصار متقابل برای شبکه های موبایلی adhoc

 

انحصار متقابل یک مشکل عمده هماهنگی در سیستم های توزیع شده است. که مسئولیت رسیدگی به mutex ها را دارد، راه حل مربوطه عمدتا به کسب اجازه بر اساس، پروتکل های مبتنی بر رمز و مبتنی بر حد نصاب است. adhoc شبکه های موبایلی MANET به عنوان موانع جدید برای طراحی الگوریتم های که به حل مشکل انحصار متقابل توزیع کمک کند معرفی می شود.

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


دانلود با لینک مستقیم


تأثیر خوشه بندی الگوریتم پایه توزیع شده انحصار متقابل برای شبکه های موبایلی adhoc