oldmagina

هوش مصنوعی ، شبکه های عصبی و منطق فازی

امتیاز دادن به این موضوع:

Recommended Posts

[quote name='100' timestamp='1361125001' post='300663']
سلام
می تونید به صورت پی دی اف درش بیارید !؟
چون اینجور خوندش یکم سخته ....
[/quote]
سلام
هر وقت تموم شد چشم icon_cheesygrin
چون متن آماده ای ندارم و همینجوری که پیش میره دارم به صورت خلاصه مباحث اصلی رو میذارم فعلا جمع و جور نیست . اگر خدا بخواد و این تعریفها و مسائل پایه ای یه کم جمع و جور بشن و سر مطلب اصلی برسم . ، اینا رو یه جا جمع می کنم و پیشنهاد شما رو انجام میدم .

پی نوشت : البته هنوز منتظر انتقال تاپیکم !!!
  • Upvote 2

به اشتراک گذاشتن این پست


لینک به پست
اشتراک در سایت های دیگر
[color=#0000ff][size=5]استفاده از قوانین جهت نمایش دانش :[/size][/color]
یک روش برای نمایش دانش استفاده از قوانین می باشد از قوانین به منظور بیان اینکه هر گاه یکسری شرایط درست و کامل به وجود بیاید ، چه چیزی باید اتفاق بیفتد ، استفاده می شود. قوانی عموما به شکل اگر ... آنگاه ... بیان می شوند به عبارت دیگر ، هدف قانون این است که معمولا به سیستم بگوید ( به عنوان یک سیستم خبره ) که در یک شرایط خاص چه عملی را انجام دهد و یا با توجه به شرایط ورودی سیستم از وضعیت جاری ، چه نتیجه ای را باید اتخاذ کند.عموما یک قانون می تواند بیشتر از یک مقدم داشته باشد که معمولا با [color=#ff0000]And[/color] یا [color=#ff0000]Or[/color] با هم ترکیب می شوند . به همین ترتیب هم یک قانون می تواند بیشتر از یک تالی داشته باشد که اشاره بر اقدامات متفاوای است که باید انجام شود. عموما بخش مقدم یک قانون یک مقدار از یک شیئ را با یک مقدار ممکن و با استفاده از یک عملگر مقایسه می نماید .
یک مثال :
ا[color=#ff0000]گر نام برابر "رضا " است و آب و هوا " سرد " است ، آنگاه "رضا " باید لباس " گرم " بپوشد[/color].
این یک نمونه از قوانین توصیه ای می باشد که یک مجموعه از ورودی ها را می گیرد و توصیه ای را به عنوان نتیجه پس می دهد . نتیجه این قانون در واقع یک عمل است و این عمل در قالب توصیه به رضا مطرح شده است که می گوید لباس گرم بپوشد. در بعضی حالتها قوانین فعالیتهای صریحتری مثل "[color=#ff0000] به چپ برو[/color] " یا "[color=#ff0000] در را ببند[/color] " بیان می کنند . در چنین حالتهایی قوانین جهت نمایش دستورات استفاده شده اند. قوانین می توانند به عنوان نمایش رابطه ها هم استفاده شوند . به عنوان مثال : " ا[color=#ff0000]گر دمای دماسنج زیر صفر باشد آنگاه هوا سرد است[/color] " .

[color=#0000ff][size=5]سیستم های مبتنی بر قانون :[/size][/color]
[color=#ff0000]سیستمهای مبتنی بر قانون[/color] ( Rule-Based System ) سیستمهای کامپیوتری هستند که از قوانین به منظور تولید یک سیستم جهت[color=#ff0000] توصیه نمودن[/color] ،[color=#ff0000] تشخیص[/color] ،[color=#ff0000] تعیین جهت انجام یک فعالیت در شرایط خاص[/color] و یا [color=#ff0000]حل یک مساله ویژه[/color] استفاده می نمایند.
یک سیستم مبتنی بر قانون از اجزای زیر تشکیل شده است :
- [color=#ff0000]بانک قوانین[/color] ( Knowledge Base)
- [color=#ff0000]بانک واقعیت ها[/color]
- [color=#ff0000]مفسر[/color] ( Interpreter ) یا [color=#ff0000]موتور استنتاج [/color]( inference Engine ) .
در یک سیستم مبتنی بر قانون ، پایه دانش شامل مجموعه ای از قوانین است و دانشی را که سیستم دارد نشان می دهد. بانک واقعیتها بیانگر ور.دی ها به سیستم است که جهت به دست آوردن نتایج استفاده می شوند . مفسر یا موتور استنتاج بخشی از سیستم است که پروسه اشتقاق نتایج را کنترل می کند. از قوانین و حقایق استفاده نموده و آنها را با هم ترکیب می کند تا نتایج را استخراج کند.
این نتایج اغلب با استفاده از استنتاج بدست می آیند . هر چند روشهای دیگری هم وجود دارند.استفاده از استنتاج جهت دستیابی به نتایج از روی مجموعه ای از مقدم ها [color=#ff0000]زنجیره جلو رونده[/color] ( Forward Chaining ) نامیده می شود. روند دیگری نیز تحت عنوان [color=#ff0000]زنجیره عقب رونده[/color] ( Backward chaining ) وجود دارد که از نتیجه شروع می کند و سعی می کند که نشان دهد نتیجه به دست امده درست است و برای این کار یک مسیر منطقی به سمت عقب را دنبال می کند. این مسیر منطقی از نتیجه شروع می شود و به مجموعه ای از مقدم ها که در بانک واقعیتها وجود دارند ختم می شود. ویرایش شده در توسط oldmagina
  • Upvote 4

به اشتراک گذاشتن این پست


لینک به پست
اشتراک در سایت های دیگر
[color=#0000ff][size=5]زنجیره جلو رونده : [/size][/color]
[size=4]در [color=#FF0000]زنجیره جلو رونده[/color] "[/size][right][background=rgb(248, 248, 255)]Forward Chaining" سیستم از یک مجموعه و واقعیتها شروع می کند و سعی می کند تا راهی جهت استفاده از آن قوانین و واقعیتها برای استنتاج نتیجه پیدا کند. این روش تحت عنوان [/background][/right][color=#FF0000][right][font=tahoma, helvetica, arial, sans-serif][background=rgb(248, 248, 255)]استدلال داده گرا [/background][/font][/right][/color][color=#000000][right][font=tahoma, helvetica, arial, sans-serif][background=rgb(248, 248, 255)]" Data Driven " هم مطرح می شود چرا که استدلال از یک مجموعه از داده ها شروع می شود و به هدف ( نتیجه ) ختم می شود.[/background][/font][/right][/color]
[right][size=4][background=rgb(248, 248, 255)][font=tahoma, helvetica, arial, sans-serif][color=#000000]هنگامی که زنجیره جلورونده اعمال می شود در اولین مرحله واقعیتهایی از بانک واقعیتها اخذ می شود و بررسی می شود که آیا ترکیبی از آنها با همه مقدم های یکی از قوانین بانک اطلاعاتی که در بانک قوانین وجود دارند ، تطابق دارد یا نه . هنگامی که همه مقدم های یک قانون با واقعیتهایی از بانک واقعیتها منطبق باشند این قانون[/color][/font][color=#FF0000][font=tahoma, helvetica, arial, sans-serif] تحریک [/font][/color][font=tahoma, helvetica, arial, sans-serif][color=#000000]( Trigger ) می شود . معمولا وقتی یک قانون ،[/color][/font][color=#FF0000][font=tahoma, helvetica, arial, sans-serif] راه اندازی [/font][/color][font=tahoma, helvetica, arial, sans-serif][color=#000000]( Fire ) می شود به این معنی است که نتایج آن قانون به بانک حقایق افزوده می شود . اگر نتایج آن قانون فعال شده یک عمل یا توصیه باشد ، سیستم سبب می شود تا آن عمل انجام شود یا آن توصیه انجام گیرد.[/color][/font][/background][/size][/right]
[size=4]به عنوان مثال قوانین زیر را در نظر بگیرید که آسانسور یک آپارتمان سه طبقه را کنترل می کند. [/size]
[size=4]قانون 1 :[color=#0000ff] اگر در طبقه اول هستی و دکمه طبقه اول فشار داده شده است ، آنگاه درب را باز کن.[/color][/size]
[size=4]قانون 2 :[color=#0000ff] اگر در طبقه اول هستی و دکمه در طبقه دوم فشار داده شده است آنگاه به طبقه دوم برو .[/color][/size]
[size=4]قانون 3 : [color=#0000ff]اگر در طبقه اول هستی و دکمه در طبقه سوم فشارداده شده است آنگاه به طبقه سوم برو [/color][/size]
[size=4]قانون 4 : [color=#0000ff]اگر در طبقه دوم هستی و دکمه در طبقه اول فشار داده شده است و به سمت طبقه سوم در حال حرکت می باشی آنگاه به یاد داشته باش که بعدا به طبقه اول بروی .[/color][/size]
[size=4]این قوانین فقط یک زیر مجموعه کوچک از قوانین مورد نیاز هستند ، اما می توانیم از آنها جهت نمایش عملکرد زنجیره جلو رونده استفاده نمائیم.[/size]
[size=4]تصور کنید که واقعیتهای زیر را در بانک اطلاعاتی مان وارد کنیم .[/size]
[size=4]واقعیت 1 :[color=#ff0000] آسانسور در طبقه اول است .[/color][/size]
[size=4]واقعیت 2 : [color=#ff0000]آسانسور در طبقه دوم فشار داده شده است .[/color][/size]
[size=4]واقعیت 3 : [color=#ff0000]امروز سه شنبه است .[/color][/size]
[size=4]حال سیستم قوانین را بررسی می کند و درمیابد که حقایق 1 و 2 با مقدمهای بیان شده در قانون 3 سازگار می باشند . از اینرو قانون 3 فعال می شود و به نتیجه می رسد.[/size]
[size=4]نتیجه : به طبقه سوم برو.[/size]
[size=4]حال این واقعیت به بانک اطلاعاتی اضافه می شود. از این نتیجه چنین برداشت می شود که آسانسور به سمت طبقه سوم حرکت داده می شود. باید توجه کنید که واقعیت 3 نادیده گرفته شده است چرا که با هیچ یک از مقدم های قوانین منطبق نیست. حال تصور کنید که آسانسور در طبقه دوم است و به سمت طبقه سوم در حال حرکت است ف در این حالت دکمه در طبقه اول فشرده می شود. این واقعیت که دکمه در طبقه اول فشرده شده است ، به بانک اضافه می شود و سبب فعال شدن قانون شماره 4 می گردد .[/size]
[size=4]به عنوان مثالی دیگر در نظر بگیرید که بانک واقعیتها شامل واقعیتهای زیر باشد : [/size]
[size=4]واقعیت 1 : [color=#ff0000]آسانسور در طبقه اول است .[/color][/size]
[size=4]واقعیت 2 :[color=#ff0000] دکمه در طبقه دوم فشار داده شده است.[/color][/size]
[size=4]واقعیت 3 : [color=#ff0000]دکمه در طبقه سوم فشار داده شده است.[/color][/size]
[size=4]در این وضعیت به صورت همزمان هر دو قانون 2 و 3 تحریک می شوند . در چنین حالتهایی که بیشتر از یک نتیجه ممکن وجود دارد ، پروسه اثبات ناسازگاری باید اعمال شود تا تصمیم بگیرد کدام قانون فعال شده منجر به نتیجه شود.[/size] ویرایش شده در توسط oldmagina
  • Upvote 5

به اشتراک گذاشتن این پست


لینک به پست
اشتراک در سایت های دیگر
[color=#0000ff][size=5]حل ناسازگاری :[/size][/color]
در شرایطی که بیشتر از یک نتیجه از مجموعه ای از واقعیتها استنتاج شود ، راههای مختلفی جهت تصمیم گیری در مورد این که کدام قانون فعال شود وجود دارد ( این که کدام نتیجه استفاده شود و کدام فعالیت به انجام برسد.) به عنوان مثال قوانین زیر را در نظر بگیرید :
[color=#0000ff]- اگر سرد است آنگاه کت بپوشید .
- اگر سرد است آنگاه در خانه بمانید.
- اگر سرد است آنگاه بخاری را روشن فرمائید.[/color]
اگر واقعیتی که در داخل بانک واقعیتها وجود دارد ، " سرد است " باشد ، واضح است که سه نتیجه متفاوت حاصل می شوند . در حالت مثال ما می توان هر سه نتیجه را دنبال کرد اما بسیاری از اوقات نتایج با هم سازگار نیستند.
در [color=#ff0000]روش حل ناسازگاری[/color] ، [color=#ff0000]به قوانین سطوح مختلفی از اولویت داده می شود و وقتی تداخل رخ می دهد ، قانونی انتخاب می شود که اولویت بالاتری دارد .[/color] به عنوان مثال در مثال زیر :
[color=#0000ff]- اگر مریض درد دارد آنگاه مسکن تجویز کن ( اولویت 10 )
- اگر مریض درد سینه دارد آنگاه مثل یک بیمار قلبی با آن برخورد کن. ( اولویت 100 )[/color]
در این مثال واضح است که درمان مشکلات قلبی بیمار به مراتب مهم تر از درمان درد ساده است.
روش دیگر ، [color=#ff0000]استراتژی بزرگترین سازگاری[/color] است . این [color=#ff0000]روش نتیجه ای را فعال می سازد که از بزرگترین قانون مشتق شده است .[/color] به عنوان مثال :
[color=#0000ff]- اگر بیمار درد دارد آنگاه مسکن تجویز کن .
- اگر بیمار درد قفسه سینه دارد و بیمار بیشتر از 60 سال دارد و بیمار سابقه ناراحتی قلبی دارد آنگاه او را به اتاق مراقبت ویژه منتقل کنید.[/color]
در این مثال ، اگر مقدم های قانون دوم برآورده شوند در این صورت فعال شدن نتایج این قانون نسبت به قانون اول ارجح تر می باشندو زودتر فعال می شوند چرا که تطابق بیشتری برای آنها صورت می پذیرد.
روند دیگر برای حل ناسازگاری ، [color=#ff0000]فعال نمودن قانونی است که آن قانون با واقعیتهایی که اخیرا به بانک اضافه شده اند ، منطبق می شوند.[/color]
در هر کدام از این الگوریتم ها یا الگوریتم های مشابه ، سیستم فقط یک قانون را فعال می سازد و سپس متوقف می گردد( مثل تشخیص های پزشکی ) ، اما در بسیاری از حالتها ، سیستم نیاز دارد تا یک ترتیب مناسب را برای قانونها انتخاب نماید ( مانند زمان کنترل آسانسور ) چرا که هر کدام از قانون هایی که بر آن واقعیت ها منطبق شده اند نیاز است که در بعضی اوقات فعال گردند.

[color=#0000ff][size=5]ابرقانونها :[/size][/color]
در طراحی یک سیستم خبره ، لازم است تا روندی را جهت حل ناسازگاری انتخاب کنیم و لازم است تا از روشهای مختلفی به منظور حل انواع مختلف ناسازگاریها استفاده شود. به عنوان مثال در بعضی شرایط روندی استفاده می شود که قوانینی که اخیرا به سیستم اضافه شده اند را فعال کرد ( استفاده از قوانین جدید تر ) . چنین روشی زمانی به کار می آید که ترتیب زمانی اتفاقهای رخ داده مهم باشد . مثلا در هنگامی که کار ما یک زمینه خاص پزشکی باشد ، در نظر میگیریم که قوانین جدیدی که به سیستم اضافه می شوند بعضی قوانین قدیمی تر را از درجه اعتبار خارج می سازند . در چنین سیستمی احساس می شود که قوانین جدیدتر از دقت بیشتری نسبت به قوانین قبلی برخوردار می شوند.
ممکن است حالتی وجود داشته باشد که در آن قوانین جدیدی که به سیستم وارد می شوند قوانینی خام باشند که در طی زمان اصلاح می گردند و تکمیل می شوند . در چنین حالتی اولویت دادن به قوانین قبلی ارجح تر به نظر می رسد.
این نوع دانش [color=#ff0000]ابر دانش[/color] ( Meta Knowledge ) نامیده می شود . قوانینی که مشخص می نمایند چطور ناسازگاری ها حل شوند و کی و چطور جنبه های مختلف یک سیستم اجرا شوند . مهندس دانشی که سیستم خبره را بنا می کند مسوول ساخت ابر دانش مقتضی برای سیستم نیز هست . [color=#ff0000]ابر قانونها [/color]( Meta Rules ) از دید سیستم خبره به عنوان قوانینی مطرح می شوند که ترتیب قوانین دیگر را تعیین می نمایند . خود این ابر قوانین نسبت به قوانین نرمال سیستم از اولویت بیشتری برخوردار می باشند. به این طریق ابرقانون ها قانون هایی هستند که برفراز سایر قوانین قرار دارند. ویرایش شده در توسط oldmagina
  • Upvote 5

به اشتراک گذاشتن این پست


لینک به پست
اشتراک در سایت های دیگر
حتما تو مقالات کاربردی یه نسخه‌ی پی‌دی‌اف رو پیوست کنید. خدا اجرتون بده.
[quote name='100' timestamp='1360946354' post='300371']
سلام
خیلی ممنون ...

اتفاقا این ترم ( ترم دوم 91-92 ) باید این درس رو پاس کنم ...

کلا اگه می شه چندتا کتاب خوب ( لزوما نه دانشگاهی ) هم برای تحقیق بیشتر معرفی کنید ...
[/quote]
عزیز جسارتا رشته‌ی تحصیلی شما چی هست؟

به اشتراک گذاشتن این پست


لینک به پست
اشتراک در سایت های دیگر
[quote name='Electro_officer' timestamp='1361387039' post='301210']
حتما تو مقالات کاربردی یه نسخه‌ی پی‌دی‌اف رو پیوست کنید. خدا اجرتون بده.
[quote name='100' timestamp='1360946354' post='300371']
سلام
خیلی ممنون ...

اتفاقا این ترم ( ترم دوم 91-92 ) باید این درس رو پاس کنم ...

کلا اگه می شه چندتا کتاب خوب ( لزوما نه دانشگاهی ) هم برای تحقیق بیشتر معرفی کنید ...
[/quote]
عزیز جسارتا رشته‌ی تحصیلی شما چی هست؟
[/quote]

سلام ...
مهندسی فناوری اطلاعات ...

------------------

کتابی که باید پاسش کنم هم نوشته ی استوارت راسل - پیتر نورویگ ( ویراست سوم - 2010 ) هست .... ویرایش شده در توسط 100

به اشتراک گذاشتن این پست


لینک به پست
اشتراک در سایت های دیگر
البته فکر کنم شبکه عصبی تو چارت اصلی (حتی تو واحدهای اختیاری تعریف شده) IT نیست 100 جان درسته ؟ شما اختیاری خودت خواستی برداری ؟

به اشتراک گذاشتن این پست


لینک به پست
اشتراک در سایت های دیگر
[quote name='cheka' timestamp='1361438306' post='301260']
البته فکر کنم شبکه عصبی تو چارت اصلی (حتی تو واحدهای اختیاری تعریف شده) IT نیست 100 جان درسته ؟ شما اختیاری خودت خواستی برداری ؟
[/quote]

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

تنها چیزی که اختیاری برداشتم شبیه سازی رایانه ای هست ...

به اشتراک گذاشتن این پست


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

به اشتراک گذاشتن این پست


لینک به پست
اشتراک در سایت های دیگر
[quote name='cheka' timestamp='1361445250' post='301276']
آهان بله هوش مصنوعی هست :winking: شبکه عصبی و فازی هم در حقیقت زیرمجموعه ی همین هوش مصنوعی هستند
[/quote]

سلام
البته حالا که کتاب رو نگاه می کنم این مباحث هست :

فصل #

1- مقدمه
2- عامل های هوشمند
3-حل مسئله با جستجو
4- فراتر از جستجوی کلاسیک
5- جست و جوی خصمانه
6- مسئله های ارضای محدودیت
7-عامل های منطقی
8- منطق مرتبه ی اول
9-استنتاجی در منطق مرتبه ی اول
10- برنامه ریزی کلاسیک
11- برنامه ریزی و عمل در دنیای واقعی
12- نمایش دانش

این سرفصل های کتاب هوش مصنوعی ( رهیافتی نوین ) هست ... 544 صفحه

اگه وقت داشتم ، کمی مطلب از کتاب می گذارم ... به هر حال به درد خود بنده هم می خورد ( خلاصه سازی را عرض می کنم ) ویرایش شده در توسط 100
  • Upvote 1

به اشتراک گذاشتن این پست


لینک به پست
اشتراک در سایت های دیگر
[size=5][color=#0000FF]زنجیره عقب رونده :[/color][/size]
زنجیره جلو رونده یک مجموعه از حقایق و قوانین را به منظور دستیابی به نتایجی که می توانند مشتق شوند اعمال می نمایند و معمولا زمانی مفید هستند که مجموعه ای از واقعیتها وجود دارند و کاربر دقیقا نمی داند که به دنبال کدام نتایج است و خود ماشین در مورد ان تصمیم می گیرد. در بعضی اوقات زنجیره جلورونده می تواند ناکارآمد باشد چرا که به نتایجی دست می یابد که مورد توجه کاربر در حال حاضر نیست . در چنین حالتهایی که نتایج خاصی باید بروز کند ، زنجیره عقب رونده گزینه بهتری می باشد.
در زنجیره عقب رونده ، از یک نتیجه شروع می کنیم که همان [color=#ff0000]فرض [/color]( Hypnosis ) است که به دنبال بروز آن هستیم و هدف این است که نشان دهیم که از طریق واقعیتها و قوانین موجود در بانک چگونه می توان به آن دست یافت. نتیجه ای که ما به دنبال بروز آن هستیم [color=#ff0000]هدف[/color] ( Goal) نامیده می شود و به همین دلیل این روش به عنوان [color=#ff0000]روش استدلال هدف گرا [/color]( Goal Driven Reasoning ) شناخته می شود.
زنجیره عقب رونده اغلب در فرموله سازی برنامه ریزی ها استفاده می شود. در یک برنامه ، ما با ترتیبی از فعالیت ها سر و کار داریم که یک برنامه ( شبیه یک عامل هوشمند ) تصمیم دارد تا جهت حل یک مساله خاص به انجام برساند . زنجیره عقب رونده پروسه فرموله سازی یک برنامه ریزی را بسیار کاراتر از زنجیره جلو رونده انجام می دهد.
زنجیره عقب رونده با [color=#ff0000]وضعیت هدف[/color] شروع به کار می کند . وضعیت هدف ، مجموعه ای از شرایطی است که عامل امید دارد از طریق پیمودن برنامه ریزی انجام شده به آن دست یابد. بنابراین این وضعیت را مورد بررسی قرار می دهد تا ببیند چه اعمالی به آن ختم خواهند شد. به عنوان مثال اگر وضعیت هدف قرار گیری یک مهره در بلوک خاصی از جدول باشد، فعالیتی که باید برنامه ریزی شود روش جایگیری مهره در آن بلوک جدول است. در این فعالیت ممکن است وضعیت شروع کار در زمانهای مختلف یکسان نباشد و لازم باشد تا با توجه به وضعیت هدف فعالیتهای زیادی بررسی شوند تا روش رسیدن به هدف از وضعیت فعلی حالت شروع مشخص شود . در این روش یک برنامه باید به صورتی فرموله شود تا از حالت هدف شروع نماید و به سمت وضعیت شروع فعلی به سمت عقب حرکت نماید تا مسیر درست را بیابد.
مزیت این روش در جاهایی بیشتر مشخص است که در آن امکان انجام فعالیتهای متعدد در وضعیت شروع بسیار زیاد باشد. در این نوع مسائل استفاده از زنجیره جلورونده جهت فرموله کردن برنامه ریزی بسیار ناکارآمد می نماید چرا که در آن صورت باید فعالیتهای زیادی بدون توجه به این که آنها ما را به سوی هدف می برند یا نه ، انجام شود.در واقع [color=#0000ff]زنجیره عقب رونده روش مطمئنی است که تضمین می کند که هر فعالیتی که توسط آن انتخاب می شود به طور قطع به هدف میرسد [/color]و بسیاری اوقات این مطلب باعث می شود که بررسی ها جهت برنامه ریزی بسیار کاراتر صورت گیرند. ویرایش شده در توسط oldmagina
  • Upvote 2

به اشتراک گذاشتن این پست


لینک به پست
اشتراک در سایت های دیگر
[size=5][color=#0000FF]مقایسه زنجیره جلورونده و زنجیره عقب رونده :[/color][/size]
برای این مقایسه مثال زیر خیلی کمک کننده خواهد بود.
واقعیات :
- [color=#ff0000]A[/color]
- [color=#ff0000]B[/color]
- [color=#ff0000]F[/color]
قوانین :
[color=#0000ff]1 - A (and) B --> C[/color]
[color=#0000ff]2 - A--> D[/color]
[color=#0000ff]3 - C (and) D --> E[/color]
[color=#0000ff]4 - B (and) E (and) F --> G[/color]
[color=#0000ff]5 - A (and) E --> H[/color]
هدف : هدفمان در این مثال اثبات H است.
ابتدا با [color=#ff0000]زنجیره جلو رونده[/color] شروع می کنیم . بر اساس استراتژی حل ناسازگاری ، قوانین را به ترتیبی که در بانک اطلاعاتی ظاهر شده اند ( شروع از [color=#0000ff]قانون 1[/color] ) انتخاب می کنیم .
در وضعیت اولیه [color=#0000ff]قوانین 1 و 2[/color] هر دو تحریک می شوند . با فعال سازی [color=#0000ff]قانون 1[/color] شروع می کنیم . این امر باعث می شود که [color=#ff0000]C[/color] به بانک واقعیتها اضافه شود و سپس [color=#0000ff]قانون 2[/color] را فعال می کنیم که [color=#ff0000]D[/color] به بانک واقعیتها افزوده می شود.
الان در بانک واقعیتها [color=#ff0000]A,B,C,D,F[/color] را داریم ولی به هدفمان که واقعیت [color=#ff0000]H[/color] است نرسیده ایم بنابراین پروسه را ادامه می دهیم . در ادامه [color=#0000ff]قانون 3[/color] تحریک و فعال می شود و واقعیت [color=#ff0000]E[/color] نیز به بانک اطلاعاتی ما افزوده می گردد. در نتیجه [color=#0000ff]قوانین 4 و 5[/color] هم تحریک می شوند . [color=#0000ff]قانون 4[/color] ابتدا فعال شده و حقیقت [color=#ff0000]G[/color] را به بانک اطلاعاتی می افزاید و سپس [color=#0000ff]قانون 5[/color] فعال می شود و واقعیت[color=#ff0000] H[/color] به بانک اطلاعاتی اضافه می گردد . به هدفمان که [color=#ff0000]H[/color] است رسیده ایم و پروسه را خاتمه می دهیم .
همین مساله را می توان با [color=#ff0000]زنجیره عقب رونده[/color] بررسی کرد. برای اجرای زنجیره عقب رونده علاوه بر بانک واقعیات و بانک قوانین به یک بانک اهداف نیز نیاز داریم . با شروع بررسی بانک اهداف شامل [color=#ff0000]H[/color] است که می خواهیم به آن برسیم . حال باید ببینیم کدام قوانین باید فعال شوند تا به این نتیجه برسیم . قانون 5 تنها قانونی است که [color=#ff0000]H[/color] را به عنوان نتیجه می دهد . لذا جهت رسیدن به [color=#ff0000]H[/color] ، مقدم های [color=#0000ff]قانون 5[/color] را که [color=#ff0000]A[/color] و [color=#ff0000]E [/color]هستند را باید داشته باشیم. در حال حاظر واقعیت [color=#ff0000]A[/color] در بانک اطلاعاتی موجود است ؛ بنابراین فقط لازم است تا مقدم دیگر یعنی [color=#ff0000]E[/color] را بدست بیاوریم. در این مرحله چون فقط همین کار برای بدست آوردن[color=#ff0000] H[/color] کافی است [color=#ff0000]H[/color] را از بانک اطلاعاتی خارج می نمائیم .
از این به بعد هدف اثبات [color=#ff0000]E[/color] است. [color=#0000ff]قانون 3[/color] در قسمت نتیجه شامل[color=#ff0000] E[/color] می شود بنابراین جهت بدست آوردن [color=#ff0000]E[/color] باید قسمت مقدم[color=#0000ff] قانون 3[/color] که شامل[color=#ff0000] C[/color] و [color=#ff0000]D[/color] می باشد را فراهم کنیم. چون هیچ کدام از این دو در بانک واقعیتها قرار ندارند لازم است هر دو آنها به دست آیند در نتیجه هر دو را به بانک اهداف اضافه می کنیم و [color=#ff0000]E[/color] را از بانک اهداف خارج می نمائیم. [color=#ff0000]D[/color] نتیجه[color=#0000ff] قانون 2[/color] است و مقدم [color=#0000ff]قانون 2[/color] که [color=#ff0000]A[/color] است در حال حاضر در بانک واقعیتها وجود دارد . به همین ترتیب [color=#ff0000]C[/color] از [color=#0000ff]قانون 1[/color] نتیجه می شود . مقدم[color=#0000ff] قانون 1[/color] ، [color=#ff0000]A [/color]و [color=#ff0000]B[/color] می باشند که هر دوی آنها در بانک واقعیتها قرار دارند بنابراین همه اهداف در بانک واقعیتها حل شده اند و نتیجه نهایی که[color=#ff0000] H[/color] می باشد قابل دستیابی شده است و کار تمام است.
در این مثال زنجیره عقب رونده احتیاج به اجرای تعداد کمتری از قوانین برای حصول به هدف را دارد ( 4 قانون از طریق زنجیره عقب رونده در مقابل 5 قانون زنجیره جلورونده). اگر بانک قوانین مقدار قوانین بیشتری از حال حاضر داشته باشد زنجیره جلورونده بازهم ناکارآمدتر عمل خواهد کرد.
[color=#0000ff]عموما زنجیره عقب رونده زمانی بهتر عمل می نماید که تعداد نتایج ممکن کم باشند ( یا فقط یکی باشد ) و تعداد واقعیت های ممکن زیاد باشد و لزوما تعداد کمی از آنها به نتیجه مطلوب برسند. در مقابل هنگامی که تعداد نتیجه های ممکن به نسبت واقعیتهای موجود بیشتر شود ، زنجیره جلو رونده مناسب تر به نظر می رسد .[/color]
در هنگام انتخاب زنجیره جلورونده و یا زنجیره عقب رونده برای یک مساله باید به این که فرد خبره در این مساله چگونه تصمیم میگیرد ، توجه شود . چرا که استدلالهای مبتنی بر قانون عموما جهت [color=#ff0000]سیستم های خبره[/color] ( Expert Systems ) مورد استفاده قرار می گیرند. ویرایش شده در توسط oldmagina

به اشتراک گذاشتن این پست


لینک به پست
اشتراک در سایت های دیگر
[size=5][color=#0000FF]سیستمهای خبره مبتنی بر قانون :[/color][/size]
یک سیستم خبره جهت مدل سازی رفتار یک فرد خبره در یک فیلد خاص مانند پزشکی یا زمین شناسی طراحی می شود. سیستمهای خبره مبتنی بر قانون طراحی می شوند تا سیستم را قادر سازند از قوانین مورد استفاده فرد خبره استفاده نماید و نتایج را از مجموعه واقعیاتی که در سیستم مشاهده می شود به دست بیاورد.
[size=5][color=#0000FF]اشخاصی که در یک سیستم خبره شرکت دارند:[/color][/size]
[color=#ff0000]کاربر پایانی[/color] ( End-User ) یک سیستم فردی است که به سیستم نیاز دارد. به عنوان مثال در سیستم تشخیص پزشکی ، کاربر نهایی می تواند یک پزشک یا هر فردی که ادعا دارد می تواند به تشخیص مرض بپردازد ، می باشد.
[color=#ff0000]مهندس دانش[/color] ( Knowledge Engineer ) فردی است که قوانین سیستم را طراحی می نماید. جهت طراحی قوانین می توان به روند کاری فرد خبره نگاه کرد یا می توان از او سوالاتی در مورد نحوه فعالیتش پرسید.
[color=#ff0000]متخصص فن[/color] ( Domain Expert ) نقش بسیار مهمی در طراحی یک سیستم دارد. در مساله سیستم تشخیص پزشکی ، متخصص فن نیاز دارد تا بتواند به مهندس دانش بگوید که او چطور بیماریها را تشخیص می دهد.
[size=5][color=#0000FF]معماری یک سیستم خبره :[/color][/size]
[center]


[img]http://www.emeraldinsight.com/content_images/fig/0730150303002.png[/img][/center]

[color=#ff0000]پایه دانش [/color]( Knowledge Base ) شامل دانش محیط خاص است که به وسیله فرد خبره به منظور استخراج نتایج از واقعیتها مورد استفاده قرار می گیرد . در سیستم خبره مبتنی بر دانش ، دانش محیط در قالب یکسری قانون بیان می شود.
[color=#ff0000]سیستم مفسر[/color] (ٍ Explanation System ) اطلاعاتی به کاربر در مورد چگونگی دستیابی موتور استنتاج به نتیجه می دهد. وجود این قسمت کاملا ضروری است مخصوصا اگر سیستم در شرایط بحرانی کاربرد داشته باشد. مثلا سیستمی برای تجویز دارو داشته باشیم. اگر سیستم به صورت نادرست استدلال کرده باشد و نتایجش درست نباشد ، کاربر می تواند با بررسی داده هایی که سیستم مفسر در اختیار او قرار می دهد به این مساله پی ببرد.
[color=#ff0000]بانک واقعیات[/color] ( Fact Database ) شامل داده های مشخص کننده مساله می باشد . این داده ها در یک مساله خاص به منظور استخراج نتیجه به کار گرفته می شوند . در سیستم خبره پزشکی ، این بانک شامل اطلاعاتی که در مورد یک بیماری است میباشد.
کاربر سیستم خبره با استفاده از [color=#ff0000]واسط کاربر [/color]( User Interface ) با سیستم ارتباط برقرار می نماید. واسط کاربر دسترسی به موتور استنتاج ، سیستم مفسر و ویراستار پایه دانش را برای کاربر فراهم می نماید. [color=#ff0000]موتور استنتاج [/color]( Inference Engine ) قسمتی از سیستم است که از قوانین جهت استخراج نتایج استفاده می نماید. موتور استنتاج از زنجیره جلو رونده ، زنجیره عقب رونده یا ترکیبی از این دو به منظور استنتاج از داده هایی که در هر لحظه وجود دارند استفاده می نماید.
[color=#ff0000]ویراستار پایه دانش[/color] ( Knowledge Base Editor ) به کاربر اجازه می دهد تا اطلاعاتی که در پایه دانش وجود دارند را ویرایش نماید ویراستار پایه دانش معمولا در دسترس کاربر نهایی قرار نمی گیرد ، اما توسط مهندس دانش یا متخصص فن به منظور تامین یا اصلاح دانشی که در سیستم وجود دارد مورد استفاده قرار می گیرد.
[size=5][color=#0000FF]پوسته سیستم خبره :[/color][/size]
معمولا قسمتهایی از سیستم خبره به جز قسمتهای در بردارنده اطلاعات خاص مساله یا خاص محیط در [color=#ff0000]پوسته سیستم خبره [/color]( Expert System Shell ) قرار می گیرند. این پوسته یک ابزار عمومی است که می تواند جهت ساخت تعدادی سیستم خبره متفاوت ، بسته به اینکه چه دانشی اضافه می شود ، به کار رود. یک مثال از چنین پوسته ای CLIPS یا سیستم تولید یکنواخت زبان C می باشد ( C Language Integrated Production System ) .
مثالهای دیگر می توانند Eclipse و OPS5 و ART و IESS باشند . ویرایش شده در توسط oldmagina
  • Upvote 4

به اشتراک گذاشتن این پست


لینک به پست
اشتراک در سایت های دیگر
[size=5][color=#0000FF]الگوریتم Rete :[/color][/size]
یکی از مشکلات موجود سیستم های خبره ، تعداد زیاد مقایسه هایی است که باید بین قوانین و واقعیتهای موجود بانک اطلاعاتی انجام شوند. در برخی سیستمها صدها و گاهی هزاران قانون وجود دارد و اجرای مقایسه ها به ازای هر قانون می تواند مشکل ساز باشد. [color=#ff0000]الگوریتم Rete[/color] روشی کارا برای حل این مشکل است و به وسیله تعدادی از ابزارهای سیستم خبره مثل OPS5 و Eclipse مورد استفاده قرار گرفته است.
ريالثفث یک گراف جهت دار ، حلقوی و ریشه دار ( در واقع یک درخت جستجو ) می باشد. هر مسیر از نود ریشه تا نود برگ در درخت ، سمت چپ یک قانون را نمایش می دهد . هر نود جزئیاتی در مورد واقعیتهایی که به وسیله آن قوانین در آن نقطه از مسیر منطبق هستند را ذخیره می نماید . به محض اینکه واقعیتها عوض شوند ، واقعیتهای جدید در Rete ، از طرف ریشه به سمت برگها پخش می شوند و اطلاعات ذخیره شده در نودها را به صورت مناسب تغییر می دهند . این تغییر به مفهوم اضافه کردن اطلاعات جدید یا تغییر اطلاعات در مورد یک واقعیت قبلی یا حذف یک واقعیت قبلی است .در این روش سیستم فقط نیاز دارد تا واقعیت های جدید را بررسی نماید و فقط قوانینی را پیمایش نماید که این واقعیتهای جدید در آنها قرار دارند .
در الگوریتم Rete با توجه به این اصل کلی که هنگام استفاده از [color=#ff0000]زنجیره جلو رونده[/color] در سیستمهای خبره ، مقادیر اشیا به مقدار نسبتا کمی تغییر می کنند ، تعداد اندکی از نودها احتیاج به تغییر خواهند داشت . در چنین سیستم هایی ، الگوریتم Rete بهبود قابل توجهی در کارایی را نسبت به سایر روندها باعث می شود ؛ هرچند که کارایی این الگوریتم وقتی که اشیا به صورت پیوسته تغییر کنند کمتر می شود.
  • Upvote 1

به اشتراک گذاشتن این پست


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

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

میخواستم بدونم میشه با پیتون و سی‌شارپ مثلا پیاده‌سازیش کرد برای محیط ویندوز یا لینوکس!(البته پیتون و سی پلاس برای لینوکس! :) که اوبونتو باشه لینوکسش...!!‌)...

؟

به اشتراک گذاشتن این پست


لینک به پست
اشتراک در سایت های دیگر

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

کاربر محترم برای ارسال نظر نیاز به یک حساب کاربری دارید.

ایجاد یک حساب کاربری

ثبت نام برای یک حساب کاربری جدید در انجمن ها بسیار ساده است!

ثبت نام کاربر جدید

ورود به حساب کاربری

در حال حاضر می خواهید به حساب کاربری خود وارد شوید؟ برای ورود کلیک کنید

ورود به سیستم

  • مرور توسط کاربر    0 کاربر

    هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.