الگوریتم جستجوی هارمونی((Harmony Search Algorithm (HS)

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

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

در طول زمان این نوازندگان با نواختن هارمونی های مختلف یک قطعه موسیقی را تولید می کنند. این نوازندگان پس از نواختن چندین قطعه، قطعه های نواخته شده (هارمونی های آن قطعه) را به خاطر می سپارند. فرض کنید که هارمونی توسط نوازنده ساخته شده است، در واقع فرض شده است اندازه حافظه نوازندگان یا (HMS)،  برابر kهارمونی است. پس با توجه به رابطه زیر یک ماتریس با k سطر (تعداد هارمونی هایی که نوازندگان به خاطر می سپارند) و n+1  ستون که در آن تعداد نوازنده (تعداد متغیرهای تاثیر گذار در مسئله= n)  و یک ستون برای ارزش آن هارمونی (f(x)) در نظر گرفته شده است. به ماتریس حاصل HM یا حافظه هارمونی گویند.

این الگوریتم از پنج گام تشکیل شده است:

1- مقدار دهی اولیه مسئله بهینه سازی و پارامترهای اولیه

2- مقدار دهی حافظه هارمونی

3- ایجاد یک هارمونی جدید بهبود یافته

4- به روز کردن حافظه هارمونی

5- تکرار گام های 3و4 تا زمانی که شرط پایانی ارضا شود یا تکرارها تمام شود.

الگوریتم جستجوی فاخته(cuckoo search)

روش جستجوی فاخته (CS) یک روش بهینه‌سازی فرااکتشافی است که رویکردی تکاملی در جستجوی راه‌حل بهینه دارد و در سال 2009 توسط Yang  و Deb پیشنهاد شده است. این روش از رفتار جالب توجه گونه‌هایی از پرنده‌ی فاخته در پرورش تخم الهام گرفته است و آن را با پرواز لووی که نوعی گشت تصادفی است ترکیب می‌کند.

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

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

1-    هر فاخته در هر زمان یک تخم می‌گذارد و آن را در یک لانه‌ی تصادفی قرار می‌دهد.

2-    بهترین لانه‌ها با کیفیت بالای تخم، نسل بعدی را تشکیل می‌دهند.

3-  تعداد لانه‌های میزبان ثابت است و تخمی که توسط فاخته گذاشته شده است، با احتمال  توسط پرنده‌ی میزبان کشف می‌شود. در این حالت پرنده‌ی میزبان می‌تواند تخم را دور بیاندازد یا لانه را ترک کرده، لانه‌ای جدید بسازد. برای سادگی، می‌توان کسرPa  از n تعداد لانه‌ها را با لانه‌های (راه‌حل‌های) جدید جایگزین نمود.

بررسی‌های انجام‌شده بر روی CS نشان داد که این روش برای بسیاری از مسائل دارای کارایی مناسبی است. این الگوریتم در آزمایش به دقت بالاتر و درصد موفقیت بالاتری نسبت بهDE  و PSO دست یافت.

آموزش برنامه نویسی جاوا


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

بخش یک                                             بخش دو                                                       بخش سه

بخش چهار                                          بخش پنج                                                       بخش شش

بخش هفت                                         بخش هشت                                                  بخش نه

بخش ده                                              بخش یازده

ادامه دارد ...

آموزش برنامه نویسی #C  

بخش اول                           بخش دو                            بخش سه                            بخش چهار

ادامه دارد ...

آموزش اصول و مبانی سیستم های خبره

اصول و مبانی سیستم های خبره

آموزش پیاده سازی شبکه های عصبی با استفاده از Toolbox متلب

آموزش پیاده سازی شبکه های عصبی در نرم افزار متلب(Matlab)

آموزش الگوریتم ژنتیک GA

مطالبی راجع به الگوریتم ژنتیک GA

رجیستری  Registry ( سیستم عامل ویندوز 7)

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

کجا تشخیص خواهد داد که به جای راه انداز قبلی، باید از راه انداز جدید استفاده کند؟ به عبارت

دیگر، چگونه سیستم عامل، پارامترها و تنظیم های مختلفی را که انجام داده اید یا برای سیستم شما

مناسب است، به خاطر می سپارد؟

این توانمندی، در رجیستری سیستم قرار دارد. سیستم عامل ویندوز 7، اطلاعات

پیکربندی خود را درون بانک اطلاعاتی به نام رجیستری نگهداری می کند. در این بانک

اطلاعاتی، مشخصات اجزای سخت افزاری سیستم و تنظیماتی که روی آنها صورت گرفته

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

جایی شروع شد که کاربران سیستم عامل Ms-Dos عملاً هیچ گونه اختیاری در انجام تنظیمات

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

پرونده ی Autoexec.bat Config.sys و MsDos.sys وجود داشتند که سیستم عامل Ms-Dos و

برنامه های کاربردی، تنظیماتی مانند اختصاص دادن Buffer یا تعریف CD Rom و غیره را در

این پرونده ها ثبت می کردند. در واقع این سه پرونده نقش رجیستری را ایفا می کردند.

بعد از Dos محیط کاری Win3X به وسیله ی شرکت مایکروسافت عرضه شد. در این

محیط پرونده هایی با پسوند ini که مهم ترین آنها Control.ini و System.ini و Win.ini بودند،

وظیفه ی رجیستری را برعهده داشتند.

نسل سوم رجیستری با روی کار آمدن سیستم عامل Windows 9X ارایه شد. سیستم عامل های

9X ، علاوه بر داشتن پرونده های Win3X از دو پرونده ی دیگر به نام های User.dat و System.dat نیز

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

وجود دارد. این پرونده ها، از نوع فقط خواندنی Read Only (، سیستمی) System ( و مخفی ) Hidden

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

رجیستری در سیستم عامل ویندوز 7 دارای پرونده 1 هایی است که مشخصات محیطی هر

کاربر )مانند تنظیمات شخصی و برنامه های نصب شده ی آن ها( را در خود نگهداری می کند. در

این بانک اطلاعاتی، مجموعه ای از فیلدها به همراه مقادیرشان به صورت طبقه بندی شده و سلسله

مراتبی نگهداری می شود. این ساختار همانند ساختار سلسله مراتب درختی پوشه ها است.

تعریف رجیستری

برخلاف پرونده های ini و پرونده هایی نظیر Autoexec.bat و Config.sys که از نوع متنی بودند

و می توانستید به راحتی آن ها را باز کنید و بخوانید، پرونده های رجیستری به صورت دودویی

)صفر و یک( هستند. به همین دلیل دیگر نمی توان این پرونده ها را با یک نرم افزار تایپ

معمولی مانند Notepad خواند یا محتویات آنها را تغییر داد. خوشبختانه، برای حل این مشکل،

شرکت مایکروسافت یک نرم افزار جانبی تحت عنوان Registry Editor در سیستم عامل ویندوز

قرار داده است که مشاهده و ویرایش پرونده های رجیستری را بسیار آسان می کند. به این

ترتیب کاربران این امکان را خواهند داشت که در صورت نیاز یا آسیب دیدن سیستم، مقادیر

تنظیم شده ی فیلدها را تغییر دهند. البته در اغلب مواقع نیازی به انجام این کار نیست و دستکاری

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

مشاهده و ویرایش محتویات رجیستری از برنامه ای به نام Regedit استفاده می شود. برای اجرای

برنامه ی ویرایشگر رجیستری ویندوز عبارت Regedit را در کادر جستجو و اجرا از منوی Start

تایپ کنید و کلید Enter را فشار دهید. بدین ترتیب محیطی شبیه به شکل 34  2 را مشاهده

خواهید کرد.

اگر اطلاعات کافی در مورد قسمتی از رجیستری ندارید، هیچ گاه آن را تغییر

ندهید، زیرا هر تغییری در رجیستری سریعاً اعمال خواهد شد و برنامه ی Regedit.exe

هیچ گونه تأییدی از کاربر نخواهد گرفت.

ROOT  CLASSES  HKEY

این بخش حاوی اطلاعات تناظر پسوند پرونده ها و سایر تنظیمات سیستم عامل

ویندوز است که سبب می شود وقتی پرونده ای را با استفاده از کاوشگر ویندوز

باز می کنید، برنامه ی مرتبط به درستی اجرا شود.

USER  CURRENT  HKEY

در برگیرنده ی اطلاعات پیکربندی کاربری است که در حال حاضر به سیستم

وارد شده است  Log on . این اطلاعات شامل پوشه ی کاربر، تنظیمات رنگ

محیط و تنظیمات Control Panel است. این اطلاعات مانند پرونده ی کاربر

قابل مراجعه است.

MACHINE  LOCAL  HKEY در برگیرنده ی اطلاعات پیکربندی ویژه ای است که هر کاربر در سیستم

اعمال کرده است.

USERS  HKEY

شامل ریشه ی پرونده ی همه ی کاربران روی رایانه است. CURRENT  HKEY

USER - یکی از زیرکلیدهای این کلید از پیش تعریف شده است.

CONFIG  CURRENT  HKEY شامل اطلاعاتی در خصوص پیکربندی سخت افزار شناخته شده به وسیله ی

سیستم عامل ویندوز 7 در هنگام راه اندازی است.

در رجیستری سه نوع متغیر وجود دارد که عبارت اند از: String, Dword و Binary که هر یک

از آنها در شرایط خاصی استفاده می شوند. این متغیرها درگروه های زیر طبقه بندی می شوند:

REG–BINARY : این نوع متغیر، داده های دودویی خام را ذخیره می کند. اغلب

اطلاعات سخت افزاری در این نوع متغیر ذخیره می شود. در ویرایشگر رجیستری نمایش این نوع

متغیر به صورت اعداد در مبنای هگزا دسیمال نیز وجود دارد.

REG–DWORD : این نوع متغیر برای نمایش داده های چهاربایتی و هم چنین برای

ذخیره کردن مقادیر منطقی درست یا غلط) FALSE OR TRUE ( به کار می رود، بدین ترتیب که

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

برای نگهداری پارامترهای گرداننده ی دستگاه ها و سرویس دهنده ها از این نوع پارامتر استفاده

می کنند. این نوع داده ها در REGEDIT32 به صورت باینری، هگزا و دسیمال قابل نمایش است.

پرونده های Hive چه پرونده هایی هستند؟

به بخشی از رجیستری که بر روی دیسک سخت ذخیره می شود و به صورت یک پرونده است،

پرونده ی Hive می گویند. در واقع می توان ساختار درختی رجیستری را به تعدادی کندو )همانند

کندوهای زنبور عسل( تقسیم کرد. یک کندو در واقع بدنه ای گسسته از کلیدها، زیرکلیدها

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

Hive به وسیله ی یک پرونده ی log . پشتیبانی می شود. به طور پیش فرض، اکثر پرونده های Hive

نظیر Defualt ،Sam ،Security و System  در مسیر SystemRoot%\System32/Config % ذخیره

می شوند. برای مشاهده ی کلیه ی پرونده های Hive می توانید به آدرس زیر مراجعه کنید:

HIKEY–LOCAL–MACHINE\SYSTEM\CurrentControlSet\Control\hivelist

نحوه ی ساختن یک کلید در زیرکلیدهای دیگر

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

New شوید. هم اکنون گزینه ی Key را انتخاب کنید و سپس نام موردنظر را به جای NewValue

تایپ و با فشار کلید Enter ، آن را تأیید کنید.

برای داشتن درک بهتری از چگونگی تغییر تنظیمات در رجیستری، قصد داریم چند نمونه از

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

اسم ها توجه کنید. در صورت نبودن پرونده یا پوشه، آن را خودتان درست کنید.

نمونه ی 1 : افزایش سرعت نمایش میزکار در Aero Peek

Aero Peek یکی از پیشرفت های نمایشی سیستم عامل ویندوز 7 است. وقتی ماوس را روی

دکمه ی Show Desktop از نوار ابزار نگه می دارید 1، به طور موقت تمام پنجره ها شفاف می شود.

با تنظیمات پیش فرض ، تقریباً یک ثانیه تمام طول می کشد تا این افکت عمل کند. با تغییر زیر

می توان این شفافیت را بلادرنگ کنید. برای انجام این کار کلید زیر را بیابید:

HKEY_CURRENT_USER\Software\Microsoft\Windows\Currentversion\

Explorer\Advanced

سپس روی یک ناحیه ی خالی در ستون سمت راست کلیک کنید و از منوی میانبر New

یک کلید جدید از نوع 32bit-Value) DWORD ) را اضافه کنید. در این فیلد، نام Desktop

Live Preview Hover Time را وارد کنید. به طور پیش فرض، سیستم عامل ویندوز مقدار  0

را به آن اختصاص می دهد که میزان مکث مورد نظر است. رایانه را راه اندازی مجدد کنید.

اکنون اگر ماوس روی دکمه ی Show Desktop مکث کند، شفافیت با سرعت بیشتری انجام

می شود.

نمونه ی 2: افزایش سرعت خاموشک ردن رایانه در Shut down سیستم عامل ویندوز 7

هنگامي كه رایانه با Shut down سیستم عامل ویندوز 7 خاموش می شود، پيامي به همه ي

برنامه ها و سرویس های در حال اجرا ارسال مي ك ند و خاموش شدن رايانه را به آنها اطلاع مي دهد

و منتظر پاسخ آنها مي ماند. اين زمان انتظار براي دريافت تأ ييد گاهي 20 ثانيه طول ميك شد.

می توان با اعمال تغییراتی در رجيستري، مدت زمان خاتمه ی برنامه ها را كوتاه تر کرد. برای این

منظور کلید زیر را بیابید:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control

سپس در پانل سمت راست، روی متغییر Wait To Kill App Time دو بار کلیک کنید.

اين متغير زمان انتظار براي دريافت پاسخ از برنامه هاي در حال اجرا، در هنگام خاموش شدن

سیستم عامل ویندوز را تع يين مي ك ند. مقدار پيش فرض اين متغير، 12000 ميلي ثانيه ) 12 ثانيه(

است. مقدار آن را به دلخواه تغ يير دهيد به عنوان مثال 5000  . در پایان روی OK كليك كنيد

تا تغيیرات اعمال شود و رايانه ي خود را از نو راه اندازي كنيد.

نمونه ی 3: غيرفعال مخفي كردن درايوها در كاوشگر سیستم عامل ویندوز

وقتي كاوشگر سیستم عامل ویندوز را با دوبار كليك روي نشانه ی Computer باز می کنید

مي توانيد تمام درايوهاي موجود در رايانه ی خود را مشاهده كنيد. براي مخفي كردن اين درايوها،

کلید زیر را بیابید:

KEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies

روی کلید Policies کلیک راست و کلید جدیدی به نام Explorer ایجاد کنید. سپس

کلید جدیدی از نوع DWORD (32 bit) Value به نام NoDrives ایجاد کنید. مقدار این متغیر

را به 3FFFFFF تغییر دهید. در پایان روی OK كليك كنيد تا تغيیرات اعمال شود و رايانه ي

خود را از نو راه اندازي كنيد. مشاهده خواهيد كرد كه هيچي ك از درايوهاي رايانه در كاوشگر

سیستم عامل ویندوز نشان داده نمي شوند.

توجه

با حذف متغير NoDrive از مسير ذكر شده، تغ ييرات را به حالت اول برگردانيد.

مشاهده ی تغییرات ایجاد شده در رجیستری

در سیستم عامل ویندوز 7، برای این که بتوان تغییرات ایجاد شده را سریعاً مشاهده کرد، سه کلید

Alt+Ctrl+Del را هم زمان فشار دهید و گزینه ی Task Manager را انتخاب کنید. از پنجره ی

ظاهر شده، زبانه ی Process را انتخاب و از پردازه های در حال اجرا، Explorer را انتخاب و روی

دکمه ی End Process کلیک کنید. هم اکنون کاوشگر سیستم عامل ویندوز بسته خواهد شد.

سپس زبانه ی Application را انتخاب و روی دکمه ی New Task کلیک کنید. عبارت Explorer

را در کادر مربوطه تایپ و روی دکمه ی OK کلیک کنید تا برنامه ی کاوشگر دوباره راه اندازی

شود. اکنون می توانید تغییرات را مشاهده کنید. توجه داشته باشید که در بعضی از تغییرات،

راه اندازی دوباره ی کاوشگر مؤثر نیست و تنها راه اعمال تغییرات، راه اندازی مجدد سیستم یا

Log off است.

بازگرداندن رجیستری به حالت قبل

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

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

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

برای این منظور مراحل زیر را دنبال کنید:

1 سیستم را از نو راه اندازی  Restart کنید.

2 قبل از نمایان شدن لوگو سیستم عامل ویندوز، با فشار مکرر کلید F8 گزینه های

پیش از راه اندازی سیستم عامل نمایان خواهد شد )شکل 1٧  2(. گزینه ی Last Known Good

Configuration (Advanced) را با استفاده از کلید های جهت نما انتخاب کنید و کلید Enter را

فشار دهید.

3 مجدداً با استفاده از کلیدهای جهت نما، سیستم عامل مورد نظر را انتخاب کنید. بعد

از راه اندازی مجدد، سیستم عامل ویندوز 7 با آخرین پیکربندی صحیح، قبل از تغییرات شما،

راه اندازی خواهد شد.

پاک سازی رجیستری

حتماً تا به حال پس از نصب یا حذف برنامه های مختلف بر روی سیستم خود، با مشکل سرعت

پایین بارگذاری سیستم عامل ویندوز 7 مواجه شده اید. در واقع علت اصلی آن، باقی ماندن برخی

از پرونده ها و تنظیمات مربوط به برنامه های حذف شده در سیستم است که با Uninstall به طور

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

برای پاک سازی رجیستری سیستم عامل ویندوز 7 وجود دارد که با جستجو در اینترنت می توانید

آنها را پیدا و بعد از دریافت، استفاده کنید. 1

انتقال تنظیمات رجیستری  Import و Export

ویرایشگر رجیستری ویندوز دارای امکاناتی برای ذخیره و بازگردانی محتویات رجیستری به یک

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

انجام تغییرات را در اختیار شما قرار می دهد.

١ از آن جمله می توان به Registry Mechanic و Registry Booster اشاره کرد.

برای انتقال رجیستری به یک پرونده ) Export (، از منوی File در برنامه ی Regedit ، گزینه ی

Export… را انتخاب کنید. هم اکنون کادر محاوره ای Export Registry File مانند شکل 3٥  2

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

مشخص شده با عدد یک، نام پرونده ی مورد نظر برای ذخیره ی رجیستری را وارد کنید. سپس

روی دکمه ی Save کلیک کنید تا پرونده ی مورد نظر ایجاد شود.

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

در پرونده در رجیستری ویندوز می شود. برای انجام این کار، در برنامه ی Regedit ، روی منوی

File کلیک و گزینه ی Import را انتخاب کنید. کادر محاوره ای Import Registry File نمایان

می شود. در این کادر، نام پرونده ی مورد نظر را انتخاب و روی دکمه ی Open کلیک کنید تا

محتویات جدید رجیستری موجود در پرونده ی انتخابی، جایگزین محتویات جاری گردد.