|
| |||||||||||||||
|
ويژگيهاي يك شبكهعصبي ● مجموعهاي از واحدهاي پردازشي ساده
اين همان راهي است كه شبكه ساخته شده و دادهها در آن جريان مييابد. به عنوان مثال، يك شبكه از نوع (1) Adaline (سرنام Adaptive Linear Neuron) شامل دو گره ورودي، يك گره bias و يك گره Adaline است. گره Adaline همان گرهي است كه فراخواني توابع اجرايي و يادگيري را برعهده دارد. هيچ محدوديت مشخصي براي تعداد گرههايي كه ميتوانيد در هر نورون داشته باشيد و نيز در نحوه جاري شدن دادهها وجود ندارد. داده در ابتدا در گرههاي ورودي قرار دارد، اما با بزرگ شدن شبكه ميتواند براي پردازش وارد گرههاي ديگر شود.
اين صرفاً عرف (Common sence) محسوب ميشود. شبكه مورد نظر از هر نوعي كه باشد، نتايج مشخصي وجود دارد كه ميخواهيم به آنها دست پيدا كنيم. اين دستيابي از طريق پردازشدادهها در شبكهاي كه با آن سروكار دارد، به روشي خاص امكانپذير است. اين روش ميتواند انتقال داده به گره خروجي يا بازگرداندن يا گاهي جلو راندن آن در شبكه به منظور پردازش بيشتر باشد. در هر حال، همچون هر برنامه كامپيوتري ديگر، گامهاي مشخصي وجود دارند كه بايد پيموده شوند و معمولاً يكي از دو روش مذكور در نهايت منجر به كسب نتيجه صحيح ميگردد. ● قواعدي براي تركيب سيگنالهاي ورودي ● قاعدهاي براي تجميع يك سيگنال خروجي
يك Weight يا وزن مقداري است كه به اتصال يا پيوند داده ميشود و در فرآيند يادگيري سودمند است. اين مقدار به صورت بيدرنگ به وسيله تابع يادگيري بروز ميشود و به طور طبيعي پشت اين كار قاعده خاصي نهفته است. در نظر داشته باشيد هدف نهايي شبكه، يادگيري ارائه پاسخهاي صحيح با توجه به دادههاي آموزشي است كه به آن داده ميشود. بنابراين به نظرميرسد كه يك قاعده كاملاً مناسب براي بروز كردن weightها ميتواند تعيين تصادفي يك مقدار براي آن تا زمان رسيدن به جواب باشد. از لحاظ تئوري اين كار ميتواند باعث طولانيتر شدن زمان كار شبكه در مقابل حالتي گردد كه يك قاعده صريح و مشخص به آن داده شده باشد. چگونگي يادگيري شبكه كد 1 كد 2 كد 3 كد 4 كد 5 كد 6 | |||||||||||||||
|
| |||||||||||||||
|
گردآوري و ترجمه: علي حسيني | |||
|
سيستم خبره چيست؟ ساختار يك سيستم خبره
اطلاعات اين بخش از سيستم خبره از طريق مصاحبه با افراد متخصص در اين زمينه تامين ميشود. مهندس دانش يا مصاحبهكننده، پس از سازماندهي اطلاعات جمعآوريشده از متخصصان يا مصاحبه شوندگان، آنها را به قوانين قابل فهم براي كامپيوتر به صورت (if-then) موسوم به قوانين ساخت (production rules) تبديل ميكند. ●دفتر ماهنامه شبكه در تهران قرار دارد. ●تهران در ايران قرار دارد. ● دفتر ماهنامه شبكه در ايران قرار دارد. مزايا و محدوديتهاي سيستمهاي خبره كاربرد سيستمهاي خبره ● طراحي و زمانبندي ●تصميمگيريهاي مالي چند سيستم خبره مشهور | |||
|
بازي با هوش - بررسي هوشمصنوعي در بازيهاي كامپيوتري | ||||||||||||||
|
| ||||||||||||||
|
شايد جواب اين سؤالات با پيشرفتهايي كه در بازسازيِ هوش در كامپيوتر شدهاست، در آينده تا حدودي دور از دسترس نباشد. هوشمصنوعي، بهويژه آنچه كه در بازيهاي كامپيوتري شاهد آن هستيم، روز به روز در حال نزديك شدن به مدل واقعي خود است. يك بازي كامپيوتري خوب، بازياي است كه هر نكتهاي را در اين دنياي مجازي بهتر و واقعيتر به دنياي حقيقي ربط دهد. به همين منظور داشتن حريفي قدرتمند و انساننما لازمه بازسازي هوش و تفكرات انساني است. بازيهاي تأثيرگذار در هوشمصنوعي
شكل 1 هوشمصنوعي در بازيهاي استراتژيِ بيدرنگ هوشمصنوعي در بازيهاي ورزشي شكل 2 شكل 3 محبوبترين الگوريتمهاي هوشمصنوعي به كار رفته در بازيهاي كامپيوتري الگوريتمِ*A شكل 4
شكل 5 شبكه عصبي مصنوعي و الگوريتمهاي پيشرفته در بازيهاي كامپيوتري
شكل 6
هوش مصنوعيِ Implant سخن آخر | ||||||||||||||
الگوریتم کلونی مورچهها
From دانشنامه هوش مصنوعی
مورچه ها در مسیرهای عبوری خود ماده شیمیایی بجا می گذارند که بوسیله این ماده مورچه ها هنگام پیدا کردن مواد غذایی دیگر همنوعان خود را با خبر می سازند. مورچه هایی که مسیر منتهی به ماده غذایی را طی می کنند هم از خود ماده شیمیایی را بجا می گذارند. به این ترتیب هر مورچه ای مسیری را دنبال می کند که مورچه های بیشتری از آنجا عبور کرده باشند و این یعنی کوتاهترین مسیر تا غذا.
در دنیای الگوریتمها برای مسئله کوتاهترین مسیر راه حلهای زیادی ارائه شده که یکی از این راه حلهای به نسبت جدید همین الگوریتم کلونی مورچه ها است.
فهرست مندرجات[مخفی شود] |
مقدمه
انسان همیشه برای الهام گرفتن به جهان زنده پیرامون خود نگریسته است. یکی از بهترین طرح های شناخته شده، طرح پرواز انسان است که ابتدا لئورناردو داوینچی(1519-1452) طرحی از یک ماشین پرنده را بر اساس ساختمان بدن خفاش رسم نمود. چهار صد سال بعد کلمان آدر ماشین پرنده ای ساخت که دارای موتور بود و بجای بال از ملخ استفاده می کرد.
هم اکنون کار روی توسعه سیستم های هوشمند با الهام از طبیعت از زمینه های خیلی پرطرفدار هوش مصنوعی است. الگوریتمهای ژنتیک که با استفاده از ایده تکاملی داروینی و انتخاب طبیعی مطرح شده، روش بسیار خوبی برای یافتن مسائل بهینه سازیست. ایده تکاملی داروینی بیانگر این مطلب است که هر نسل نسبت به نسل قبل دارای تکامل است و آنچه در طبیعت رخ می دهد حاصل میلیون ها سال تکامل نسل به نسل موجوداتی مثل مورچه است.
الگوریتم کلونی مورچه برای اولین بار توسط دوریگو (Dorigo) و همکارانش به عنوان یک راه حل چند عامله (Multi Agent) برای مسائل مشکل بهینه سازی مثل فروشنده دوره گرد (TSP :Traveling Sales Person) ارائه شد.
عامل هوشند (Intelligent Agent) موجودی است که از طریق حسگر ها قادر به درک پیرامون خود بوده و از طریق تاثیر گذارنده ها می تواند روی محیط تاثیر بگذارد.
الگوریتم کلونی مورچه الهام گرفته شده از مطالعات و مشاهدات روی کلونی مورچه هاست. این مطالعات نشان داده که مورچه ها حشراتی اجتماعی هستند که در کلونی ها زندگی می کنند و رفتار آنها بیشتر در جهت بقاء کلونی است تا درجهت بقاء یک جزء از آن. یکی از مهمترین و جالبترین رفتار مورچه ها، رفتار آنها برای یافتن غذا است و بویژه چگونگی پیدا کردن کوتاهترین مسیر میان منابع غذایی و آشیانه. این نوع رفتار مورچه ها دارای نوعی هوشمندی توده ای است که اخیرا مورد توجه دانشمندان قرار گرفته است.باید تفاوت هوشمندی توده ای(کلونی) و هوشمندی اجتماعی را روشن کنیم.
در هوشمندی اجتماعی عناصر میزانی از هوشمندی را دارا هستند. بعنوان مثال در فرآیند ساخت ساختمان توسط انسان، زمانی که به یک کارگر گفته میشود تا یک توده آجر را جابجا کند، آنقدر هوشمند هست تا بداند برای اینکار باید از فرغون استفاده کند نه مثلا بیل!!! نکته دیگر تفاوت سطح هوشمندی افراد این جامعه است. مثلا هوشمندی لازم برای فرد معمار با یک کارگر ساده متفاوت است.
در هوشمندی توده ای عناصر رفتاری تصادفی دارند و بین آن ها هیچ نوع ارتباط مستقیمی وجود ندارد و آنها تنها بصورت غیر مستقیم و با استفاده از نشانه ها با یکدیگر در تماس هستند. مثالی در این مورد رفتار موریانه ها در لانه سازیست.
جهت علاقه مند شدن شما به این رفتار موریانه ها وتفاوت هوشمندی توده ای و اجتماعی توضیحاتی را ارائه می دهم :
فرآیند ساخت لانه توسط موریانه ها مورد توجه دانشمندی فرانسوی به نام گرس قرار گرفت. موریانه ها برای ساخت لانه سه فعالیت مشخص از خود بروز می دهند. در ابتدا صدها موریانه به صورت تصادفی به این طرف و آن طرف حرکت می کنند. هر موریانه به محض رسیدن به فضایی که کمی بالاتر از سطح زمین قرار دارد شروع به ترشح بزاق می کنند و خاک را به بزاق خود آغشته می کنند. به این ترتیب گلوله های کوچک خاکی با بزاق خود درست می کنند. علیرغم خصلت کاملا تصادفی این رفتار، نتیجه تا حدی منظم است. در پایان این مرحله در منطقه ای محدود تپه های بسیار کوچک مینیاتوری از این گلوله های خاکی آغشته به بزاق شکل می گیرد. پس از این، همه تپه های مینیاتوری باعث می شوند تا موریانه ها رفتار دیگری از خود بروز دهند. در واقع این تپه ها به صورت نوعی نشانه برای موریانه ها عمل می کنند. هر موریانه به محض رسیدن به این تپه ها با انرژی بسیار بالایی شروع به تولید گلوله های خاکی با بزاق خود می کند. این کار باعث تبدیل شدن تپه های مینیاتوری به نوعی ستون می شود. این رفتار ادامه می یابد تا زمانی که ارتفاع هر ستون به حد معینی برسد. در این صورت موریانه ها رفتار سومی از خود نشان می دهند. اگر در نزدیکی ستون فعلی ستون دیگیری نباشد بلافاصله آن ستون را رها می کنند در غیر این صورت یعنی در حالتی که در نزدیکی این ستون تعداد قابل ملاحظه ای ستون دیگر باشد، موریانه ها شروع به وصل کردن ستونها و ساختن لانه می کنند.
تفاوتهای هوشمندی اجتماعی انسان با هوشمندی توده ای موریانه را در همین رفتار ساخت لانه می توان مشاهده کرد. کارگران ساختمانی کاملا بر اساس یک طرح از پیش تعیین شده عمل می کنند، در حالی که رفتار اولیه موریانه ها کاملا تصادفی است. علاوه بر این ارتیاط مابین کارگران سختمانی مستقیم و از طریق کلمات و ... است ولی بین موریانه ها هیچ نوع ارتباط مستقیمی وجود ندارد و آنها تنها بصورت غیر مستقیم و از طریق نشانه ها با یکدیگر در تماس اند. گرس نام این رفتار را Stigmergie گذاشت، به معنی رفتاری که هماهنگی مابین موجودات را تنها از طریق تغییرات ایجاد شده در محیط ممکن می سازد.
بهینه سازی مسائل بروش کلونی مورچه(ACO)
همانطور که می دانیم مسئله یافتن کوتاهترین مسیر، یک مسئله بهینه سازیست که گاه حل آن بسیار دشوار است و گاه نیز بسیار زمانبر. بعنوان مثال مسئله فروشنده دوره گرد(TSP). در این مسئله فروشنده دوره گرد باید از یک شهر شروع کرده، به شهرهای دیگر برود و سپس به شهر مبدا بازگردد بطوریکه از هر شهر فقط یکبار عبور کند و کوتاهترین مسیر را نیز طی کرده باشد. اگر تعداد این شهرها n باشد در حالت کلی این مسئله از مرتبه (n-1)! است که برای فقط 21 شهر زمان واقعا زیادی می برد:
روز1013*7/1 = S1016*433/2 = ms10*1018*433/2 = !20
با انجام یک الگوریتم برنامه سازی پویا برای این مسئله ، زمان از مرتبه نمایی بدست می آید که آن هم مناسب نیست. البته الگوریتم های دیگری نیز ارائه شده ولی هیچ کدام کارایی مناسبی ندارند. ACO الگوریتم کامل و مناسبی برای حل مسئله TSP است.
مورچه ها چگونه می توانند کوتاهترین مسیر را پیدا کنند؟
مورچه ها هنگام راه رفتن از خود ردی از ماده شیمیایی فرومون(Pheromone) بجای می گذارند البته این ماده بزودی تبخیر می شد ولی در کوتاه مدت بعنوان رد مورچه بر سطح زمین باقی می ماند. یک رفتار پایه ای ساده در مورچه های وجود دارد :
آنها هنگام انتخاب بین دو مسیر بصورت احتمالاتی( Statistical) مسیری را انتخاب می کنند که فرومون بیشتری داشته باشد یا بعبارت دیگر مورچه های بیشتری قبلا از آن عبور کرده باشند. حال دقت کنید که همین یک تمهید ساده چگونه منجر به پیدا کردن کوتاهترین مسیر خواهد شد .
مورچه های روی مسیر AB در حرکت اند (در دو جهت مخالف) اگر در مسیر مورچه ها مانعی قرار دهیم مورچه ها دو راه برای انتخاب کردن دارند. اولین مورچه ازA می آید و بهC می رسد، در مسیر هیچ فرومونی نمی بیند بنابر این برای مسیر چپ و راست احتمال یکسان می دهد و بطور تصادفی و احتمالاتی مسیر CED را انتخاب می کند. اولین مورچه ای که مورچه اول را دنبال می کند زودتر از مورچه اولی که از مسیر CFD رفته به مقصد می رسد. مورچه ها در حال برگشت و به مرور زمان یک اثر بیشتر فرومون را روی CED حس می کنند و آنرا بطور احتمالی و تصادفی ( نه حتما و قطعا) انتخاب می کنند. در نهایت مسیر CED بعنوان مسیر کوتاهتر برگزیده می شود. در حقیقت چون طول مسیر CED کوتاهتر است زمان رفت و برگشت از آن هم کمتر می شود و در نتیجه مورچه های بیشتری نسبت به مسیر دیگر آنرا طی خواهند کرد چون فرومون بیشتری در آن وجود دارد.
نکه بسیار با اهمیت این است که هر چند احتمال انتخاب مسیر پر فرومون ت توسط مورچه ها بیشتر است ولی این کماکان احتمال است و قطعیت نیست. یعنی اگر مسیر CED پرفرومون تر از CFD باشد به هیچ عنوان نمی شود نتیجه گرفت که همه مورچه ها از مسیرCED عبور خواهند کرد بلکه تنها می توان گفت که مثلا 90% مورچه ها از مسیر کوتاهتر عبور خواهند کرد. اگر فرض کنیم که بجای این احتمال قطعیت وجود می داشت، یعنی هر مورچه فقط و فقط مسیر پرفرومون تر را انتخاب میکرد آنگاه اساسا این روش ممکن نبود به جواب برسد. اگر تصادفا اولین مورچه مسیرCFD(مسیر دورتر) را انتخاب می کرد و ردی از فرومون بر جای می گذاشت آنگاه همه مورچه ها بدنبال او حرکت می کردند و هیچ وقت کوتاهترین مسیر یافته نمی شد. بنابراین تصادف و احتمال نقش عمده ای در ACO بر عهده دارند.
نکته دیگر مسئله تبخیر شدن فرومون بر جای گذاشته شده است. برفرض اگر مانع در مسیر AB برداشته شود و فرومون تبخیر نشود مورچه ها همان مسیر قبلی را طی خواهند کرد. ولی در حقیقت این طور نیست. تبخیر شدن فرومون و احتمال به مورچه ها امکان پیدا کردن مسیر کوتاهتر جدید را می دهند.
مزیتهای ACO
همانطور که گقته شد «تبخیر شدن فرومون» و «احتمال-تصادف» به مورچه ها امکان پیدا کردن کوتاهترین مسیر را می دهند. این دو ویژگی باعث ایجاد انعطاف در حل هرگونه مسئله بهینه سازی می شوند. مثلا در گراف شهرهای مسئله فروشنده دوره گرد، اگر یکی از یالها (یا گره ها) حذف شود الگوریتم این توانایی را دارد تا به سرعت مسیر بهینه را با توجه به شرایط جدید پیدا کند. به این ترتیب که اگر یال (یا گره ای) حذف شود دیگر لازم نیست که الگوریتم از ابتدا مسئله را حل کند بلکه از جایی که مسئله حل شده تا محل حذف یال (یا گره) هنوز بهترین مسیر را داریم، از این به بعد مورچه ها می توانند پس از مدت کوتاهی مسیر بهینه(کوتاهترین) را بیابند.
کاربردهای ACO
از کاربردهای ACO می توان به بهینه کردن هر مسئله ای که نیاز به یافتن کوتاهترین مسیر دارد ، اشاره نمود :
- مسیر یابی داخل شهری و بین شهری
- مسیر یابی بین پست های شبکه های توزیع برق ولتاژ بالا
- مسیر یابی شبکه های کامپیوتری
مسیر یابی شبکه های کامپیوتری با استفاده از ACO
در ابتدا مقدمه ای از نحوه مسیر یابی در شبکه های کامپیوتری را توضیح خواهیم داد :
اطلاعات بر روی شبکه بصورت بسته های اطلاعاتی کوچکی (Packet) منتقل می شوند. هر یک از این بسته ها بر روی شبکه در طی مسیر از مبدا تا مقصد باید از گره های زیادی که مسیریاب (Router) نام دارند عبور می کنند. در داخل هر مسیریاب جدولی قرار دارد تا بهترین و کوتاهترین مسیر بعدی تا مقصد از طریق آن مشخص می شود، بنابر این بسته های اطلاعاتی حین گذر از مسیریاب ها با توجه به محتویات این جداول عبور داده می شوند.
روشی بنام ACR : Ant Colony Routering پیشنهاد شده که بر اساس ایده کلونی مورچه به بهینه سازی جداول می پردازید و در واقع به هر مسیری با توجه به بهینگی آن امتیاز می دهد. استفاده از ACR به این منظور دارای برتری نسبت به سایر روش هاست که با طبیعت دینامیک شبکه سازگاری دارد، زیرا به عنوان مثال ممکن است مسیری پر ترافیک شود یا حتی مسیر یابی (Router) از کار افتاده باشد و بدلیل انعطاف پذیری که ACO در برابر این تغییرات دارد همواره بهترین راه حل بعدی را در دسترس قرار می دهد.
|
|
|
هوش مصنوعي (Artificial Intelligence) که به اختصار AIخوانده مي شود ، يکي از جذاب ترين شاخه هاي تحقيقاتي فلسفي است. |
ایا رايانه مي تواند فکر کند؟
هوش مصنوعي (Artificial Intelligence) که به اختصار AIخوانده مي شود ، يکي از جذاب ترين شاخه هاي تحقيقاتي فلسفي است.
پيدايش رايانه در صحنه زندگي بشر تحولات عمده اي را به وجود آورد ، حوزه فلسفه نيز از اين تحولات بي نصيب نبوده است. فلاسفه پرسشهاي فلسفي زيادي راجع به تفاوت هاي ذهن انسان با رايانه مطرح کرده اند که همه آنها به طرح بحث هوش مصنوعي انجاميد.
هدف هوش مصنوعي فهم سرشت هوش بشري از راه بررسي ساختار برنامه هاي رايانه اي و نحوه حل مسائل با رايانه است. به اعتقاد متخصصان اين رشته ، اين بررسي مي تواند نحوه عمل و جزييات هوش بشر را نشان دهد.
نخست بايد مقصود متخصصان هوش مصنوعي را از اصطلاح هوش Intelligence روشن کنيم ؛ چراکه نگاه آنان نسبت به مقوله هوش و مفاهيم مرتبط مانند عقل ، ذهن و غيره کاملا متفاوت است. امروزه در ميان دانشهاي موجود ، اصطلاح هوش در روان شناسي بسيار کاربرد دارد و روان شناسان از بهره هوشي افراد و امور مرتبط با آن بحث مي کنند. ولي در هوش مصنوعي اين اصطلاح کاربردي کاملا متفاوت دارد.
در هوش مصنوعي براي شروع کار ، تعريفي عملي از هوش ارائه مي شود. معمولا فلاسفه به تعاريف مفهومي بيشتر رغبت دارند و دوست دارند مفهوم هوش و عقل و غيره را روشن کنند. اما بنا به دلايلي ، متخصصان هوش مصنوعي تعريف عملي را برگزيده اند. يک دليل اين گزينش به اين نکته برمي گردد که نزاعهاي مفهومي ؛ يا نزاع براي تعريف مفاهيم فايده چنداني ندارد و غالبا بي نتيجه پايان مي يابد. اگر بخواهيم با تعريف مفاهيم هوش و تفکر رابطه آنها را بيابيم و ببينيم آيا هوش همان تفکر است يا نه ، بيشتر در نزاعي لفظي درگير خواهيم شد. زيرا بي ترديد دو واژه مذکور از لحاظ مفهومي تفاوت دارند و يک چيز را نمي رسانند و ادعاي آنان ، تساوي مفهومي اين دو واژه نيست.
بلکه چنان که بعدا توضيح خواهيم داد ، به نظر آنان اين دو اصطلاح يک حقيقت قابل اندازه گيري را نشان مي دهند.
ويژگي هاي هوش مصنوعي
هوش مصنوعي براي حل مساله برنامه خاصي را دنبال مي کند. توجه به ويژگي هاي هوش مصنوعي در مقام استفاده از اين نوع برنامه ها سودمند است. 5 ويژگي از ميان آنها اهميت خاصي دارند:
بازنمايي نمادين: ويژگي اول اين است که هوش مصنوعي از نمادهاي عددي در حل مسائل استفاده مي کند. هوش مصنوعي بر پايه دستگاه دوگاني ؛ صفر و يک مسائل را حل مي کند. از اين رو برخي مخالفان گفته اند مهمترين نقص هوش مصنوعي آن است که غير از عدد صفر و يک را نمي فهمد. به تعبير ديگر ، رايانه فقط بله يا نه را مي فهمد و نمي تواند حالات واسطه بين آن دو را بفهمد.در مقابل طرفداران هوش مصنوعي گفته اند هوش طبيعي (هوش انسان) هم بر پايه دستگاه دوگاني پديده ها و امور مختلف را مي فهمد؛ اگر سلولهاي عصبي انسان را بررسي کنيم ، درمي يابيم فهم بشري بر حالت دوگاني استوار شده است و دستگاه عصبي مفاهيم و تصورات را به صورت حالات دوگاني تبديل مي کند. البته نشان دادن نحوه اين تبديل در مفاهيم و ادراکات پيچيده دشوار است. اما بررسي برنامه هاي هوش مصنوعي فهم اين امر دشوار را آسان کرده است.
روش اکتشافي: ويژگي دوم هوش مصنوعي به نوع مسائلي که حل مي کند ، مربوط مي شود. اين مسائل معمولا راه حل الگوريتمي ندارند. مراد از الگوريتم سلسله اي از مراحل منطقي است که به حل مساله مي انجامد. هوش اين مراحل را گام به گام طي مي کند تا به حل مساله دست مي يابد. به عبارت ديگر ، در الگوريتم پيمودن اين مراحل به طور طبيعي رسيدن به نتيجه را تضمين مي کند. مسائلي که هوش مصنوعي حل مي کند ، معمولا راه حل الگوريتمي ندارند ؛ به اين معنا که معمولا نمي توانيم براي حل اين مسائل الگوريتمي يا به عبارت ديگر ، سلسله اي از مراحل منطقي را بيابيم که پيمودن آنها رسيدن به نتيجه را تضمين کند.
از اين رو، هوش مصنوعي در حل مسائل به روش اکتشافي ؛ يعني به روشي که پيمودن آن رسيدن به نتيجه را تضمين نمي کند ، روي مي آورد.
هوش مصنوعي بر پايه دستگاه دوگاني مسائل را حل مي کند مخالفان مي گويند مهمترين نقص هوش مصنوعي آن است که غير از عدد صفر و يک را نمي فهمد
در روش اکتشافي راههاي متعددي براي حل مساله وجود دارد که اختيار يکي از آنها باز مجالي براي اختيار ديگر راهها باقي مي گذارد و پيمودن يکي از آنها مانع از روي آوردن به بقيه نمي شود. درنتيجه ، برنامه هايي که راه حل تضميني دارند جزو برنامه هاي رايانه اي به شمار نمي آيند.
مثلا برنامه هاي حل معادلات درجه دوم جزو برنامه هاي رايانه اي به شمار نمي آيد ؛ زيرا براي حل آن الگوريتم خاصي وجود دارد.
برنامه هاي بازي شطرنج زمينه پر خير و برکتي براي هوش مصنوعي بوده است ؛ زيرا روش شناخته شده اي براي تعيين بهترين حرکت در مرحله خاصي از اين بازي وجود ندارد. زيرا اولا تعداد احتمالات موجود در هر حالتي تا حدي زياد است که نمي توان جستجوي کاملي را انجام داد. ثانيا آگاهي ما از منطق حرکتهايي که بازيکنان انجام مي دهند ، بسيار اندک است. اين ناآگاهي تا حدي به ناخودآگاهانه بودن اين حرکتها برمي گردد و البته در برخي موارد هم بازيکنان از روي عمد منطق خود را آشکار نمي کنند.
هربرت دريفوس يکي از مخالفان هوش مصنوعي با توجه به نکته فوق ادعا کرده است که هيچ برنامه اي براي رسيدن به سطح يک بازيگر خوب شطرنج وجود ندارد. اما ظهور برنامه هاي پيشرفته شطرنج از سال 1985 به بعد خطاي ادعاي دريفوس را روشن ساخت.
بازنمايي معرفت: برنامه هاي هوش مصنوعي با برنامه هاي آماري در بازنمايي معرفت تفاوت دارند ؛ به اين معنا که برنامه هاي نخست از تطابق عمليات استدلالي نمادين رايانه با عالم خارج حکايت مي کنند. مي توانيم اين نکته را با مثال ساده اي توضيح دهيم.
بازنمايي معرفت عنواني براي مجموعه اي از مسائل راجع به معرفت است از قبيل:
1- معرفت مورد نظر در هوش مصنوعي چيست ، چه انواعي و چه ساختاري دارد؟
2- چگونه بايد معرفت را در رايانه بازنمايي کرد؟
3- بازنمايي چه نوع معرفتي را آشکار مي سازد؟ و چه چيزي مورد تاکيد قرار مي گيرد؟
4- معرفت را بايدچگونه به دست آوردوچگونه بايدتغييرداد؟
اطلاعات ناقص: هوش مصنوعي مي تواند در حالتي که همه اطلاعات مورد نياز در دسترس نيستند ، به حل مساله دست بيابد. اين حالت در بسياري از موارد پزشکي رخ مي دهد اطلاعاتي که پزشک براي تشخيص بيماري در دست دارد ، تشخيص بيماري را ممکن نمي کند و او هم فرصت زيادي براي درمان ندارد. از اين رو بايد سريعا تصميمي بگيرد.
نبود اطلاعات لازم موجب مي شود نتيجه به دست آمده غيريقيني باشد و يا احتمال خطا در آن باشد. معمولا ما در زندگي عملي با فقدان اطلاعات لازم تصميماتي را مي گيريم و همواره احتمال خطا در اين تصميمات وجود دارد.
اطلاعات متناقض: هوش مصنوعي مي تواند درصورتي که با اطلاعات متناقض روبه رو شود حل مناسبي براي مساله پيدا کند. هوش مصنوعي در چنين موردي بهترين راه را براي حل مساله و رفع تناقض انتخاب کند.
دو فرضيه در هوش مصنوعي
در هوش مصنوعي فرضيه هاي بسياري مورد بحث قرار مي گيرد. در ميان اين فرضيه 2 فرضيه در مقايسه با بقيه کليدي ترند. فرضيه نخست نسبت به فرضيه دوم معتدل تر و ادعايي حداقلي دربر دارد. اين دو فرضيه به ترتيب عبارتند از:
1- فرضيه دستگاه نمادها: مفاد اين فرضيه اين است که: «رايانه را مي توانيم به نحوي برنامه ريزي کنيم که بينديشد». تقرير ديگر از فرضيه فوق اين است که: «رايانه مي تواند بينديشد.»
2- فرضيه قوي دستگاه نمادها: مفاد اين فرضيه هم چنين است :«تنها رايانه مي تواند فکر کند»
پيداست که فرضيه دوم در مقايسه با فرضيه نخست افراطي تر است و ادعايي حداکثري دربر دارد. چرا که بر طبق آن ، هر چيزي که فکر مي کند ، حتي موجودات طبيعي ، بايد رايانه باشد. از اين رو ذهن بشر هم دستگاهي جامع از نمادهاست و تفکر بشر هم از لحاظ ماهيت با تفکري که درخصوص رايانه به کار مي رود ، تفاوت ندارد. در هر دو مورد تفکر همان توانايي دستکاري و جابه جا کردن نمادهاست.
نويسنده : دکتر عليرضا قائمي نيا
هر قطره اشک امضاي خداست , پاي چشمهايي که آسمان در آنها خلاصه شده
|
پرواز با بال ژنتيك در دنياي جداول سودوكو | ||||||||||||||||||
|
| ||||||||||||||||||
|
1- صورت مسئله کد 1 کد 2 کد 3 کد 4 کد 5 مسئلهاي که ميخواهيم در اين مقاله حل کنيم، بدين صورت است که فرض کنيد يک جدول سودوکوي خالي داريد و از شما ميخواهند مثلاً پنجاه راه حل معرفي کنيد. يعني به پنجاه جدول که خاصيت سودوکو داشته باشد. توجه کنيد که در مسئله ما همه خانهها خالي هستند. کد 6 کد 7 | ||||||||||||||||||
دكتر حميد رضا جعفريه
نگارمعتمدي
الهه ملايي
چكيده
در عصر حاضر در بسياري از موارد ماشين ها جايگزين انسانها شده اند و بسياري از كارهاي فيزيكي كه در گذشته توسط انسانها انجام مي گرفت امروزه توسط ماشين ها صورت مي گيرد . اگرچه قدرت كامپيوترها در ذخيره، بازيابي اطلاعات و اتوماسيون اداري ،..... غير قابل انكار است، اما همچنان مواردي وجود دارد كه انسان ناچار است خودش كارها را انجام دهد. اما به طور كلي ، موارد مرتبط با ماشين شامل سيستم هايي است كه در آن به علت ارتباطات پيچيده بين اجزا، مغز انسان از درك رياضي اين ارتباطات قاصر است . مغز انسان به مرور زمان با مشاهده توالي رفتارهاي سيستم و گاه آزمايش نتيجه اي كه بر اثر دستكاري يكي از اجزاي سيستم به دست مي آيد تا حدي مي تواند عادتهاي سيستم را شناسايي كند . اين روند يادگيري بر اثر مشاهده مثالهاي متنوع از سيستم ، به كسب تجربه منجر مي شود. در چنين سيستمهايي مغز قادر به تجزيه و تحليل داخلي سيستم نيست و تنها با توجه به رفتارهاي خارجي، عملكرد داخلي سيستم را تخمين مي زند و عكس العملهاي آن را پيش بيني مي كند.
چگونگي اداره حجم انبوه اطلاعات و استفاده موثر از آنها در بهبود تصميم گيري ، از موضوعات بحث برانگيز در عصرحاضر است. يكي از مسائل مهم تحقيقاتي در زمينه علوم كامپيوتر، پياده سازي مدلي شبيه به سيستم داخلي مغز انسان براي تجزيه و تحليل سيستم هاي مختلف بر اساس تجربه است .در اين راستا شبكه هاي عصبي يكي از پوياترين حوزههاي تحقيق در دوران معاصر هستند كه افراد متعددي از رشته هاي گوناگون علمي را به خود جلب كرده است .استفاده از شبكههاي عصبي و الگوريتم هاي ژنتيك در حل مسائل پيچيده كاربردي اين روزها بيش از بيش رواج يافته است . در اين مقاله پس از معرفي اجمالي شبكه هاي عصبي و الگوريتم هاي ژنتيك، ارتباط وسهم آن ها در تصميم گيري در حوزه تجارت وكسب وكار مورد بررسي قرارگرفته است .
مقدمه
توجه به كاربرد تكنيك هاي هوش مصنوعي و ابزارهاي مدل سازي در حوزه كسب و كار به طور فزاينده اي در حال افزايش است. در اين راستا سيستم هاي خبره جايگاه ويژه اي يافته اند. در چند دهه گذشته دو عنوان شبكه هاي عصبي و الگوريتم هاي ژنتيك از موضوعاتي بوده اند كه توجه بسياري از دانشگاهيان را به خود جلب كرده اند . اين دو به عنوان ابزاري نيرومند در حل مسائلي كه ديگر توسط متدلوژي ها و روش هاي سنتي گذشته قابل حل نبودند، شناخته شده و مورد استفاده قرارگرفته اند. اين روزها استفاده از آنها به زندگي اجتماعي ما نيز تسري يافته تا جايي كه كاربرد آنها در تصميم گيري ها نقش حياتي يافته است . اين مقاله شواهدي را مبتني برامكان استفاده اخلاقي از شبكه هاي عصبي و الگوريتم ها ي ژنتيك كه به منجر به تصميم گيريهاي موفقيت آميز در ارتباط با مسائل مرتبط با كسب و كار مي شود ارائه مي كند . براي اين منظور لازم است كه بررسي تطبيقي اي در رابطه با تلاشهاي ديگر محققان در قالب ادبيات موضوع صورت گيرد . به همين دليل ، در تحقيق ما بر نقش محققان عملياتي در حوزه كاربرد شبكه هاي عصبي و الگوريتم هاي ژنتيك تأكيد شده است . همچنين در كنار ايجاد چنين پايگاهي براي محققان ، به سوالات اساسي زير نيز پاسخ داده شده است :
-1 آيا كاربردهاي سيستم هاي مبتني بر هوش مصنوعي مي تواند از فرايندهاي تصميم گيري شركت شما پشتيباني كند ؟
-2 آيا اسناد ودلايل و مدارك معتبري براي اثبات اين ادعا وجود دارد ؟
-3 آيا اينها تنها يك تئوري و ايده دانشگاهي است يا داراي قابليت كاربرد و تعميم نيز هست؟
به عبارت ديگر ، با درنظر گرفتن مطالعات مشابه در رابطه با استفاده از سيستم هاي خبره در كسب و كار، نويسندگان و محققان در آرزوي دستيابي به فرصتي جهت بحث مقايسه اي در باره اين سه متدلوژي هوشمند هستند (متاكسيوس و پساراس 2003 ) . يكي از مهم ترين و بحثبرانگيزترين تحقيقات ، بررسي صورت گرفته توسط لايبوتز (2001) است كه نتيجه آن تحت عنوان «سيستمهاي خبره و كاربرد آنها» مطرح شد.
ساختار اين مقاله به صورت زير است: در ابتدا مروري بر پايه و اساس شبكه هاي عصبي و الگوريتم هاي ژنتيك خواهيم داشت و سپس به بازنگري جامعي بر كاربرد شبكه هاي عصبي و الگوريتم هاي ژنتيك در حوزه كسب و كار خواهيم پرداخت و نهايتا آن را با نتايج و پيشنهاداتي براي تحقيقات كاربردي آينده به پايان خواهيم رساند .
فناوري شبكه عصبي
شبكه هاي عصبي يك تكنيك پردازش اطلاعات مبتني بر روش سيستم هاي عصبي بيولوژيكي مانند مغز و پردازش اطلاعات است. مفهوم بنيادي شبكه هاي عصبي ، ساختار سيستم پردازش اطلاعات است كه از تعداد زيادي واحدهاي پردازشي (نورون) مرتبط با شبكه ها تشكيل شده اند. سلول عصبي بيولوژيكي يا نورون، واحد سازنده سيستم عصبي در انسان است. يك نورون ازبخشهاي اصلي زير تشكيل شده است :
1) بدنه سلولي كه هسته در آن است و ساير قسمتهاي سلولي از آن منشأ گرفته است.
2) هسته
3) آكسون كه وظيفه آن انتقال اطلاعات از سلول عصبي است.
4) دندريت كه وظيفه آن انتقال اطلاعات از سلول هاي ديگر به سلول عصبي است
يك سيستم شبكه عصبي از تكنيكهاي مورد استفاده انسان در يادگيري از طريق استناد به مثالهايي از حل مسائل استفاده ميكند (هايكين ،1994 ) . هر نورون وروديهاي متعددي را پذيراست كه با يكديگر به طريقي جمع مي شوند . اگر در يك لحظه تعداد ورودي هاي فعال نرون به حد كفايت برسد نرون نيز فعال شده و آتش مي كند . در غير اينصورت نورون به صورت غير فعال و آرام باقي مي ماند .فعاليت هر نورون از مجموعه اي از يك يا چند ورودي ، عمليات و وظيفه خروجي براي محاسبه خروجيهايش تشكيل شده است . عملكرد اساسي اين مدل مبتني بر جمع كردن وروديها و به دنبال آن به وجود آمدن يك خروجي است . وروديهاي نورون از طريق دندريت ها كه به خروجي نورون هاي ديگر از طريق سيناپس متصل شده اند وارد مي شوند . بدنه سلولي كليه اين وروديها را دريافت مي كند و چنانچه جمع اين مقاديراز مقداري كه به آن آستانه گفته مي شود بيشتر شود در اصطلاح بر انگيخته شده يا آتش مي كند و درغير اين صورت خروجي نورون روشن يا خاموش خواهد شد. مدل پايه اي نورون به صورت شكل 1 تعريف مي گردد .

امروزه شبكه هاي عصبي در كاربردهاي مختلفي از قبيل طبقه بندي داده ها و تشخيص الگو از طريق فرايند يادگيري كه خود شامل مسائلي مانند تشخيص خط و شناسايي گفتار وپردازش تصوير است به كار مي روند .به مثابه سيستم هاي بيولوژيكي ، آموزش شامل تنظيم پيوندهاي بين سيناپسها كه درهر نورون وجود دارند است. به عبارت ديگر، اطلاعات آموخته شده به شكل ارزشهاي عددي بهنام «وزن» كه به هر واحد پردازش شبكه اختصاص داده ميشود ، ذخيره مي شوند .به طور كلي ، شبكه هاي عصبي مي توانند بين :
روشهاي اتصال نورون ها، انواع روشهاي ويژه محاسبه عمليات نورون ها، روش انتقال الگوي عمليات از خلال شبكه و روشهاي يادگيري آنها كه شامل نرخ يادگيري است، تمايز قائل شوند . با در نظر گرفتن ارتباطات بين نورون ها ، مي توان بين شبكه هاي لايه دار و بدون لايه تمايز قايل شد . شبكه هاي لايه دار گروهي ازنورون ها هستند كه در لايه هايي مجتمع گرديده اند كه بين لايه ورودي و خروجي - كه تنها پيوند خارجي دارند - يك يا چند لايه پنهان وجود دارد . داده هاي ورودي از لايه ورودي به وسيله لايه هاي پنهان (لايه مياني ) به لايه خروجي منتقل ميشوند . سيگنالها ي جاري در شبكه هاي لايه دار به سمت جلو حركت مي كنند كه در اصطلاح فني به آنها پيش خور گفته مي شود در حالي كه شبكه هاي بدون لايه داراي گره هاي اضافي بازخور هستند كه از تقسيمات درست لايه ها جلوگيري مي كنند .
ساختار پيوندها و تماسها و تعداد لايهها و نورون ها تعيين كننده معماري شبكه است كه بايستي قبل از استفاده از شبكههاي عصبي تنظيم شود . همان طور كه در شكل 2 نمايش داده شده است ، اگرچه در موارد مشخصي مي توان با موفقيت از شبكه هاي عصبي تك لايه استفاده كرد اما رسم بر اين است كه شبكه هاي عصبي حداقل داراي 3 لايه باشند ( لايه ورودي ،لايه پنهان يا لايه مياني و لايه خروجي ) .
قبل از آنكه شبكه آموزش داده شود، اوزان اختصاصي كوچك و به صورت تصادفي ارزش گذاري مي شوند . در خلال روند آموزش ، اوزان شبكه به شكل تدريجي تعديل مي شود تا جايي كه محرز شود كه كاملاً روابط فرا گرفته شده است . اين شكل از يادگيري ، يادگيري با سرپرست ناميده مي شود . وقتي يك الگو در لايه ورودي بهكار گرفته مي شود تا آن جا جلو مي رود كه ستانده نهايي در لايه خروجي محاسبه شود . ستانده شبكه با نتايج مطلوب مورد انتظار مدل مقايسه و خطاهاي موجود محاسبه ميشود .اين خطاها مجدداً به عنوان بازخورد به شبكه بازمي گردد تا تغييرات لازم در اوزان پيوندها براي كاهش خطا صورت گيرد .مجموعه اي از مثالهاي آموزشي داده _ ستانده مكرراً ارائه مي شود. تا جايي كه مجموع امتيازات خطا به سطح قابل قبولي كاهش يابد . در اين جايگاه م توان آن شبكه را به عنوان شبكه اي آموزش ديده در نظر گرفت . اما در روش ديگري كه يادگيري بدون سرپرست ناميده مي شود، شبكه عصبي بايد بدون كمك گرفتن از جهان ، بتوانند كار آموزش را انجام دهد . واقعيت آن است كه در عمل ازروش يادگيري باسرپرست و يا حداكثر از روشهاي تركيبي استفاده مي شود و فرايند آموزش بدون سرپرست به شكل خالص تنها وعدهاي است كه شايد بتواند در آينده تحقق يابد . در حال حاضر و در كاربردهاي پيشرفته ، از روش آموزش بدون سرپرست براي ايجاد تنظيمات اوليه برروي سيگنال هاي ورودي شبكه هاي عصبي استفاده مي شود و باقي مراحل آموزش به روش با سرپرست ادامه مي يابد .

حوزه هاي كاربردي شبكه هاي عصبي در موضوعات زير است:
_ همبستگي ناشناخته بين ويژگيهاي مطلوب و ارزش متغيرهاي مسائل تصميم گيري (جايي كه راه حل مسائل ناشناخته است )
_ مسائلي كه داراي راه حل الگوريتم نيستند
_ جايي كه داده هاي ناقص وجود دارد
مزيت اصلي شبكه هاي عصبي ، قابليت فوق العاده آنها در يادگيري و نيز پايداري شان در مقابل اغتشاشات ناچيز ورودي است ( فاوست ، 1994) .به عنوان مثال اگر از روشهاي عادي براي تشخيص دستخط يك انسان استفاده كنيم ممكن است در اثر كمي لرزش دست ، اين روشها به تشخيص غلطي برسند در حالي كه يك شبكه عصبي كه به صورت مناسب آموزش داده شده است حتي در صورت چنين اغتشاشي نيز به پاسخ درست خواهد رسيد .
درنتيجه ، تاكيد ما بر اين حقيقت است كه انتخاب شبكه درست با محاسبات صحيح، عامل اصلي در تضمين موفقيت عملكرد است .
فناوري الگوريتم ژنتيك
الگوريتم هاي ژنتيك روش قدرتمندي را براي توسعه اكتشافي مسائل بهينه سازي تركيبي مقياس بزرگ فراهم آورده است . انگيزه اصلي مطرح كردن الگوريتم ژنتيك مي تواند اين گونه عنوان شودكه «تكامل تدريجي» به شكل قابل ملاحظه اي در توسعه انواع وگونه هاي پيچيده از طريق مكانيزم هاي نسبتاً ساده تكميلي نمود يافته است . حال سوال اساسي اين است : پذيرش كدام ايده از تئوري تكامل تدريجي مي تواند به ما در حل مسائل اين قلمرو كمك كند ؟ اين سوال با توجه به غناي پديده تكامل تدريجي جوابهاي متفاوتي دارد. هالند و دي جانگ (1975) از نخستين كساني هستندكه با معرفي مفهوم الگوريتم ژنتيك به عنوان يك تكنيك جستجوي عمومي - كه از تكامل تدريجي بيولوژيك در قالب بقاي افراد اصلح و مبادله ساختارمند و تصادفي اطلاعات الگوبرداري مي كند- درصدد پاسخگويي به اين سوال برآمدند .
يك الگوريتم ژنتيك مسئله را به صورت مجموعه اي از رشته ها كه شامل ذرات ريزهستند كد گذاري مي كند ، سپس براي تحريك فرايند تكامل تدريجي ،تغييراتي را بر روي رشته ها ا عمال ميدارد. در مقايسه با الگوريتم هاي جستجوي محلي ، در جستجوي عمومي كه تنها يك راه حل قابل قبول وجود دارد ، الگوريتم هاي ژنتيك جامعه اي از افراد را در نظر ميگيرند . كـــار با مجموعه اي از افراد، امكان مطالعه ساختارها و ويژگيهاي اصلي افراد متفاوت را كه منجر به شناسايي و كشف راه حلهاي كارآمد تر مي شود، فراهم ميسازد . در طي مطالعه ، الگوريتم ژنتيك رشته هاي متناسب با ارزش را برمي گزيند و آن دسته از رشتههايي را كه تنــاسب كمتري با جمعيت مورد بررسي دارند حذف ميكنند .
مروري بر كاربردهاي تجاري
بعد از مروري بر پيشينه شبكه هاي عصبي و الگوريتم هاي ژنتيك و پيشرفتهاي آنها ، مي توان حوزه هاي كاربردي آنها را در كسب و كار شناسايي كرد. بنابر اين در اين قسمت به بررسي انواع مسائل تجاري كه به شكلي مناسب بهوسيله شبكه هاي عصبي و الگوريتم هاي ژنتيك قابل حل خواهند بود ، مي پردازيم . اما قبل از آن توضيحي مختصر در ارتباط با موضوعات مرتبط با اين حوزه خواهيم داد .
بازاريابي
«انجمن بازاريابي آمريكا» از ديدگاه مديريتي، بازاريابي را بدين گونه تعريف مي كند : بازاريابي يك فرايند اجتماعي و مديريتي است كه بهوسيله آن، افراد و گروهها ، نيازها و خواسته ها ي خود را از طريق توليد ، عرضه و مبادله كالاهاي مفيد و با ارزش با ديگران ، تأمين مي كنند . به طور كلي ، بازاريابي دانشي ناشناخته است كه با ويژگيهايي از قبيل عدم اطمينان بالا ، ساختار گمشده علّـي ودانشي ناكامل و گسترده قابل شناسايي است .بسياري از وظايف تصميم گيري و حل مسـئله به صورت بدون ساختار يا نيمه ساختار يافته انجام مي شود . به همين دلايل توسعه كاربرد شبكه هاي عصبي و الگوريتم هاي ژنتيك در بازاريابي نسبت به ساير حوزه هاي علم دشوارتر است .
در سال 1991 ، كاري و ماتين هو به بحث در رابطه با نقش هوش مصنوعي در بازاريابي پرداختند و جايگاه يابي رقابتي را بهوسيله متدلوژي هدف گرا مورد تجزيه و تحليل قرار دادند . اليس و همكارانش در سال 1991 گزارشي از پيشرفتهاي كاربرد مدل هاي شبكه عصبي در مواجهه با استراتژي قيمت گذاري كششي ارائه كردند در حاليكه پراكتر در سال 1992 چگونگي كاربرد تكنولوژي شبكه هاي عصبي در يادگيري مدل هاي داده بازاريابي و نقش آنها را در ساختن سيستم هاي پشتيباني از تصميمات بازاريابي به نمايش گذاشت . در سال 1993 كاري و ماتين هو از تكنولوژي شبكه هاي عصبي در مدل سازي واكنش مصرف كننده به محرك تبليغات استفاده كردند . راي و همكارانش در سال 1994 شبكه هاي عصبي را در كمّي سازي فاكتورهاي موثر در كيفيت روابط خريدارو فروشنده مورد استفاده قرار دادند . براي اين منظور شبكه اي با دو عنصر خروجي كيفيت روابط (رضايت از روابط و اعتماد ) و پنج ورودي ( گرايش فروش فروشنده ، مشتري گرايي ، تخصص، اخلاقيات ، و دوام روابط ) شكل گرفت . در مقايسه با رگرسيون هاي چند متغيره، تكنيك شبكه هاي عصبي به نتايج آماري قابل قبول تري دست يافت .
از سوي ديگر ، هارلي و همكاران (1994) استفاده از الگوريتم هاي ژنتيك را در حل مسائل بهينه سازي بازاريابي مورد آزمايش قرار دادند . بر اساس مطالعه آنها ، كاربردهاي بالقوه الگوريتم هاي ژنتيك در بازاريابي مي تواند شامل موارد زير باشد :
1) رفتار مصرف كننده
_ يادگيري مدل هاي انتخاب مصرف كننده
_ پردازش اطلاعات مصرف كننده
_ تاثير گروههاي مرجع
2) بخش بندي،انتخاب بازار هدف، جايگاه يابي
_ بهينه سازي ساختارهاي محصول – بازار
_ تجزيه و تحليل فاكتورهاي كليدي خريد
_ جايگاه يابي محصول
3) مديريت عناصر آميخته بازاريابي
_ بهينه سازي چرخه حيات محصول
_ طراحي محصول
_ استراتژي تبليغات و برنامه ريزي رسانهاي
_ مديريت فروش
گرين و اسميت (1987) يك سيستم ژنتيك را براي يادگيري مدل هاي انتخاب مصرف كننده مطرح ساختند و تنگ و هولاك (1992 ) چارچوبي مفهومي را در پيوند مفاهيم بازاريابي با مكانيزم تكامل تدريجي داروين ارائه كردند . در سال 1992 بالاك ريشمن و جاكوب يك الگوريتم ژنتيك مبتني بر سيستم پشتيباني از تصميم گيري براي طراحي محصول ارائه كردند . از سوي ديگرو در حركتي نوين وناگوپال و بيتز (1994) ازاشتراك شبكه هاي عصبي و تكنيكهاي آماري در تحقيقات بازاريابي استفاده كردند. درنهايت ، مي توان گزارشي از پيشرفتهاي موجود در اين زمينه رابه شكل زير ارائه كرد :
_ STRATEX _ يك سيستم دانشي با هدف پشتيباني از انتخاب بخشهاي بازار (بورچ و هارتويگسن ، 1991)
_ ADDUCE _ سيستمي در توجيه واكنش مصرف كننده به تبليغات (بارك ، 1991)
_ COMSTRAT _ سيستمي براي تصميمات استراتژيك بازاريابي با تاكيد ويژه بر جايگـاه يابي رقابتي ( ماتين هو و همكاران 1993)
_ MARSTRA _ سيستم هوش شبكه اي براي توسعه استراتژي هاي بازاريابي و ارزيابي فاكتورهاي بازاريابي استراتژيك (لي، 2000)
_ GLOSTRA _ سيستم هوش شبكه اي براي توسعه و بهبود استراتژي هاي بازاريابي جهاني و بازاريابي اينترنتي ( لي و ديويس، 2001 )
بانكداري و حوزه هاي مالي
از كاربردهاي مهم و مطرح شبكه هاي عصبي و الگوريتم هاي ژنتيك در بانكداري و حوزه مسائل مالي مي توان به اين موارد اشاره كرد : كاربردهاي اعتباري ، تجزيه و تحليل هاي مالي ، سرمايه گذاري مالي ، و تجزيه و تحليل بازار مبادله سهام . محققان بسياري به بررسي كاربردهاي شبكه هاي عصبي و الگوريتم هاي ژنتيك در بانكداري و مالي پرداخته اند . ازآن جمله ، در سال 1993 ، تفتي و نيكبخت به بحث در ارتباط با استفاده از شبكه هاي عصبي توسط سازمانها وشركتهاي مالي در جهت اهداف متفاوت امتيازبندي اعتباري پرداختند .تان و دي هاردجو (2001) از طريق افزايش زمان و دوره پيش بيني مدل به توسعه يك تحقيق ابتدايي در استفاده از شبكه هاي عصبي براي پيش بيني استرس هاي مالي در اتحاديه هاي اعتباري استراليا پرداختند . دستاورد حاصل شده در مقايسه با نتايج به دست آمده از متوسط انحراف از ميانگين، نتايج قابل قبولي بود . همچنين ديويس و همكاران نيز در 1996 به بررسي نگرشهاي سيستمهاي خودپرداز براساس تجزيه و تحليل شبكههاي عصبي پرداختند .
ازسوي ديگر، شناسايي كاربردهاي متنوع الگوريتم هاي ژنتيك از سوي افراد مختلف به صورت زير ارائه شده است : انتخاب استراتژي هاي بازار انحصاري چند جانبه ( ماركز ، 1989 ) ، توسعه استراتژيهاي سرمايه گذاري مالي (باور، 1994 ) ،جستجو براي يافتن قوانين تكنيكي براي اعمال آنها در بازارسرمايه ( كارجالايننن، 1994 ) ، تجزيه و تحليل ريسك در بانكداري ( وارتو ،1998 ) . علاوه بر اين، در سال 1999 كارجالايننن و آلن از الگوريتمهاي ژنتيك در پيدا كردن قوانين تكنيكي تجاري استفاده كردند. در همين زمان نيز آندرا و همكارانش (1999) از الگوريتم هاي ژنتيك در تجــزيه و تحليل فني در بازار سهام مادريد استفاده كردند .
از ديگر سيستمهاي مالي مبتني بر شبكههاي عصبي و الگوريتم هاي ژنتيك مي توان به موارد زير اشاره كرد :
_ KABAL _ سيستم دانشي براي تجزيه و تحليل مالي در بانكداري (هارت ويگسن ، 1990 )
_ CREDEX _ سيستمي براي ارزيابي اعتبارات ( پينسون ، 1990 )
_ FINEVA _ سيستم دانشي چند معياري پشتيباني از تصميم گيري براي ارزيابي عملكرد و قابليت حيات شركت ( زوپوني ديس ، 1996 )
پيش بيني
پيش بيني يكي از قديمي ترين فعاليتها و وظايف مديريت وتجارت بوده است . درروزگاران قديم نمونه هايي از پيشگوييها و پيش بيني ها وجود دارد . به طور كلي ، مديري را مي توان موفق دانست كه از قوه تجسم بالايي در تصميم گيري و قضاوت برخوردار باشد . تجربه ، به انسان در پيش بيني آينده وانتخاب تصميم درست و دادن رأي صحيح كمك مي كند. روش هاي هوش مصنوعي توانايي بالايي را درپيش بيني و ارائه عملكرد بهتر در مواجهه بامسائل غيرخطي و ساير مشكلات مدل سازي سري هاي زماني نشان داده اند .رحمان و بهتنگار (1998 ) يك سيستم خبره را براي پيش بيني كوتاه مدت طراحي كردند، اين درحالي است كه چيو (1997) يك شبكه عصبي را در تركيب با سيستم خبره قانونمند براي همين منظور در تايوان مورد استفاده قرار داد . همچنين تحقيقات كانلن و جيمز (1998) نشان دادكه مي توان بين خصيصه هاي داراييهاي اقتصادي و ارزش داراييهاي تجاري در يك بازار خاص پيوند برقرار كرد و به مدل ارزش گذاري اي رسيد كه به پيش بيني كوتاه مدت نوسانات ارزش گذاري دراستفاده از شبكههاي عصبي ميپردازد. درنهايت بررسيهاي انجام شده نشان ميدهد كه در اين حوزه بيشتر بر كاربرد شبكه هاي عصبي كار شده است تا الگوريتم هاي ژنتيك.
ساير حوزه هاي تجاري
تا اينجا درباره كاربردهاي مختلف شبكه هاي عصبي و الگوريتم هاي ژنتيك در بخشهاي كليدي تجارت صحبت كرديم : بازاريابي ، بانكداري و مالي ، پيش بيني . قطعاً حوزه هاي ديگري از تجارت و كسب و كارنيز وجود دارد كه در اندازه هاي متفاوت مي توانند از مزاياي استفاده از شبكه هاي عصبي و الگوريتم هاي ژنتيك منتفع شوند . به عنوان مثال مي توان به كاربرد شبكه هاي عصبي در صنعت هتلداري ( لاو ، 1998) ، ارزيابي داراييها (لنك و همكاران 1997 ) و پيش بيني تورم (آيكن ، 1999) اشاره كرد. علاوه بر اين ، كاملاً مشهود است كه بخشهايي ( مانند توليد ، صنايع سنگين ، انرژي ، ساخت و ساز ) وجود دارند كه از نظر ما دور مانده اند .
مزاياي استفاده از اين فناوريهاي هوش مصنوعي
با بررسي اجماعي نظريات و تحقيقات موجود مي توان مزاياي استفاده از فناوريهاي هوش مصنوعي و الگوريتم هاي ژنتيك را در قالب گزاره هاي زير خلاصه كرد :
_ ارائه خدمات بهتر به مشتري
_ تقليل زمان انجام وتكميل وظايف
_ افزايش توليد
_ استفاده اثربخش تر از منابع
_ سازگاري و ثبات بيشتر در تصميم گيري
نتايج
در اين مقاله سعي كرديم با معرفي كاربردهاي شبكه هاي عصبي و الگوريتم هاي ژنتيك در حوزه تجارت و بازرگاني بهويژه در محدودة بازاريابي، مالي و بانكداري و پيش بيني ، بعدي جديد از حوزه تجارت وكسب و كار را نمايان كنيم. نتيجه نهايي اين مباحث به تنوع حوزه هاي كاربردي كه بر مزايا و منافع شبكه هاي عصبي و الگوريتم هاي ژنتيك اشاره دارد منتهي مي شود . اين دو تكنولوژي امروزه بيش از بيش به عنوان ابزار تصميم گيري سازمانها مورد استفاده قرار مي گيرند كه البته نتايج حاصل از كاربرد آنها ( همچون تصميمات صحيح ، صرفه جوييهاي زماني ، انعطاف پذيري ، كيفيت بهبود يافته ، آموزش موثر) بر محبوبيت آنها افزوده است . اعتقاد ما بر اين است كه در صورت ادغام مناسب اين دو فناوري با ساير فناوريهاي هوشمند (مانند سيستم هاي خبره ، عوامل هوشمند ، منطق فازي) و تكنيكهاي تحقيق درعمليات بهويژه شبيه سازي مي توان روز به روز بر موارد استفاده آنها در حوزه هاي مختلف افزود و از مزاياي آنها بهره مند شد. بر اساس تحقيق كتابخانه اي انجام شده موارد زير براي تحقيقات آينده پيشنهاد مي شود:
_ بررسي مزاياي استفاده از الگوريتم هاي ژنتيك در بهينه سازي مسائل بازاريابي
_ مقايسه كاربرد شبكه هاي عصبي و الگوريتم هاي ژنتيك و سيستم هاي خبره براي شناسايي مزايا و ضررهاي هر كدام از اين فناوريها.
منابع
-1 جكسون . تي و بيل . آر . آشنايي با شبكههاي عصبي ، ترجمه دكتر محمود البرزي – تهران : موسسة انتشارات علمي دانشگاه صنعتي شريف ، چاپ دوم ، 1383
-2 كاتلر ، فيليپ . مديريت بازاريابي ، ترجمه بهمن فروزنده – تهران : آتروپات ،1382
-3 قمي ، عليرضا " شبكه هاي عصبي مصنوعي "، نشريه دنياي كامپيوتر و ارتباطات – شماره 12 ، صفحات 66 تا 69
-4 سعيدي ، مسعود " شبكه هاي عصبي (2) " ، نشريه شبكه _ شماره 52 ، اسفند 1383 ، صفحه 210 تا 211
-5 مماني ، حامد ، نرگس پور اصغري حقي و ساعد علي ضمير ، " شبكه هاي عصبي و كاربرد آن در بهينه سازي " ، نشريه صنايع _ شماره 30
-6 نورزاد ، غلامرضا " بيولوژي سلولي مولکولي " ،انتشارات نوردانش ، تهران ، 1376 ، چاپ اول
7- Metaxiotis , Kostas & John Psarras (2004) "The Contribution of Neural networks and genetic algoritms to business decision support "Management decision , vol 42 ,no .2, Emerald group publishing limited , pp. 229.242
8- Curry , B & L. Moutinho (1993) "Neural Network in marketing : Modelling consumer Responses to Advertising Stimuli "European Journal of marketing , vol 27 , no . 7 , MCB university press , pp 5. 20
9- Wray , B , A. palmer & D. Bejou (1994) " Using Neural Network Analysis to evaluate Buyer – Seller Relationships " European Journal of Marketing , vol 28 , no. 10 , MCB university press , pp 32.48
10- Venugopal .V & W. Beats ( 1994 ) " Neural networks and Statistical Techniques in marketing research " Marketing intelligence & planning , vol 12 , no. 7 , MCB university press , pp 30 . 38
11- Davies , F , L . Moutinho & B . Curry (1996 ) " ATM user attitudes : a neural network analysis " , marketing intelligence & planning , vol 14 , no . 2 , MCB university press , pp 26 . 32
_ دكتر حميدرضا جعفريه: دكتراي حرفه اي از دانشگاه علوم پزشكي يزد
_ _ نگار معتمدي: دانشجوي كارشناسي ارشد بازاريابي دانشگاه آزاد اسلامي واحد علوم و تحقيقات تهران
_ _ _ الهه ملايي: دانشجوي كارشناسي ارشد بازاريابي دانشگاه آزاد اسلامي واحد علوم و تحقيقات تهران
| ||||||||||
| الگوریتم های هوش مصنوعی |
| خلاصه: ACO یا Ant Colony Oprimization یک راه حل برای مسئله های با فضای حالت بزرگ یا NP است که تقریبا همانند الگوریتمهای Genetic است ولی در عمل نسبت به آن بهتر است. آنچه در ادامه می آید قسمتی از یک مقاله در مورد کاربردهای Data Mining و ACO است. مورچه ها حشره های مستقلی هستند که فعالیت اشتراکی دارند به ظاهر یک از مورچه فعال در یک کلونی مستقل از دیگری فعالیت می کند ولی در واقع کلیه مورچه ها در قالب یک سیستم جهت حل یک مسئله پیچیده با هم همکاری می کنند . مسئله مهم دررابطه مورچه ها و به طور کلی حشرات مسئله وابستگی بقا است. مورچه ها غذا را جستجو می کنند و آن را به شکل مناسب نگهدار و انبار می کنند حل این مسئله نیاز به برنامه ریزی پیشرفته دارد مورچه ها این عملیات را بدون هر گونه کنترل مرکزی و نظارت متمر کز انجام می دهند به همین دلیل به حشرات به طور کلی گروه هوشمند می گویند. |
|
در این مقاله ما به بررسی رفتار مورچه های واقعی، در زمان جستجو ی غذا تمرکز می کنیم. مورچه ها قادرند کوتاه ترین مسیر را برای یافتن غذا از لانه خود به منبع غذا جستجو نمایند. .هر این فرآیند بدون هیچ گونه اطلاعات تصویری از مسیر غذا صورت می گیرد. 1- مشخصات اصلی بهینه سازی به روش کلونی مورچه ها
|
هوش مصنوعي | ||
پيش نياز: طراحي الگوريتم ها |
نوع واحد : نظري |
تعداد واحد : 3 |
|
سرفصل مطالب:
مراجع: 1. Russell and Norwing, “Artificial Intelligence: A Modern Approach”, Prentice-Hall, 1995. 2. E. Rich, ”Artificail Intelligence”, McGraw-Hill, 2nd Edition, 1992. 3. I. Bratko,” Prolog Programming for AI”, Addison Wesley, 1986. 4. N. J. Nilsson, Principles of Artificial Intelligence, Springer-Verlag, 1980. 5. L. Sterling and E. Shapiro, Art of Prolog MIT Press,1986. 6. I. Bratko, Prolog Programming for AI, Addison-Wesley, 1986. | ||
الف: دروس عمومی
| انگلیسی پیشرفته |
ب: دروس اصلی
|
معماری کامپیوتر پیشرفته |
سیستم های عامل پیشرفته |
ریاضیات پیشرفته در مهندسی کامپیوتر |
| پایگاه داده پیشرفته | الگوریتم های موازی | مدلسازی و ارزیابی سیستم های کامپیوتری |
ج: دروس تخصصی اجباری
| سمینار کارشناسی ارشد | پایان نامه 1 | پایان نامه 2 |
د: دروس تخصصی انتخابی
| مهندسی نرم افزار پیشرفته | سیستم های خبره و مهندسی دانش | سیستم های توزیع شده |
| شبکه های کامپیوتری پیشرفته | مباحث پیشرفته در مهندسی نرم افزار | طراحی نرم افزارهای مطمئن |
| روش های محاسبات عددی پیشرفته | مباحث ویژه | توصیف و وارسی برنامه ها |
| الگوریتم های بهینه سازی |
د: دروس جبرانی
| معماری کامپیوتر | اطول طراحی سیستم های عامل | ساختمان داده ها و الگوریتم ها |
| ریاضیات مهندسی | نظریه زبان ها و ماشین ها |
گرایش هوش مصنوعی :
الف: دروس عمومی
| انگلیسی پیشرفته |
ب: دروس اصلی
|
هوش مصنوعی پیشرفته |
شبکه های عصبی |
پردازش تکاملی |
| شناسایی آماری الگو | یادگیری ماشین | پردازش نمادی |
| روش ها و سیستم های فازی |
ج: دروس تخصصی اجباری
| سمینار کارشناسی ارشد | پایان نامه 1 | پایان نامه 2 |
د: دروس تخصصی انتخابی
| هوش مصنوعی توزیع شده | مهندسی دانش و سیستم های خبره | پردازش زبان های طبیعی |
| تصویرپردازی رقمی | بینایی ماشین | سنجش از راه دور |
| شناسایی ساختاری الگو | پردازش سیگنال ها رقمی | پردازش و شناسایی گفتار |
| مدلسازی و تعبیر سه بعدی | رباتیک | آتوماتان های یادگیری |
| الگوریتم های پیشرفته | مباحث ویژه در مهندسی کامپیوتر | یک درس کارشناسی ارشد از گرایش ها یا دیگر دانشکده ها |
د: دروس جبرانی
| سیگنال ها و سیستم | کنترل خطی | هوش مصنوعی |
گرایش -دکترا-مهندسی نرم افزار
الف: دروس عمومی
ب: پایه
ج: دروس اصلی
د: دروس اختیاری
هـ: دروس تخصصی اجباری
| آمادگی امتحان جامع | امتحان جامع دکترا | رساله دکترا 1 |
| رساله دکترا 2 | رساله دکترا 3 | رساله دکترا 4 |
و: دروس تخصصی انتخابی
| سیستم های عامل توزیع شده | عملیات کاربردهای تجارت الکترونیکی | مباحث پیشرفته در پایگاه داده ها |
| مباحث پیشرفته در زبان های برنامه سازی موازی |
الف: دروس عمومی
ب: پایه
ج: دروس اصلی
د: دروس اختیاری
هـ: دروس تخصصی اجباری
| آمادگی امتحان جامع | امتحان جامع دکترا | رساله دکترا 1 |
| رساله دکترا 2 | رساله دکترا 3 | رساله دکترا 4 |
و: دروس تخصصی انتخابی
| پردازش تکاملی پیشرفته | پردازش مورفولوژیکی تصاویر | شیوه اخذ دانش |
| سنجش از راه دور | مباحث ویژه در نظریه یادگیری |
درس زبان انگلیسی (عمومی و تخصصی) شامل 25 تست می شود و برای تمامی رشته ها ضریب 1 دارد.
درسرياضيات (آمار و احتمال - رياضيات مهندسي - محاسبات عددي ساختمان گسسته) که شامل 24 تست می شود و برای تمامی رشته ها ضریب 2 دارد.
(ساختمان داده - مدارهاي منطقي - معماري كامپيوتر سيستم عامل - نظريه زبانها و ماشينها) 30 تست ، تمامی داوطلبان باید پاسخگوی این دروس باشند و ضریب 4 دارد.
دروس تخصصي سخت افزار (مدارهاي الكتريكي - VLSI الكترونيك ديجيتال - انتقال داده( 25 تست ، فقط داوطلبان رشتۀ سخت افزار باید پاسخگو باشند و ضریب 2 دارد.
دروس تخصصي نرم افزار (طراحي الگوريتم - كامپايلر - زبانهاي برنامه سازي - پايگاههاي داده). 25 تست ، داوطلبان رشته های نرم افزار و فناوری اطلاعات باید پاسخگو باشند و ضریب 2 دارد.
دروس تخصصي هوش مصنوعي (مدارهاي الكتريكي - طراحي الگوريتمها ی هوش مصنوعي) ، شامل 25 تست که ضریب 2 دارد.
منابع پيشنهادي براي مطالعه کنکور ارشد كامپيوتر:
1- ساختمان داده
الف) كتاب ارشد ساختمان داده و الگوريتمها تاليف مهندس رهنمون، انتشارات پوران پژوهش
ب) Data structure in C++ . By E. Horowitz
ج) Data structure and algorithm. By A.Aho
2- نظريه زبانها و ماشينها
الف) كتاب ارشد نظريه زبان ها و ماشين ها تاليف مهندس سهرابي و مهندس مقصودي، انتشارات پوران پژوهش
ب) مقدمهاي بر نظريه زبان ها و ماشين ها تاليف لینتس پیتر ترجمه دكتر عبدالحسینصراف زاده
ج) Element of the Theory of computation. By sudkamp
3- مدارهاي منطقي
الف) كتاب ارشد مدار منطقي، تاليف مهندس يوسفي انتشارات پوران پژوهش ( کتاب تست این منبع هم موجود است --> تست های طبقه بندی شده مدار منطقی)
ج) Digital logic circuit Analysis and Design. By Nelson
4- معماري كامپيوتر
الف) كتاب ارشد معماري كامپيوتر تأليف مهندس يوسفي انتشارات پوران پژوهش ( کتاب تست این منبع هم موجود است --> سوالات طبقه بندی شده معماری کامپیوتر)
ب) Computer system Architecture. By Mano
5- سيستم عامل
الف) كتاب ارشد سيستم عامل، تاليف دكتر ابراهيمي مقدم، انتشارات پوران پژوهش
ب) Operating System : Design and Implementation. By Tanebaum
ج) Operating System : Internals and design Principles. By Stallings
د) Operating System :By silberschatz
6- ساختمان گسسته
الف) كتاب ارشد ساختمان گسسته، گردآوری شده توسط شهاب بهجتي، انتشارات پوران پژوهش
ب) رياضيات گسسته و تركيباتي از ديدگاه كاربردي تاليف رالف گريمالدي ترجمه دكتر علی عميدي - ناشر: مرکز نشر دانشگاهی
ج) Descrete Mathematics. By Johnwonbaugh
7- رياضي مهندسي
الف) كتاب ارشد رياضي مهندسي گردآوری شده توسط فرزين حاجي جمشيدي، انتشارات پوران پژوهش
ب) مجموعه گزينههاي چهار جوابي طبقه بندي شده رياضي كارشناسي ارشد:ریاضی مهندسی، تاليف دكتر مسعود نيكوكار
8- آمار و احتمال مهندسي
الف)كتاب ارشد آمار و احتمال، تاليف دكتر هژبر انتشارات پوران پژوهش
ب)مجموعه گزينههاي چهار جوابی طبقه بندي شده رياضي كارشناسي ارشد:آمار و احتمال مهندسی تأليف دكتر مسعود نيكوكار
ج)آمار رياضي والدپول ترجمه دكتر وحيدي
9- محاسبات عددي
الف) Numeical Methods for Mathematics, science and Engineering. By Mathews
ب) محاسبات عددي تاليف دكتر قليزاده
ج) روشهاي محسابات عددي ترجمه دكتر فائزه توتونيان
د) آناليز عددي و روشهاي كامپيوتري نوشتۀ رالف پنینگتون ترجمه دكتر منصور نيكخواه بهرامی - ناشر: دانشگاه تهران
ه) نخستين گامها در آناليز عددي ترجمه دكتر بابليان و ميركمال ميرنيا
10 - پايگاههاي داده
الف) كتاب ارشد پايگاه داده، تاليف مهندس سهرابي انتشارات پوران پژوهش
ب) Database Management systems. By C.G. Date
ج) Database system Concepts. By Silberschatz
11- زبانهاي برنامه سازي
الف) Programing Languages : Design and Implementation. By Prat
12- کامپايلر
الف) اصول طراحي كامپايلرها تاليف آهو، اولمن
13- طراحي الگوريتم ها
الف) Algorithm design. By Horowitz
ب) طراحي الگوريتمها تاليف دكتر محمود نقيبزاده
14- مدارهاي الکتريکي
الف) مدارهاي الكتريكي ترجمه دكتر جبهدار مارالاني
ب) مدارهاي الكتريكي نوشته ويليام هيت
15- هوش مصنوعي
الف) Artificial Intelligence: A modern approach. By Russell
ب) هوش مصنوعي تاليف دكتر فهيمي
16- زبان انگلیسی (عمومی)
504 واژۀ کاملاً ضروری تالیف Murray Bromberg
namespace Lex
{
/*
* Class: Nfa2Dfa
*/
using System;
using System.Text;
using System.Collections;
using BitSet;
class Nfa2Dfa
{
/*
* Constants
*/
private const int NOT_IN_DSTATES = -1;
/*
* Function: make_dfa
* Description: High-level access function to module.
*/
//public void make_dfa(Gen l, Spec s)
public static void MakeDFA(Spec s)
{
make_dtrans(s);
free_nfa_states(s);
#if OLD_DUMP_DEBUG
Console.Error.WriteLine(s.dfa_states.Count
+ " DFA states in original machine.");
#endif
free_dfa_states(s);
}
/*
* Function: make_dtrans
* Description: Creates uncompressed CDTrans transition table.
*/
//private void make_dtrans()
private static void make_dtrans(Spec s)
{
Dfa dfa;
int nextstate;
Console.Error.WriteLine("Working on DFA states.");
/* Reference passing type and initializations. */
s.InitUnmarkedDFA();
/* Allocate mapping array. */
int nstates = s.state_rules.Length;
s.state_dtrans = new int[nstates];
for (int istate = 0; istate < nstates; istate++)
{
/* Create start state and initialize fields. */
Bunch bunch = new Bunch(s.state_rules[istate]);
bunch.e_closure();
add_to_dstates(s, bunch);
s.state_dtrans[istate] = s.dtrans_list.Count;
/* Main loop of DTrans creation. */
while (null != (dfa = s.GetNextUnmarkedDFA()))
{
Console.Error.Write(".");
#if DEBUG
Utility.assert(!dfa.IsMarked());
#endif
/* Get first unmarked node, then mark it. */
dfa.SetMarked();
/* Allocate new DTrans, then initialize fields. */
DTrans dt = new DTrans(s, dfa);
/* Set dt array for each character transition. */
for (int i = 0; i < s.dtrans_ncols; i++)
{
/* Create new dfa set by attempting character transition. */
bunch.move(dfa, i);
if (!bunch.IsEmpty())
bunch.e_closure();
#if DEBUG
Utility.assert((null == bunch.GetNFASet()
&& null == bunch.GetNFABit())
|| (null != bunch.GetNFASet()
&& null != bunch.GetNFABit()));
#endif
/* Create new state or set state to empty. */
if (bunch.IsEmpty())
{
nextstate = DTrans.F;
}
else
{
nextstate = in_dstates(s, bunch);
if (nextstate == NOT_IN_DSTATES)
nextstate = add_to_dstates(s, bunch);
}
#if DEBUG
Utility.assert(nextstate < s.dfa_states.Count);
#endif
dt.SetDTrans(i, nextstate);
}
#if DEBUG
Utility.assert(s.dtrans_list.Count == dfa.GetLabel());
#endif
#if DEBUG
StringBuilder sb1 = new StringBuilder(Lex.MAXSTR);
sb1.Append("Current count = "+s.dtrans_list.Count+"\n");
for (int i1 = 0; i1 < dt.GetDTransLength(); i1++)
sb1.Append(dt.GetDTrans(i1)+",");
sb1.Append("end\n");
Console.Error.Write(sb1.ToString());
#endif
s.dtrans_list.Add(dt);
}
}
Console.Error.WriteLine("");
}
/*
* Function: free_dfa_states
*/
//private void free_dfa_states()
private static void free_dfa_states(Spec s)
{
s.dfa_states = null;
s.dfa_sets = null;
}
/*
* Function: free_nfa_states
*/
private static void free_nfa_states(Spec s)
{
/* UNDONE: Remove references to nfas from within dfas. */
/* UNDONE: Don't free CAccepts. */
s.nfa_states = null;
s.nfa_start = null;
s.state_rules = null;
}
/*
* function: add_to_dstates
* Description: Takes as input a CBunch with details of
* a dfa state that needs to be created.
* 1) Allocates a new dfa state and saves it in the appropriate Spec list
* 2) Initializes the fields of the dfa state with the information in the CBunch.
* 3) Returns index of new dfa.
*/
private static int add_to_dstates(Spec s, Bunch bunch)
{
Dfa dfa;
#if DEBUG
Utility.assert(null != bunch.GetNFASet());
Utility.assert(null != bunch.GetNFABit());
Utility.assert(null != bunch.GetAccept() || Spec.NONE == bunch.GetAnchor());
#endif
/* Allocate, passing Spec so dfa label can be set. */
dfa = Alloc.NewDfa(s);
/* Initialize fields, including the mark field. */
dfa.SetNFASet(new ArrayList(bunch.GetNFASet()));
dfa.SetNFABit(new BitSet(bunch.GetNFABit()));
dfa.SetAccept(bunch.GetAccept());
dfa.SetAnchor(bunch.GetAnchor());
dfa.ClearMarked();
#if OLD_DUMP_DEBUG
Console.Error.WriteLine("[Created new dfa_state #"+dfa.GetLabel()+"]");
dfa.dump();
#endif
/* Register dfa state using BitSet in spec Hashtable. */
s.dfa_sets[dfa.GetNFABit()] = dfa;
#if OLD_DUMP_DEBUG
Console.Error.Write("Registering set : ");
Print_Set(dfa.GetNFASet());
Console.Error.WriteLine("");
#endif
return dfa.GetLabel();
}
/*
* Function: in_dstates
*/
private static int in_dstates(Spec s, Bunch bunch)
{
Dfa dfa;
#if OLD_DEBUG
Console.Error.Write("Looking for set : ");
Print_Set(bunch.GetNFASet());
bunch.dump();
#endif
Object o = s.dfa_sets[bunch.GetNFABit()];
if (null != o)
{
dfa = (Dfa) o;
#if OLD_DUMP_DEBUG
Console.Error.WriteLine(" FOUND!");
#endif
return dfa.GetLabel();
}
#if OLD_DUMP_DEBUG
Console.Error.WriteLine(" NOT FOUND!");
#endif
return NOT_IN_DSTATES;
}
#if OLD_DUMP_DEBUG
/*
* function: Print_Set
*/
public static void Print_Set(ArrayList nfa_set)
{
int size;
int elem;
size = nfa_set.Count;
if (size == 0)
{
Console.Error.Write("empty ");
}
for (elem = 0; elem < size; ++elem)
{
Nfa nfa = (Nfa) nfa_set[elem];
Console.Error.Write(nfa.GetLabel() + " ");
}
}
#endif
}
}
| خلاصه: ACO یا Ant Colony Oprimization یک راه حل برای مسئله های با فضای حالت بزرگ یا NP است که تقریبا همانند الگوریتمهای Genetic است ولی در عمل نسبت به آن بهتر است. آنچه در ادامه می آید قسمتی از یک مقاله در مورد کاربردهای Data Mining و ACO است. مورچه ها حشره های مستقلی هستند که فعالیت اشتراکی دارند به ظاهر یک از مورچه فعال در یک کلونی مستقل از دیگری فعالیت می کند ولی در واقع کلیه مورچه ها در قالب یک سیستم جهت حل یک مسئله پیچیده با هم همکاری می کنند . مسئله مهم دررابطه مورچه ها و به طور کلی حشرات مسئله وابستگی بقا است. مورچه ها غذا را جستجو می کنند و آن را به شکل مناسب نگهدار و انبار می کنند حل این مسئله نیاز به برنامه ریزی پیشرفته دارد مورچه ها این عملیات را بدون هر گونه کنترل مرکزی و نظارت متمر کز انجام می دهند به همین دلیل به حشرات به طور کلی گروه هوشمند می گویند. |
|
در این مقاله ما به بررسی رفتار مورچه های واقعی، در زمان جستجو ی غذا تمرکز می کنیم. مورچه ها قادرند کوتاه ترین مسیر را برای یافتن غذا از لانه خود به منبع غذا جستجو نمایند. .هر این فرآیند بدون هیچ گونه اطلاعات تصویری از مسیر غذا صورت می گیرد. 1- مشخصات اصلی بهینه سازی به روش کلونی مورچه ها
|
اولين و مهمترين گام در بحث هوش مصنوعي تعيين قلمروي براي تعريف هوش است. مقولهي هوش را نبايد با هيچيك از مفاهيم قوت حافظه، تجربه و يا مهارتهاي حاصل از ممارست اشتباه گرفت. پس در ابتدا بايد تعريف درستي از هوش داشته باشيم تا بتوانيم آن را بهصورت مصنوعي شبيهسازي كنيم.
![]() |
هوش مصنوعي ماهيتاً يك برنامه و يا بهشكل سادهتر يك الگوريتم است. اما هر برنامه يا الگوريتمي باهوش نيست. بهعنوان مثال برنامهاي را در نظر بگيريد كه بازي X – O را پيادهسازي ميكند.
بازي X – O، در يك جدول 9 خانهاي انجام ميگيرد. دو بازيكن (يكي X و ديگري O) بهنوبت علامت مخصوص خود را در يكي از خانههاي جدول 9تايي قرار ميدهند. هركس موفق به درست كردن يك سطر، يك ستون يا يك قطر از علايم خاص خود بشود، برندهي بازي است.
| O | X | X |
| X | O | |
| O | O |
حالات ممكن صفحه را در حين اجراي بازي در نظر بگيريد. اين حالات محدود و قابل پيشبيني هستند و تعداد آنها 19683 حالت است (براي محاسبه، براي هر يك از 9 تا خانه جدول ميتوان سه حالت خالي، X و O را در نظر گرفت پس تعداد كل حالات 9 3 خواهد بود).
ميتوان برنامهاي نوشت كه تمام اين حالات را در نظر ميگيرد و در ازاي هر حالت خاص، رفتاري هوشمندانه را انجام ميدهد. شايد عدد 9 3 به نظرتان بزرگ بيابيد. اما حقيقت اين است كه با در نظر گرفتن قوانين بازي ميتوان اين حالات را خلاصهتر كرد. نكتهي مهم در اين برنامه، محدود بودن حالات ممكن است. بههمين خاطر ميتوان برنامهاي اين بازي را به گونهاي نوشت كه هيچگاه بازنده نباشد. (در نظر بگيريد كه نوشتن چنين برنامهاي براي بازي شطرنج تقريباً غيرممكن است).
![]() |
حقيقت اين است كه انتظار ما از هوشمند بودن يك برنامه چيز ديگري است. درست است كه اين الگوريتم در بازي در برابر حريف شكست نميخورد و همواره هوشمندانهترين رفتار را از خود نشان ميدهد اما اين هوشمندي برنامهنويس است كه در قالب دستورات الگوريتميك به كامپيوتر القا شده است و برنامه به خودي خود هيچگونه خلاقيت و هوشمندي در اجراي بازي نداشته و فقط از يك مجموعه بايد و نبايد و دستور كه برنامهنويس به آن داده، تبعيت كرده است.
|
|
|
|
|
|
|
یکی از کاربردهای مهم هوش مصنوعی |
پس ما از يك برنامهي هوشمند و يا بهعبارت ديگر هوش مصنوعي، قابليتهاي گوناگوني چون استنتاج، حدس، خلاقيت و يادگيري را انتظار داريم. اما آيا بهراستي ميتوان چنين انتظارهايي را از برنامههاي كامپيوتري داشت؟ در ابتدا عدهاي از رياضيدانان و دانشمندان علوم كامپيوتر معتقد بودند چنين كاري غيرممكن است به اين علت كه كامپيوتر صرفاً ميتواند دستورهاي برنامهنويس را - كه در قالب يك الگوريتم به آن داده ميشود -انجام دهد. پس نميتوانيم از يك برنامه، انتظار انجام كاري را داشته باشيم كه در قالب الگوريتم به او دستور داده نشده است. در حقيقت برنامههاي كامپيوتري نميتوانند كارهايي غيرقابل پيشبيني انجام دهند، پس نميتوانند خلاقيت داشته باشند.
پاسخ اين ادعاي درست، ادعاي درست ديگري بود كه تمام فعاليتهاي انجام شده در زمينهي هوش مصنوعي را توجيه ميكند. اگر بتوانيم استنتاج، خلاقيت و يادگيري را در قالب الگوريتم و دستورها به كامپيوتر بدهيم و انتظار داشته باشيم تا با تبعيت از اين دستورها، رفتاري هوشمندانه داشته باشد، چيزي خلاف گفتهي بالا انجام نگرفته است.
در حقيقت دستورهايي كه كامپيوتر در قالب الگوريتمهاي هوش انجام ميدهد، چنين معنايي خواهند داشت:
| - هوشمندانه رفتار كن. | |
|
- استنتاج كن. | |
|
- ياد بگير. | |
|
- خلاقيت داشته باش. | |
|
- يك اشتباه را دوبار تكرار نكن. | |
| - از تجربههايت درس بگير. |
اينها هم مجموعهاي از دستورها هستند كه كامپيوتر ميتواند انجام دهد و مشكل پيادهسازي اين الگوريتمها برعهدهي برنامهنويس (در اينجا طراح هوش مصنوعي) است.
آنچه امروزه در زمينهي هوش مصنوعي بر روي آن كار شده و برنامههاي حاصل از اين فعاليتها، توانستهاند تنها جنبههاي محدودي از آنچه به آن «هوش» ميگوييم را پيادهسازي كنند.
بهطور كلي، روند كار، همانندسازي برنامه با مغز انسان است؛ هر چند اين كار بهطور كامل ممكن نيست. اما نتايج خوبي مثل شبكههاي عصبي از محصولات همين فعاليتهاي نه چندان كامل و دقيق است.
![]() |
مهمترين نكته در علم هوش مصنوعي اين است كه بتوانيم تعريف دقيقي از آنچه دقيقاً در مغز انسان طي يك فعاليت هوشمندانه رخ ميدهد ارائه كنيم. براي مثال سعي كنيد دقيقاً بيان كنيد كه در حين اثبات يك قضيهي رياضي چه اتفاقي در مغزتان ميافتد. كار بسيار دشواري است، اما جنبههايي از هوش هستند كه سادهتر قابل بيانند
| مقاله |
|
A New Algorithm for Minimum Spanning Tree |
الگوریتمی جدید برای درخت پوشا با کمترین هزینه با استفاده از جستجوی ژرفایی در گراف غیرجهتدار
این الگوریتم جدید برای مسألهي درخت پوشا با کمترین هزینه در هر گراف غیر جهتدار ارائه شده است. در این الگوریتم از هیچگونه الگوریتم Sort یا صف اولویت (Priority Queue) یا پشتهی دودویی (Binary Heap) استفاده نشده است.
این الگوریتم بر پایهی جستجوی ژرفایی (DFS) و حذف سنگینترین یال دیده شده دایره در DFS است. این الگوریتم در بدترین حالت، برای گرافی با
راس و
یال زمان
را میگیرد (در مورد نماد O در زنگ تفریح مر بوط به پیچیدگی الگوریتمها توضیح داده شده است) که در آن:


معرفي
مشهورترین الگوریتمها برای حل مسألهي «درخت پوشا با کمترین هزینه»، «الگوریتم کروسکال» (Kruskal) و «الگوریتم پریم» (Prim) میباشند. این الگوریتمها یک روش ابتکاری برای بهینهسازی ارائه دادند که به آن Greedy Strategy (یا همان حریصانه كه در زنگ تفریحهای نوروزی در مورد آن توضیح لازم داده شده است) میگویند. در هر مرحله از الگوریتم، یکی از چندین انتخابها باید ساخته شود.
Greedy Strategy از انتخابی که در لحظه، بهترین است دفاع میکند. هر الگوریتم به آسانی در زمان
با استفاده از پشتهی دودویی معمولی آماده برای اجرا میشود.
با استفاده از «پشتهي فیبوناچی» (Fibonacci Heap) میتوان سرعت الگوریتم پریم (Prim) را افزایش داد تا در مدت
اجرا شود.
این الگوریتم که ارائه شده (DHEA)، استراتژی مشابهی دارد که از DFS پیروی میکند و آن این است که گراف را بهصورت ژرفایی جستجو میکند. هنگامی که دایره دیده شد سنگینترین یال در دایره حذف میشود. این فرایند تا زمانی ادامه پیدا میکند که جستجوی ژرفایی پایان یابد. این الگوریتم زمان
را میگیرد جایی که k تعداد یالهای بازگشت (Back Edges) در DFS است. بر حسب خصوصیات گراف:

در نتيجه این الگوریتم میتواند برای گرافهایی که اختلاف تعداد رؤوس و یالهای آنها کوچک است، مناسب باشد.
الگوريتم

در پایان باید به این مطلب اشاره داشت که نویسندگان مقاله مزبور سرکار خانم دکتر هایده اهرابیان و همچنین جناب آقای دکتر عباس نوذری دالینی از اساتید دانشکده ریاضی ، آمار و علوم رایانهِ دانشگاه تهران هستند. با عرض سلام و خسته نباشید (به مناسبت پایان امتحانات!!) به کاربران گرامی ! دوستان عزیز ، شما می توانید در قسمت زنگ تفریح با ارائه نظرات خود و پیشنهاد موضوعات جدید و جالب برای قسمت زنگ تفریح ، در قسمت "نظر شما" ، ضمن مشارکت در فعالیت های رشد ما را در این بخش یاری کنید. منتظر نظرات شما هستیم ! پیشاپیش از همکاری صمیمانه ی شما سپاس گذاریم ! موفق باشید !
این زنگ تفریح در واقع بهانهای است مناسب برای شما تا سعی کنید با فعالیتهای علمی آنان بیشتر آشنا شوید .
| مقدمه |
این ساختار کارهایی مبنایی نظیر Iinsertion، Look-up و حذف زمان صرف شده در
را به اجرا در میآورد. «ساختارهای درختی درهم» بهتر از «ساختارهای درختی»، جستجوی اطلاعات دیگر اعمال غیریکنواخت متوالی در زمان نامشخص بودن «الگوی توالی» به اجرا در می آورند. این ساختار را «دانیل اسلیتور» و «رابرت تارجان» ابداع كردند.
تمام کارهای معمول درون یک ساختار درختی جستجوی باینری با یک عمل مبنایی تلفیق میشوند که Splaying نام دارد یعنی اینکه یک مؤلفهي معین، درخت را طوری آرایش مجدد میدهد که درون ریشهي ساختار قرار بگیرد.
یک راه انجام اینکار این است که نخست یک جستجو در ساختار درختی برای اطلاعات خواسته شده صورت میپذیرد و شکلی از دوران صورت ميگيرد تا آن مؤلفه به بالای ساختار آورده شود.
متناوبا یک الگوریتم از پایین به بالا میتواند با جستجو تلفیق شده و ساختار درختی را مجددا سازماندهی کند.
با عرض سلام و خسته نباشید (به مناسبت پایان امتحانات!!) به کاربران گرامی ! دوستان عزیز ، شما می توانید در قسمت زنگ تفریح با ارائه نظرات خود و پیشنهاد موضوعات جدید و جالب برای قسمت زنگ تفریح ، در قسمت "نظر شما" ، ضمن مشارکت در فعالیت های رشد ما را در این بخش یاری کنید. منتظر نظرات شما هستیم ! پیشاپیش از همکاری صمیمانه ی شما سپاس گذاریم ! موفق باشید !
مزایا و معایب
مزايا
«بازده مناسب» این ساختار درختی بستگی دارد به ویژگی خود متعادل کنندگی و در واقع خود بهبوددهندگی آن. بدینصورت که نودهایی که بیشترین میزان دسترسی را دارند به ریشه نزدیکتر میشوند تا با سرعت بیشتری بتوان به آنها دست یافت.
این مزیتی است برای تمام نرمافزارهایی که با این ساختار ارتباط میبایند و بهخصوص حافظهي Cach کمتری مصرف میکند.
اما باید توجه داشت برای مواردی که دسترسی بهصورت «یکپارچه» نمیباشد بازده سازهي درختی درهم خیلی «کارامدتر» است.
ساختارهای درختی درهم همچنین از مزیت «ساختار سادهتر» نسبت به ساختارهای جستجوی باینری خود متعادلکنندهي دیگر نظیر: Red-Black یا AVL برخوردارند و «کارامدتر» هستند.
این ساختارها بینیاز از Book Keeping Data میباشند از اینرو «حافظهي کمتری» را اشغال میكنند. اما سازههای دیگر از ویژگی «جبران بدترین زمان ممکن» برخوردارند و در عمل برای «دسترسی یکنواخت» کارامدتر هستند.
به عکس دیگر انواع ساختارهای درختی خود متعادلکننده، این ساختارها با نودهای دربردارندهي «کلیدهای هویت» خوب کار میکنند. حتی با کلیدهای هویت، بازده بهصورت
هرزرفته خواهد بود. همهي فعالیتهای ساختار درختی با نظم نودهای هویت درون ساختار کار می کنند که یک ویژگی مشابه با الگوریتمهای ترتیبدهی پایدار میباشد.
میتوان «نسخهای ماندگار» از ساختار درست کرد که پس از ارتقا بتوان از آن به نسخههای قبلی و بعدی دست پیدا کرد.
معايب
از بدترین مسائل مربوط به الگوریتم ساختار درختی درهم میتوان به دسترسی متوالی مؤلفههای ساختار به ترتیب مرتب شده اشاره نمود. این ویژگی سبب «عدم تعادل ساختاری» میشود
علت آن است كه سبب میشود در هر نوبت عمل
بهمیزان n تعداد دسترسی صورت پذیرد.
دسترسی مجدد منجر به فعال شدن عملی میشود که به تعداد
زمان میبرد تا ساختار را مجددا به تعادل برساند.
«تأخیر فراوانی» در اثر این پروسه صورت میپذیرد. اما پژوهشهای انجام شده نشان دادهاند که «متعادلسازی تصادفی» ساختار درختی میتواند جلوی اثر «عدم تعادل» را بگیرد که حاصل آن بازدهی برابر با بازده الگوریتمهای خود متعادل میباشد.
روش کروسکل یک روش برای یافتن «درخت مینیمال» است. برای اینکار، همهي اندازهي وزنها را ردیف کرده سپس هرکدام که تولید دور نمیکرد را به مجموعهي «درخت مینیمال» اضافه میکنیم.
یعنی از کاربر، تعداد مشخصی عدد بهعنوان «وزن یالها» میگیریم. سپس با یک روش ساده مثل «روش حبابی»، این اعداد را از کوچک به بزرگ مرتب میکنیم.
آنگاه بسته به اینکه «روش گرافیکی» یا غیر آن باشد ایجاد دور را بهازای اضافه کردن هر «وزن یال» به مجموعهي درخت بررسی میکنیم. اگر تولید دور نکرد آن را اضافه و گرنه حذف میکنیم. این کار را تا پایان همهي وزنها میتوان ادامه داد.
|
|
![]() |
|
|
اين نوع از الگوريتم مشابه برنامهنويسى پويا (Dynamic)، بيشتر براى حل مسائل بهينهسازى بهكار مىروند. با اين اختلاف كه در برنامهسازى پويا از يك رابطهي بازگشتى براى حل زيرمسألهها استفاده مىكنند. در روش حريصانه (Greedy)، تقسيم مسألهها به زيرمسألهها انجام نمىگيرد و روش تكرارشونده را بهكار مىبرند.
در روش حريصانه (Greedy) در هر لحظه، با توجه به عناصر دادهاى مفروض، عنصرى را كه داراى ويژگى بهترين يا بهينه است (مانند: كوتاهترين مسير، بالاترين ارزش، كمترين سرمايهگذارى، بيشترين سود و ...) انتخاب مىكنند بدون اينكه انتخابهاى قبلى ما بعدى را در نظر بگيرد ولى انتخابهاى بهينهي محلى همواره منجر به راهحل بهينهي سراسرى نمىشود. اين روش انتخاب، منجر به ارائه يك الگوريتم ساده و كارامد مىشود.
تعيين درختهاى پوشالى مينيمم با استفاده از الگوريتمهاى «پرايم»، «كراسكال» محاسبه كوتاهترين مسير تكمنبع با كاربرد الگوريتم «دايجسترا»، مسألهي زمانبندى مانند: بهينهسازى زمان انتظار و سرويس به كاربران براى دسترسى به ديسك گردانها در يك شبكهي رايانهاى، تعيين حداكثر بهره براى مشتريان در يك زمان معين و مسألهي كولهپشتى (كسرى، صفر و يك) (Knapsack) با استفاده از روش حريصانه (Greedy) قابل اجرا هستند.
|
|
|
مسألهي كوله پشتى (Knapsack ) |
الگوريتمهاي ژنتيك (Genetic)
اخيراً دانشمندان رشتهي رايانه از نظريهي تاريخى «داروين» براى حل مسائل علمى پيچيده استفاده مىكنند تا بتوانند عمليات هوشمندانه را پيش ببرند. سه عامل اصلى نظريهي «داروين» عبارتند از:
- تنوع
مشخصات والدين متفاوت با يكديگر تركيب شده تا بتوانند موجودى را با خصوصيات برتر به وجود آورند.
- تصادف
عاملى است كه تغييراتى را در موجود فرزند ايجاد مى كند.
- انتخاب
محيط، موجوداتى را گزينش مى كند كه داراى شايستگى بالاترى از لحاظ ادامه حيات و توليد مثل باشند.
مدلسازى در الگوريتم «ژنتيك» برپايهي «فرايند طبيعى تكامل» و «اصل بقاى برتر» است و مشابه طبيعت، عمل را با حفظ و تقويت جنس برتر و از بين رفتن جنس ضعيف انجام مىدهد. در نتيجه منجر به ايجاد قدرتمندترين ساختار يا بهينهترين آن براى بقا در محيط مىشود.
روش انتخاب ژنتيكى در طول ميليونها سال، طبيعتى را پديد آورده كه براساس «اصل بقاى برتر» و «جهش سازنده» قادر به حل پيچيدهترين مسائل از جمله: ساختارهاى پروتئينى برپايهي بهترين جانشين «آمينواسيدها» عمل مىكند.
|
|
|
با عرض سلام و خسته نباشید (به مناسبت پایان امتحانات!!) به کاربران گرامی ! دوستان عزیز ، شما می توانید در قسمت زنگ تفریح با ارائه نظرات خود و پیشنهاد موضوعات جدید و جالب برای قسمت زنگ تفریح ، در قسمت "نظر شما" ، ضمن مشارکت در فعالیت های رشد ما را در این بخش یاری کنید. منتظر نظرات شما هستیم ! پیشاپیش از همکاری صمیمانه ی شما سپاس گذاریم ! موفق باشید ! |
:
نماد 
اگر براي دو تابع
و
داشته باشيم:


و
در اين صورت:

در حقيقت مجموعهي
اشتراك دو مجموعه ي
و
ميباشد.
اين نماد در حقيقت اصليترين «نماد پيچيدگي الگوريتم»هاست زيرا در حقيقت ميتوانيم بگوييم اگر:

در اين صورت رشد توابع
به يك اندازه است.
براي درك اين مفهوم به توابع زير توجه كنيد
ياداوري - به ياد داشته باشيد كه خيلي وقتها نماد O بهجاي
بهكار ميرود!
اگر:

باشد در اينصورت:



و اگر:

باشد در اينصورت:


: 
ميدانيم كه اگر:

باشد در اينصورت هر دو رابطهي بالا برقرار است.
حال m را براي ماكزيمم
بگيريد در اينصورت داريم:

: 
مفهوم اين رابطه چيست؟ اين رابطه بيان ميدارد كه از جايي به بعد
بين ضرايبي از
قرار دارد. در حقيقت نرخ رشد
مشابه
است.
نماد 
گوييم تابع
عضو مجموعه ي
است اگر ثابتهاي مثبت
وجود داشته باشند بهطوري كه بهازاي هر
داشته باشيم:

بازهم اگر بخواهيم بهصورت شهودي در مورد اين نماد صحبت كنيم ميتوانيم اين نماد را به اين صورت بيان كنيم كه اگر
باشد در اين صورت نرخ رشد
از
كمتر نيست.
بهعنوان مثال اگر مانند مثال قبل:


و
در اين صورت:

زيرا كافي است كه قرار دهيد:

در اين صورت به ازاي هر
داريم:


|
سالها پيش دولت ترتيبي ميدهد تا دانشاموزان برتر كشور را با كشتي به يك مسافرت تفريحي ببرد. 1 - هر پسري يك فهرست شامل همهي دخترها تهيه كند و در آن دخترها را بهترتيب علاقهاي كه به آنها دارد بنويسد. بنابراين اگر در فهرست وي، دختر A بالاتر از دختر B قرار گرفت بدان معني است كه او براي ازدواج A را به B ترجيح ميدهد و هر دختري نيز بايد چنين فهرستي از پسرها تهيه كند. 2 - دخترها و پسرها بايد بهگونهاي ازدواج كنند كه هيچ دو زوجي مانند ( A,A') و (B,B') نباشد و فهرست علاقمندي A و B' بالاتر از A' باشد و فهرست علاقمندي B' هم بالاتر از B باشد (در چنين صورتي هم A و هم B' يكديگر را به زوج خود ترجيح ميدهند و دو ازدواج به طلاق ميانجامد). | |
| |
| حال شما پيشنهاد كنيد كه اينها چگونه بايد همسر خود را انتخاب كنند تا شرايط فوق برقرار باشد؟ |
|
| |||||||||||
امنظور از تحليل پيچيدگي يا كارايي (در اينجا منظور «كارايي زماني» است). اين است كه بدانيم از بين دو الگوريتم كه براي حل يك مسألهي خاص طراحي شدهاند كداميك جواب را سريعتر بهدست خواهد آورد.
در طول اين قسمت بد نيست كه صورت مسألهي اصلي را از ياد ببريد! در اينجا چند نماد كلي را براساس توابع رياضي تعريف مي كنيم: يك تابع يك متغيرهي
گوييم تابع
|
سؤالي كه در زمينهي علم كامپيوتر وجود دارد اين است كه آيا ميتوان گفت كامپيوترها توانايي يادگيري هم دارند يا آنكه در حقيقت فقط پيادهسازي يادگرفتههاي نويسندهي برنامههاي آنها هستند و برحسب شرايط محيطي خود چيز جديدي نميآموزند؟
واقعيت اين است كه آري كامپيوترها هم ياد ميگيرند!!! در روش سنتي كنترل يك روبات يا يك بازوي مكانيكي يا يك برنامهي نرمافزاري، برنامهنويسي با در نظر گرفتن تمامي شرايط محيطي و دادههاي ورودي و با فرض اينكه دقت هيچيك از دستگاهها تغييري نميكند و همهچيز ثابت ميماند. اقدام به تعريف جزو به جزو كارهايي كه سيستم كامپيوتري ميبايست انجام دهد ميكرد و در حقيقت تعيين تمام مقادير، الگوريتم كار و ... برعهدهي برنامهنويس بود.
اما امروزه بعضي برنامهها بهگونهاي طراحي ميگردند كه خود كامپيوتر بتواند جزويات كاري خود را تعيين كند و با تغييرات محيطي سازگار گردد.
بهشكلي كه در مقابل تغييرات پيشبيني نشده نيز سيستم بتواند بهترين تصميم را گرفته و بدون نياز به كمك بيروني خودش كار خودش را به شكل بهينه انجام دهد. و اين ممكن نيست جز با ورود علوم مربوط به هوش مصنوعي بهدنياي علوم كامپيوتر ...
همانطور که مي دانيم مسئله يافتن کوتاهترين مسير، يک مسئله بهينه سازيست که گاه حل آن بسيار دشوار است و گاه نيز بسيار زمانبر. بعنوان مثال مسئله فروشنده دوره گرد(TSP). در اين مسئله فروشنده دوره گرد بايد از يک شهر شروع کرده، به شهرهاي ديگر برود و سپس به شهر مبدا بازگردد بطوريکه از هر شهر فقط يکبار عبور کند و کوتاهترين مسير را نيز طي کرده باشد. اگر تعداد اين شهرها n باشد در حالت کلي اين مسئله از مرتبه (n-1)! است که براي فقط 21 شهر زمان واقعا زيادي مي برد:
روز1013*7/1 = S1016*433/2 = ms10*1018*433/2 = !20
با انجام يک الگوريتم برنامه سازي پويا براي اين مسئله ، زمان از مرتبه نمايي بدست مي آيد که آن هم مناسب نيست. البته الگوريتم هاي ديگري نيز ارائه شده ولي هيچ کدام کارايي مناسبي ندارند. ACO الگوريتم کامل و مناسبي براي حل مسئله TSP است.
مورچه ها چگونه مي توانند کوتاهترين مسير را پيدا کنند؟
مورچه ها هنگام راه رفتن از خود ردي از ماده شيميايي فرومون(Pheromone) بجاي مي گذارند البته اين ماده بزودي تبخير مي شد ولي در کوتاه مدت بعنوان رد مورچه بر سطح زمين باقي مي ماند. يک رفتار پايه اي ساده در مورچه هاي وجود دارد :
آنها هنگام انتخاب بين دو مسير بصورت احتمالاتي( Statistical) مسيري را انتخاب مي کنند که فرومون بيشتري داشته باشد يا بعبارت ديگر مورچه هاي بيشتري قبلا از آن عبور کرده باشند. حال دقت کنيد که همين يک تمهيد ساده چگونه منجر به پيدا کردن کوتاهترين مسير خواهد شد :
همانطور که در شکل 1-1 مي بينيم مورچه هاي روي مسير AB در حرکت اند (در دو جهت مخالف) اگر در مسير مورچه ها مانعي قرار ديهم(شکل 2-1) مورچه ها دو راه براي انتخاب کردن دارند. اولين مورچه ازA مي آيد و بهC مي رسد، در مسير هيچ فروموني نمي بيند بنابر اين براي مسير چپ و راست احتمال يکسان مي دهد و بطور تصادفي و احتمالاتي مسير CED را انتخاب مي کند. اولين مورچه اي که مورچه اول را دنبال مي کند زودتر از مورچه اولي که از مسير CFD رفته به مقصد مي رسد. مورچه ها در حال برگشت و به مرور زمان يک اثر بيشتر فرومون را روي CED حس مي کنند و آنرا بطور احتمالي و تصادفي ( نه حتما و قطعا) انتخاب مي کنند. در نهايت مسير CED بعنوان مسير کوتاهتر برگزيده مي شود. در حقيقت چون طول مسير CED کوتاهتر است زمان رفت و برگشت از آن هم کمتر مي شود و در نتيجه مورچه هاي بيشتري نسبت به مسير ديگر آنرا طي خواهند کرد چون فرومون بيشتري در آن وجود دارد.
نکه بسيار با اهميت اين است که هر چند احتمال انتخاب مسير پر فرومون ت توسط مورچه ها بيشتر است ولي اين کماکان احتمال است و قطعيت نيست. يعني اگر مسير CED پرفرومون تر از CFD باشد به هيچ عنوان نمي شود نتيجه گرفت که همه مورچه ها از مسيرCED عبور خواهند کرد بلکه تنها مي توان گفت که مثلا 90% مورچه ها از مسير کوتاهتر عبور خواهند کرد. اگر فرض کنيم که بجاي اين احتمال قطعيت وجود مي داشت، يعني هر مورچه فقط و فقط مسير پرفرومون تر را انتخاب ميکرد آنگاه اساسا اين روش ممکن نبود به جواب برسد. اگر تصادفا اولين مورچه مسيرCFD(مسير دورتر) را انتخاب مي کرد و ردي از فرومون بر جاي مي گذاشت آنگاه همه مورچه ها بدنبال او حرکت مي کردند و هيچ وقت کوتاهترين مسير يافته نمي شد. بنابراين تصادف و احتمال نقش عمده اي در ACO بر عهده دارند.
نکته ديگر مسئله تبخير شدن فرومون بر جاي گذاشته شده است. برفرض اگر مانع در مسير AB برداشته شود و فرومون تبخير نشود مورچه ها همان مسير قبلي را طي خواهند کرد. ولي در حقيقت اين طور نيست. تبخير شدن فرومون و احتمال به مورچه ها امکان پيدا کردن مسير کوتاهتر جديد را مي دهند.
|
1-1 |
|
|
3-1 |
4-1 |
مزيتهاي ACO :
همانطور که گقته شد «تبخير شدن فرومون» و «احتمال-تصادف» به مورچه ها امکان پيدا کردن کوتاهترين مسير را مي دهند. اين دو ويژگي باعث ايجاد انعطاف در حل هرگونه مسئله بهينه سازي مي شوند. مثلا در گراف شهرهاي مسئله فروشنده دوره گرد، اگر يکي از يالها (يا گره ها) حذف شود الگوريتم اين توانايي را دارد تا به سرعت مسير بهينه را با توجه به شرايط جديد پيدا کند. به اين ترتيب که اگر يال (يا گره اي) حذف شود ديگر لازم نيست که الگوريتم از ابتدا مسئله را حل کند بلکه از جايي که مسئله حل شده تا محل حذف يال (يا گره) هنوز بهترين مسير را داريم، از اين به بعد مورچه ها مي توانند پس از مدت کوتاهي مسير بهينه(کوتاهترين) را بيابند.
کاربردهاي ACO :
از کاربردهاي ACO مي توان به بهينه کردن هر مسئله اي که نياز به يافتن کوتاهترين مسير دارد ، اشاره نمود :
1. مسير يابي داخل شهري و بين شهري
2. مسير يابي بين پست هاي شبکه هاي توزيع برق ولتاژ بالا
3. مسير يابي شبکه هاي کامپيوتري
مسير يابي شبکه هاي کامپيوتري با استفاده از ACO :
در ابتدا مقدمه اي از نحوه مسير يابي در شبکه هاي کامپيوتري را توضيح خواهيم داد :
اطلاعات بر روي شبکه بصورت بسته هاي اطلاعاتي کوچکي (Packet) منتقل مي شوند. هر يک از اين بسته ها بر روي شبکه در طي مسير از مبدا تا مقصد بايد از گره هاي زيادي که مسيرياب (Router) نام دارند عبور مي کنند. در داخل هر مسيرياب جدولي قرار دارد تا بهترين و کوتاهترين مسير بعدي تا مقصد از طريق آن مشخص مي شود، بنابر اين بسته هاي اطلاعاتي حين گذر از مسيرياب ها با توجه به محتويات اين جداول عبور داده مي شوند.
روشي بنام ACR : Ant Colony Routering پيشنهاد شده که بر اساس ايده کلوني مورچه به بهينه سازي جداول مي پردازيد و در واقع به هر مسيري با توجه به بهينگي آن امتياز مي دهد. استفاده از ACR به اين منظور داراي برتري نسبت به ساير روش هاست که با طبيعت ديناميک شبکه سازگاري دارد، زيرا به عنوان مثال ممکن است مسيري پر ترافيک شود يا حتي مسير يابي (Router) از کار افتاده باشد و بدليل انعطاف پذيري که ACO در برابر اين تغييرات دارد همواره بهترين راه حل بعدي را در دسترس قرار مي دهد.
انسان هميشه براي الهام گرفتن به جهان زنده پيرامون خود نگريسته است. يکي از بهترين طرح هاي شناخته شده، طرح پرواز انسان است که ابتدا لئورناردو داوينچي(1519-1452) طرحي از يک ماشين پرنده را بر اساس ساختمان بدن خفاش رسم نمود. چهار صد سال بعد کلمان آدر ماشين پرنده اي ساخت که داراي موتور بود و بجاي بال از ملخ استفاده مي کرد.
هم اکنون کار روي توسعه سيستم هاي هوشمند با الهام از طبيعت از زمينه هاي خيلي پرطرفدار هوش مصنوعي است. الگوريتمهاي ژنتيک که با استفاده از ايده تکاملي دارويني و انتخاب طبيعي مطرح شده، روش بسيار خوبي براي يافتن مسائل بهينه سازيست. ايده تکاملي دارويني بيانگر اين مطلب است که هر نسل نسبت به نسل قبل داراي تکامل است و آنچه در طبيعت رخ مي دهد حاصل ميليون ها سال تکامل نسل به نسل موجوداتي مثل مورچه است.
الگوريتم کلوني مورچه براي اولين بار توسط دوريگو (Dorigo) و همکارانش به عنوان يک راه حل چند عامله (Multi Agent) براي مسائل مشکل بهينه سازي مثل فروشنده دوره گرد (TSP :Traveling Sales Person) ارائه شد.
عامل هوشند(Intelligent Agent) موجودي است که از طريق حسگر ها قادر به درک پيرامون خود بوده و از طريق تاثير گذارنده ها مي تواند روي محيط تاثير بگذارد.
الگوريتم کلوني مورچه الهام گرفته شده از مطالعات و مشاهدات روي کلوني مورچه هاست. اين مطالعات نشان داده که مورچه ها حشراتي اجتماعي هستند که در کلوني ها زندگي مي کنند و رفتار آنها بيشتر در جهت بقاء کلوني است تا درجهت بقاء يک جزء از آن. يکي از مهمترين و جالبترين رفتار مورچه ها، رفتار آنها براي يافتن غذا است و بويژه چگونگي پيدا کردن کوتاهترين مسير ميان منابع غذايي و آشيانه. اين نوع رفتار مورچه ها داراي نوعي هوشمندي توده اي است که اخيرا مورد توجه دانشمندان قرار گرفته است.بايد تفاوت هوشمندي توده اي(کلوني) و هوشمندي اجتماعي را روشن کنيم.
در هوشمندي اجتماعي عناصر ميزاني از هوشمندي را دارا هستند. بعنوان مثال در فرآيند ساخت ساختمان توسط انسان، زماني که به يک کارگر گفته ميشود تا يک توده آجر را جابجا کند، آنقدر هوشمند هست تا بداند براي اينکار بايد از فرغون استفاده کند نه مثلا بيل!!! نکته ديگر تفاوت سطح هوشمندي افراد اين جامعه است. مثلا هوشمندي لازم براي فرد معمار با يک کارگر ساده متفاوت است.
در هوشمندي توده اي عناصر رفتاري تصادفي دارند و بين آن ها هيچ نوع ارتباط مستقيمي وجود ندارد و آنها تنها بصورت غير مستقيم و با استفاده از نشانه ها با يکديگر در تماس هستند. مثالي در اين مورد رفتار موريانه ها در لانه سازيست.
جهت علاقه مند شدن شما به اين رفتار موريانه ها وتفاوت هوشمندي توده اي و اجتماعي توضيحاتي را ارائه مي دهم :
فرآيند ساخت لانه توسط موريانه ها مورد توجه دانشمندي فرانسوي به نام گرس قرار گرفت. موريانه ها براي ساخت لانه سه فعاليت مشخص از خود بروز مي دهند. در ابتدا صدها موريانه به صورت تصادفي به اين طرف و آن طرف حرکت مي کنند. هر موريانه به محض رسيدن به فضايي که کمي بالاتر از سطح زمين قرار دارد شروع به ترشح بزاق مي کنند و خاک را به بزاق خود آغشته مي کنند. به اين ترتيب گلوله هاي کوچک خاکي با بزاق خود درست مي کنند. عليرغم خصلت کاملا تصادفي اين رفتار، نتيجه تا حدي منظم است. در پايان اين مرحله در منطقه اي محدود تپه هاي بسيار کوچک مينياتوري از اين گلوله هاي خاکي آغشته به بزاق شکل مي گيرد. پس از اين، همه تپه هاي مينياتوري باعث مي شوند تا موريانه ها رفتار ديگري از خود بروز دهند. در واقع اين تپه ها به صورت نوعي نشانه براي موريانه ها عمل مي کنند. هر موريانه به محض رسيدن به اين تپه ها با انرژي بسيار بالايي شروع به توليد گلوله هاي خاکي با بزاق خود مي کند. اين کار باعث تبديل شدن تپه هاي مينياتوري به نوعي ستون مي شود. اين رفتار ادامه مي يابد تا زماني که ارتفاع هر ستون به حد معيني برسد. در اين صورت موريانه ها رفتار سومي از خود نشان مي دهند. اگر در نزديکي ستون فعلي ستون ديگيري نباشد بلافاصله آن ستون را رها مي کنند در غير اين صورت يعني در حالتي که در نزديکي اين ستون تعداد قابل ملاحظه اي ستون ديگر باشد، موريانه ها شروع به وصل کردن ستونها و ساختن لانه مي کنند.
تفاوتهاي هوشمندي اجتماعي انسان با هوشمندي توده اي موريانه را در همين رفتار ساخت لانه مي توان مشاهده کرد. کارگران ساختماني کاملا بر اساس يک طرح از پيش تعيين شده عمل مي کنند، در حالي که رفتار اوليه موريانه ها کاملا تصادفي است. علاوه بر اين ارتياط مابين کارگران سختماني مستقيم و از طريق کلمات و ... است ولي بين موريانه ها هيچ نوع ارتباط مستقيمي وجود ندارد و آنها تنها بصورت غير مستقيم و از طريق نشانه ها با يکديگر در تماس اند. گرس نام اين رفتار را Stigmergie گذاشت، به معني رفتاري که هماهنگي مابين موجودات را تنها از طريق تغييرات ايجاد شده در محيط ممکن مي سازد.
تکنیک جستجویی در علم رایانه برای یافتن راهحل تقریبی برای بهینهسازی و مسائل جستجو است. الگوریتم ژنتیک نوع خاصی از الگوریتمهای تکامل است که از تکنیکهای زیستشناسی مانند وراثت و جهش استفاده میکند.الگوریتمهای ژنتیک معمولاً به عنوان یک شبیهساز کامپیوتر که در آن جمعیت یک نمونهٔ انتزاعی (کروموزوم ها) از نامزدهای راهحل یک مسأله بهینهسازی به راه حل بهتری منجر شود، پیادهسازی میشوند.همانطور که قبلا گفتیم، به طور سنتی راهحل ها به شکل رشتههایی از ۰ و ۱ بودند، اما امروزه به گونههای دیگری هم پیادهسازی شدهاند. فرضيه با جمعيتي كاملاً تصادفي منحصر بفرد آغاز میشود و در نسل ها ادامه میيابد. در هر نسل گنجايش تمام جمعيت ارزيابي میشود، چندين فرد منحصر در فرايندي تصادفي از نسل جاري انتخاب میشوند (بر اساس شايستگي ها) و براي شكل دادن نسل جديد، اصلاح میشوند (كسر يا دوباره تركيب میشوند) و در تكرار بعدي الگوريتم به نسل جاري تبديل میشود.
عملگر های یک GA
در هر مسئله قبل از آنكه بتوان الگوريتم ژنتيك را براي يافتن يك پاسخ به كار برد به دو عنصر نياز است: اول روشي براي ارائه يك جواب به شكلي كه الگوريتم ژنتيك بتواند روي آن عمل كند لازم است. به شكل سنتي يك جواب به صورت يك رشته از بيت ها، اعداد يا نويسه ها.نمايش داده میشود.دوم روشي لازم است كه بتواندكيفيت هر جواب پيشنهاد شده را با استفاده از توابع تناسب محاسبه نمايد.
معرفی الگوریتم ژنتیک : یکی از روشهای تصادفی بهینه یابی است, توسط جان هالند در سال 1967 ابداع شده است. الگوریتم های ژنتیک یک گروه از الگوریتم های تصادفی هستند که از تکامل طبیعی در سیستم های بیولوژیک الهام گرفته شده اند. این نوع الگوریتم اولین بار در اواسط دهه ی هفتاد توسط جان هلند معرفی شدند. از زمان معرفی این نوع الگوریتم ها در زمینه های متنوعی چون مهندسی ، اقتصاد ، بیولوژی و علوم کامپیوتر بکار گرفته شده اند. بعدها این روش با تلاشهای گلدبرگ 1989, گسترش یافته و امروزه نیز بواسطه توانایی های خویش , جای مناسبی در میان دیگر روشها دارد. فرایند بهینه یابی در الگوریتم ژنتیک براساس یک روند تصادفی- هدایت شده استوار می باشد. این روش , بر مبنای نظریه تکامل تدریجی و ایده های بنیادین داروین پایه گذاری شده است.در این روش , ابتدا برای تعدادی ثابت که جمعیت نامیده می شود مجموعه ای از پارامترهای هدف بصورت اتفاقی تولید می شود , پس از اجرای برنامه شبیه ساز عددی را که معرف انحراف معیار و یا برازش آن مجموعه از اطلاعات است را به آن عضو از جمعیت مذکور نسبت می دهیم .
انتخاب عملگر ها مهم ترین بخش الگوریتم ژنتیک می باشند.در واقع الگوریتم ژنتیک به وسیله عملگر های ژنتیکی عمل جستجو روی فضای جواب را برای یافتن جواب های جدید انجام می دهد .
این عمل را برای تک تک اعضای ایجاد شده تکرار می کنیم , سپس با فراخوانی عملگرهای الگوریتم ژنتیک از جمله تولید مثل , جهش و انتخاب نسل بعد را شکل می دهیم و حالا این ماجرای نسل ها رو اونقدر ادامه میدین تا به یه جواب مطلوب برسین.
الگوریتم ژنتیک (محاسبات ژنتیکی)یکی از مولفه های مهم و اساسی هوش محاسباتی است که، به نوعی الگو گرفته از مغز هستند.وشبکه های عصبی، ارتباطات عصبی و و ساختار نورونی(مغز انسان حدود يکصد ميليارد سلول عصبی دارد که وظيفه پردازش و ذخيره کردن اطلاعات را بعهده دارند.نام این سلولها نورون است. فقط 10 درصد حجم مغز را تشکيل می دهند) را مدل سازی می کند.
بصورت متداول سه معیار بعنوان معیار توقف شمرده می شود: I. زمان اجرای الگوریتم II. تعداد نسلهایی که ایجاد می شوند III. همگرایی معیار خطا
زمانبندی با کمک الگوریتم ژنتیک و مسایل بهینه سازی: مثلا یکی از مثایلی که در این زمینه می شه مطرح کرد : زمانبندی حضور 5 مهندس در کارخانه به اینصورت که هر کدام از اونها مثلا 3 روز در هفته حضور دارن و این کارخونه 3 قسمت داره که همیشه باید فعال باشه. راههای ممکن را چطوری می شه بدست اورد؟ در حل مسایل الگوریتم ژنتیک راه حل های اولیه تصادفی به دست می یان وراه حل های بعدی از پیوند این راه حل ها حاصل می شن. برای هر کدام از جواب های اولیه تابع مناسب را حساب می کنیم .سپس بعضی از این جواب ها را تصادفی انتخاب می کنیم (البته با توجه به تابع مناسب)و....که البته توضیح های کامل تری در زمینه زمانبندی در لینک زیر وجود دارد . اطلا عات http://www.sapco.ir/Departments/IT/ECommerce/conference/10.PDF درزمینه مدل الگوریتم ژنتیک برای مساله تخصیص منابع محدود چند معیاره فازی فکر می کنم خیلی مفید باشه .








































به هر عضو مجموعهي A يك عضو از مجموعهي B را متناظر ميكند:






