نادی

برنامه نویس و تحلیل گر داده علاقه مند به موتور های جستجوی مفهومی

May 052014
 

همروندی :
اگر تراکنش ها به صورت متوالی انجام شوند
در سیستم چند کاربره بایستی بصورت همروند انجام شود
که باید کنترل شود
مشکلات همروندی :
۱- نتیجه از دست رفته
۲- خواندن داده ناجور
۳- تحلیل ناسازگار

استفاده از تکنیک قفل کردن
قفل : امتیازی است برای دستیابی به
اندازه واحد داده قفل شدنی باید متفاوت باشد تا تراکنش ها بر اساس
نیازشان داده را قفل کنند
انواع قفل :
۱- قفل دوگانه Binary
۲- قفل چندگانه

هر تراکنش می تواند داده را Lock و یا UnLock کند
نکته : قفل دوگانه بسیار محدود کننده است

قفل چندگانه :

۱- قفل خواندن (اشتراکی) : تراکش ها همزمان می توانند داده ها را
بخوانند
۲- قفل نوشتن (انحصاری ) : برای تغییر یا نوشتن داده لازم است
ایا قفل چند گانه همروندی را تضمین می کند ؟
خیر تضمین نمی کند ، در واقع همان سه مشکلی که مطرح کردیم پیش
می آید

قفل دو مرحله ای پایه :
انواع قفل دو مرحله ای
۱- ۲pl محافظه کار
۲- ۲pl جسورانه ( تا زمانی که به داده نیاز ندارد قفل نمی کند )
ولی ۴ مشکل دیگر مطرح می شود
۱- تضعیف همروندی
۲- بن بست
۳- طرد تسلسلی
۴- گرسنگی یا قحطی زدگی

 

 

May 032014
 

خلاصه درس مبانی محاسبات نرم ۹۳/۰۲/۱۳
فازی برای سه اصل اساسی تدریس می شود
۱- کنترل های فازی
۲- Expert system ها
۳- DFS تصمیم گیری فازی
———————
Fuzzy Logic Controller(FLC)

یک سری از متغیر ها state هستند که وابسته به شرایط مساله هستند

تمیزی یا کثیفی یک لباس بستگی به چربی و … می شود اظهار نظر کرد

متغیر های یک کنترل مشابه خروجی هست
تابع کنترلر هم با توجه به state ها خروجی مشخص می شود

معمولا با توجه به هدف گذاری
با توجه state ها می توانیم برای متغیر های اظهار نظر کنیم که چه
موقع چه مقادیری را می توانند به خود اختصاص دهند

FLC یک تقلیدی از نحوه تصمیم گیری انسان است

مثال : سود بانکی ، FLC می توانند مشابه افراد تصمیم گیری کنند

appoximatry deciding

در حیطه آموزش

برای مسایلی که برای کنترل آنها قوانین زیادی وجود دارد انسان تواناییش
پایین می آید و می توانیم از تعداد زیادی FLC به صورت AND و
OR شده استفاده کنیم

WHY FLC ?
۱- Parallel or distributed Controlکنترل های توزیع شده
موازی
۲-Linguistic Control
۳- Robust Control

آیا سیستم های فازی درصد خطای زیادی دارند ؟
درصد rubustnes دست خودمان است ، با منطق فازی در هر دو
حوزه بسیار مناسب می توانیم عمل کنیم

fis در تمامی جاهایی که عدم قطعیت داریم استفاده می شود

معماری FLC
[image flc architecture]

خروجی می تواند به صورت غیر فازی باشد که از Fuzzification
interface استفاده می کنیم ( حاشیه چپ و راست اضافه می کنیم
که شکل ذوزنقه ای بشود )

خروجی FLC می تواند به صورت فازی باشد که ممکن است برای
کنترل زیاد مناسب نباشد بنابر این از Defuzzification interface
استفاده می کنیم

یک FLC خوب ، بررسی state های قبلی را داشته باشد
از روی KB بتواند به تصمیمات مقتضی دست پیدا کند
interface های فازی سازی :
می خواهیم اعداد کریسپ را به فازی تبدیل کنیم
باید شناختی روی مساله وجود داشته باشد

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

۱- Discretization
۲- Normalization برای سنجش شباهت
۳- Classifier های بخش بندی کننده فازی برای دسته بندی
۴- Membership function of primary fuzzy set

قوانین چون قرار است از انسان آموخته شود بنابراین روش های مختلفی
را می توانیم برای fuzinnes استفاده کنیم
مثال Discetization :
یک سری اعداد داریم از -۲٫۴ تا +۱٫۴ که اندیس گذاری می کنیم

مثال پارتیشن بندی فازی :
در حالتی که classifier های خوبی نداشته باشیم می توانیم از روش
های خبرگانی استفاده کنیم

مثال Membership
کافیست برای اعضا جدول درجه عضویت را تعریف می کنیم

Rule Base
عصاره دانش خبرگانی است که در قالب if then rule در می آید

قوانینی که در پایگاه دانش جمع آوری میشود می تواند به صورت فازی و
یا غیر فازی باشد

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

مثال اسلاید ۱۷ :
روی محور x قوانین با توجه به ورودی های A1 تا An
و روی محور y قوانین با توجه به ورودی های B1 تا Bn

نکته: ممکن است قوانین متفاوتی داشته باشیم که ورودی ها در آنها
صدق کند

جلسه بعد متد های ممدانی و لارسن و Tksumato و TSK را روی
FLC ها بررسی می کنیم

 

 

Apr 262014
 

خلاصه درس مبانی محاسبات نرم ۹۳/۰۲/۰۶
زیر ساخت مورد نیاز برای ترکیب قوانین مختلف فازی

اسلاید ۲۴
Inference Methods
دو تا قانون بر اساس منطق فازی ، فرض و حکم را داریم
برای هر یک از قوانین درجه تحریک ( ارضا شدن ) آن قانون را بدست
بیاوریم
در روش ممدانی : برای اینکه یک استدلال فازی را صورت بدهیم از اپراتور
مینی مم فازی که ترکیبی هست که در قالب max min مطرح می شود
قابل تعمیم روی قوانین مختلف فازی هست

اسلاید ۲۵

هر تعداد قانون که داشته باشیم با عملگر مینیمم یکپارچه می کنیم و آلفا
آی را محاسبه می کنیم و مینیمم می گیریم

U0 و V0 را می دهند
قانون اول : بین عضویت U0 در A1 و عضویت V0 در B1مینیمم را
محاسبه می کنیم که آلفا می نامیم

طبق روش ممدانی : از بین ذوزنقه سفید و مشکی ماکزیمم را در نظر می
گیرد

اسلاید ۲۷ :
اگر سناریو ها بجای دو عدد حقیقی دو مجموعه فازی باشد کمی مساله
پیچیده تر می شود

اسلاید ۲۸ :
دو عدد فازی به ازای هر قانون داریم
‘A و’B هم دو سناریوی فازی داریم

پس در دو حالت ممدانی ( وروی کریسپ و فازی ) با ترکیب کردن
maximum similarity

اسلاید ۲۹ :
مثال عددی :
A(0,2,4)
B(3,4,5)
در تک سناریوی U0=3
محاسبه می کنیم که A را در چه نقطه ای قطع میکند

اسلاید ۳۰ :
مثال ( ورودی فازی )
نقاط تقاطع ۲/۳ هست گه ذوزنقه جدید بدست می آوریم

اسلاید ۳۱ :
در لارسن هر جاکه minimum داریم Productرا جایگزین می کنیم

اجتماع بین قانون یکم تا قانون n ام باید داشته باشیم

اسلاید ۳۲ :
دو عدد فازی در نظر می گیریم
دو تا سناریوی U0 و V0 داریم

مینیمم عدد آلفا ۱ را به ما میدهد

در قانون اول مثل سفید را بدست می آووریم
و در قانون دوم مثلث سیاه رنگ را بدست می آوریم

مثال : سرعت ماشین زیاد بوده و جاده لغزنده بوده سپس ماشین تصادف
کرده (دراینجا دو عدد فازی داریم و یک حکم)

اثربخشی فازی بیشتر در جایی است که انسان منشا اثر هست
کثیف بودن لباس ( پارامتر فازی ) تعداد دور ماشین لباسشویی مورد نیاز
برای شستن لباس ها

اسلاید ۳۸ :

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

اسلاید ۳۹ : دو تا قانون داشتیم فرضیات دو عدد … شکل هستند

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

آخرین تکنیک : TSK
اگر سناروی U درمجموعه فازی A و سناریوی V در مجموعه فازی B
باشد

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

 

 

Apr 222014
 

از فصل ۱ تا ۷ به مقدمات نظریه های فازی می پرداخت

اما از فصل ۸ به بعد با کاربرد های فازی سر و کار داریم برای مسایل پیچیده از کاربرد فازی استفاده می کنیم

استنتاج از یکسری اطلاعات که به صورت if then بیان می کنیم و یک سری گزاره ها نتیجه گیری درست را انجام دهیم

مثال : ” اگر امروز هوا سرد است پس لباس گرم بپوش ”

یک سری فرض داریم و یک سری قوانین که بر اساس آنها نتیجه می گیریم

اگر قانونی داشته باشیم p آنگاه q و فرض ما p باشد پس q را نتیجه می گیریم

هر گزاره شرطی با نقیض خودش هم ارز است

قیاس تعدی :
p–>q و q–>r پس p–>r

اگر a جزء یک مجموعه فازی باشد آنگاه b هم جز< مجموعه فازی باشد

فرض می کنیم نمودار یک تابع را داریم
محور x ها و محور y ها
اگر نقاط x و y آن را پیدا کنیم
f(x)

ta-isc-GMP2
…..

 

از گسست و پیچش رابطه بدست می آوریم

۲ تا ترکیب مهم داریم : ممدانی – لارسن
هر قانون یک رابطه است

حالا می خواهیم در مورد R y تصمیم گیری بکنیم
در فصل ۸ یک قانون بسیار مهم هست که نیاز استنتاجی در حالت کلی GMP
هست

ta-isc-compositionOfFuzzy

ta-isc-GMP

ورودی را با خروجی ترکیب کن میشه خروجی

ترکیب را به دو روش می توانیم انجام دهیم :
به دو روش Max min برای ممدانی
یا Max.Dot product برای لارسن

هر گزاره دو بخش دارد مقدم (فرض) ، تالی ( نتیجه )
به هر کدام از if then rule ها یک دلالت فازی ( implication ) می گوییم

خود این if then rule ها رابطه هستند
رابطه ها نتیجه حاصلضرب کارتزینی هستند

اسلاید ۱۱
Fuzzy Implications
هر rule را می توانیم به صورت گسست فازی یا پیچش فازی تعریف کنیم

مینی مم –> پیچش –> ممدانی
ماکزیمم دات –> پیچش –> لارسن

اکر یک rule داشته باشیم بر دلالت فازی اگر بینش بجای اشتراک مینی مم بگذارم
پیچش ممدانی می شود و اگر دات بگذاریم ، پیچش لارسن می شود

گسست بین دو مجموعه اجتماع است
پیچش بین دو مجموعه اشتراک است
اگر دما باشد آنگاه رطوبت نسبتا بالاست
دما = x
نسبتا بالا = یک ترم زبانی است
این دلالت فازی یک if then rule هست
MIMO

جعبه سیاه ما یک سری rule هستند
از هر کدام از قوانین که به دو نوع تقسیم می شدند ( mamdani – larsen )

۵ تا قضیه داریم : که با استفاده از آنها استنتاج ها را بدست می آوریم :
۱- اگر یک rule داشته باشیم که وردویش یکتایی باید و خروجی یکتایی باشد ،
ورودی یک عدد است rule را تفسیر می کنیم ( یا دلالت ممدانی یا دلالت لارسن )
ورودی را داریم به ممدانی یا لارسن می دهیم و خروجی را می گیریم

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

قانون سوم :
یک مجموعه ای از Rule ها داریم ، هر کدام از قانون ها یک ورودی داریم و یک
خروجی
خروجی می شود اجتماع ناشی از تک تک rule ها

پایگاه قوانین که خیلی rule دارد ، روی خروجی ها اجتماع می گیریم
MISO

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

قانون پنجم :

اصل کار GMP است
پایگاه دانش خود را درست کنید

جعبه فازی متلب را کار کنید

اتاق ۲۱۸ – اتاق تدریس یار

Apr 192014
 

خلاصه درس مبانی محاسبات نرم
فصل نهم

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

نقش تابعی هم می تواند داشته باشد

با دامنه های فازیمختلف می توانیم برد های فازی مختلف را داشته باشیم

اسلاید ۵:
پیچش فازی :fuzzy Conjuction
گسست فازی: fuzzy dijunction

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

اسلاید ۷ :
قانون ۱ : x و y تقریبا مساوی هم هستند
قانون ۲ : x کوچک است

اسلاید ۸ :
به ازای همه x ها با چه درجه عضویتی در R تعریف شده

اسلاید ۹ :
GMP : طریق حالات تعمیم یافته تمام حالت هایی که می تواند مساله را پوشش بده در نظر می گیریم و روی آن واحد تعیین می کنیم

در این حالت به صورت نوشتاری
ورودی داریم x
قانون
نتایج
اسلاید ۱۰ : if then rule ها در زبان عامیانه هم می توانند کاربرد داشته باشند

اسلاید ۱۱ : در استدلال های فازی از p norm ها می توانیم استفاده کنیم

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

تفاوت GMP و if then rule
در GMP قوانینی از قبل ذخیره شده است
مثل اثبات یک قانون ریاضی

———————
تعریف درجه عضویت ها :

– میانگین درجه عضویت ها
– تفاضل درجه عضویت ها
می توان از حاصل ضرب دو تا x و دو تا y می توانیم بدست آوریم که اپراتور لارسن Larsen می گوییم

*** مهم ***

یک rule base قوانین با چند ورودی و خروجی تعریف می شود MiMo

اسلاید ۱۵ :
ترکیب کردن قوانین
اگر v در A باشد سپس w در C هست

نکته اساسی :
با توجه به اپراتور های قبلی حداقل اپراتور برای نتایج ‘C تعریف کنیم

اسلاید ۱۶
فرض کنیم که ورودی u0 کریسپ باشد

روش Larsen یم زیر مجموعه ای از روش Mandani است برای تک عضو لارسن مثلثی است که در داخل ذوزنقه … قرارمی گیرد

جمع بندی :
هر چه قانون در ذهن بشر به صورت فازی وجود دارد می توانیم در یک دیتا بیس جمع آوری کنیم

در صورتی که یک ورودی و یک خروجی داشته باشیم یک درجه عضویت الفا ۱ می توانیم تعریف کنیم
بر اساس خروجی مثلث و ذوزنقه داشته باشیم

که خروجی لارسن سخت گیرانه تر است
و خروجی مندالی سهل گیر تر است

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

Apr 052014
 

تاریخ تحویل : ۳۰ فروردین

 

 

 

adb-ex1-1

 

جواب این سه مساله را می توان در منابع زیر یافت :

http://www.codeproject.com/Articles/673293/Calculate-exponential-function-with-Taylor-series

http://stackoverflow.com/questions/124417/is-there-a-max-function-in-sql-server-that-takes-two-values-like-math-max-in-ne

http://www.sqlservercentral.com/Forums/Topic1231697-392-1.aspx

 

adb-ex1-2

adb-tamrin-mis1

 

 

 

adb-ex1-3

جواب : در روش دوم تعداد پرسنل حتی اگر واحدی برایشان تعریف نشده باشد را نمایش میدهد

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

هر دو جدول بدست آمده از هردو روش دارای ۳ ستون است

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

 

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

ستون سوم تعداد فرزندان پرسنل آن واحد هست که در روش اول از جدول child  بر اساس پرسنل که unitid انها با unitid واحد ها برابر است ولی در روش دوم تعداد child که unidid در جدول پرسنل شمارش می شوند

adb-tamrin-mis23

تاریخ تحویل ۱۶ اردیبهشت

adb-ex2

 

 

Apr 052014
 

در فضای نمونه Event

مثلا در فضای انداختن تاس فضای نمونه به صورت مساوی ۱/۶ خواهد بود
ولی در فضای نا متقارن ممکن است فضای نمونه رخداد مساوی نباشد
احتمال اجتماع آن پیشامد ها برابر بافضای کل است
در حالتی که پیشامد ها با هم اشتراک داشته باشد
Peobability Theory
بین رخدادن و دخ ندادن آن نسبتی وجود دارد.

در فضای احتمالات یکسری قوانین اثباتی دقیق داریم که انجام محاسبات را امکان پذیر می کند

Possibility Distribution
به جای این که از تابع احتمال استفاده کنیم از تابع درجه عضویت استفاده می کنیم

می توانیم میزان رخداد هر event را پیاده سازی کنیم

جایگاه Probability و Possibility
مثلا می خواهیم حدسبزنیم که سوفیا چند تا خواهر دارد
از تابع توزیع احتمال p استفاده می کنیم
با توجه به شهر محل سکونت

مثال دیگر :
فرض میگیریم که Probability و Possibility مقدارآنها بزرگتر از ۱ نمی شود

یک رابطه :
مثلا اگر یک پدیده با امکان بالا رخ بدهد ، احتمالا دفعه بعدی هم با احتمال بالا رخ می دهد

امکان کلی گویی تر هست
احتمال جزیی گویی تر هست

مقایسه Probability و Possibility

اشتراک یک تعداد event مستقل برابر با حاصل مینی مم رخداد ها می شود

Fuzzy Event
مثلا انتشار بیماری ، در کنار فرد بیمار قرار گرفتن احتمال بیمار شدن وجود دارد و قطعی نیست

و تابع توزیع احتمال نمی توان رسم کرد
در حالتی که Evnet ها خودشان فازی هستند possibility Fuzzy داریم

تعاریف :
برای Fuzzy event ها می توانیم تابع عضویت تعریف کنیم
اسلاید ۱۱

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

در حالت Fuzzy Event های پیوسته از آلفا کات ها استفاده می کنیم
تمام سناریو هایی که برای a اندیس الفا وجوددارد را محاسبه می کنیم
به ازای همه آلفا ها p اندیس آلفا ها را پیدا می کنیم

مثال حالت گسسته : ( اسلاید ۱۵ )
(اسلاید ۱۸ ) بین مجموعه های فازی مختلف کدامیک قطعیت بیشتری دارد

اسلاید ۲۰ )
Measure of Fuzziness
اگر a یک مجموعه Crisp باشد ، هیچ fa برابر ۰ خواهد بود ( هیچ شکی وجود ندارد)
ولی در مجموعه های فازی

shannon Entropy (اسلاید ۲۱)
از روی آنتروپی شانون میتوانیم میزان عدم قطعیت را محاسبه کنیم
با استفاده از منفی آن، میزان عدم قطعیت را می توانیم پیدا کنیم

 

Mar 082014
 

خلاصه درس مبانی محاسبات نرم – دکتر قطعی – ۹۲/۱۲/۱۷

اسلاید ۱۷ :
سوپریمم

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

در این الگوریتم روی اینترنت تحقیق کنید
اسلاید ۱۸ :
ماکزیمم سازی تابع f
اسلاید ۲۲ :
ماکزیمم سازی روی مجموعه های کریسپ
امکان بهینه بودن نقطه را چک می کند
فضای شدنی هم می توانیم میو D x استفاده کنیم

پس x می خواهیم که امکان شدنی بودن بالا باشد و درجه عضویت یا امکان …

اسلاید ۲۳ :
مثال :
این ایده برای فازی دامین هم می توانیم استفاده کنیم

و ممکن ترین بهینه را

هر چه X به مرکز دایره نزدیک تر باشد ، جواب بهتر است
هر چه از مرکز فاصله بگیریم از هدف دورتر می شویم ( میو کمتر می شود )

اسلاید ۲۵ :
مثال از x0 به بالا
دو تابع مخالف هم هستند
یک نقطه بهینه پیدا می شود که اگر از آن فاصله بگیریم میو Dx یا میو Mx از این دو کمتر می شود

*************** حل مسایل بهینه سازی در حالت عدم قطعیت ***************

اسلاید ۲۶ :
mio Mx در بازه ۰ و pi
و mio در بازه ۰ و pi
یک تک نقطه مشترک داریم

ولی در بازه pi , 2 pi
در نقطه ۲pi هر دو تابع به درجه عضویت ۱ رسیدیند
نقطه بهینه سراسری نقطه ۲pi هست
——————————————
اسلاید ۲۷ :
اگر خود تابع هدف مقدارش فازی باشد

آیا می توانیم از توابع فازی مشتق و انتگرال بگیریم ؟

تعریف انتگرال تابع فازی f :
یک کات را تهیه می کنیم
یک طرف f مثبت را داریم و یک طرف f منفی داریم

به ازای هر کدام از درجه عضویت های آلفا ….
دو انتگرال را با هم جمع می کنیم

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

اسلاید ۲۹ :
مثال
کافی است در آلف داده شده ۰٫۷ ببینم کدام یک از توابع در این بازه هستند
تنها f 2 x در این بازه است
که مقدار ۷/۳ را به ما بر می گرداند

اسلاید ۳۰

در آلفا کات ۰٫۴ سه تابع داریم که درجه عضویت آنها بزرگتر مساوی ۰٫۴ هست
که در اینصورت برای تمام توابع انتگرال گیری را انجام می دهیم
————–
پس برای انتگرال گیری هم مشابه مفاهیم ریاضی کلاسیک می توانیم استفاده کنیم

*** ما در حوزه انتگرال گیری با توجه به نیاز ها توابع را تعریف می کنیم ***

به عنوان نمونه :
بر اساس اصل توسیع زاده : یک بازه فازی داده اند ، مینیمم میو A , میو B

به ازای هر Z دلخواه
انتگرال را با استفاده از مفاهیم انتگریال غیر فازی و اصل توسیع زاده

به دو فاز
به ازای Z داده شده میو …
ماکزیمم را انتخاب می کنیم

Fuzzy interval …

اسلاید ۳۲ :

می خواهیم در بازه مقادیر مختلف z 0 و۲و۴و۶ خواهد بود
که با مقادیر مختلف

فعلا دو نوع انتگرال گیری گفتیم
حالت ۱ – : به درجه عضویت خوشان انتگرال می گرفتیم
حالت ۲- حالت مقدار تابع f را به ما دادند که انتگرال آن در بازه فازی را می خواهند

نوع سومی هم می توانیم تعرریف کنیم بر اساس اصل توسیع زاده :
چون مشتق برعکس انتگرال هست می توانیم انتگرال را بگیریم

اسلاید ۳۴ :
مثال :
تابع x^3 مقادیر مختلفی که در مشتق حضور دارند ۳ تا سناریو داریم

اسلاید ۳۵
مثال : دیفرانسیل گیری
از هر کدام از توابع به صورت مستقل مشتق بگیریم
می توانیم روی درجه عضویت های مختلف کار کنیم

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

 

Mar 062014
 

صورت تمرین : از روی یک ماتریس رابطه به چه صورت می توان به تعدی بودن ( Transitive ) آن پی برد
و از روی یک ماتریس رابطه مانند R به چه صورت می توان بستار تعدی آنرا ساخت

جواب :

تعریف رابطه تعدی  (Transitive )

اگر عضوی با عضو دوم و عضو دوم با سوم و اول با سوم ارتباط داشته باشد

با استفاده از ماتریس :

response-soft-computing

 

بستار بازتابی Transitive Closure : کوچکترین رابطه ای هست مثل ‘R که شامل R هست و یک رابطه  را کم دارد تا بازتابی شود
حداقل رابطه ای شامل R هست و شامل رابطه اولیه باشد

response-soft-computing2

 

 

Mar 032014
 

 

فصل اول:

مفاهیم پایگاه داده

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

تعاریف اولیه:

سیستم‌ ذخیره و بازیابی اطلاعات:

هر سیستمی که به کاربر عادی یا برنامه نویس امکان دهد تا اطلاعات خود را ذخیره، بازیابی و پردازش کند.

تعریف داده:

تعریف اول- هر مجموعه‌ای از داشته ‌ها (دانستنیها)

تعریف دوم- نمایش ذخیره‌شده اشیاء فیزیکی، چیزهای مجرد، داشته‌ها، رویدادها یا چیزهای قابل مشاهده که در تصمیم‌سازی بکار می‌آیند.

تعریف سوم- دانستنیهای خام که معنای اندکی دارند؛ مگر اینکه به صورت منطقی سازمان‌دهی شده باشند.

تعریف چهارم (از دیدگاه ANSI) – نمایش پدیده‌ها، مفاهیم یا شناخته‌ها به طرزی صوری و مناسب برای برقراری ارتباط، تفسیر یا پردازش توسط انسان یا بطور خودکار

البته تعاریف دیگری هم برای داده ارائه شده است که به همین موارد اکتفا می­کنیم.

 

تعریف اطلاعات (اطلاع)

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

تعریف پایگاه داده‌ها (بانک اطلاعات)

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

تعریف سیستم مدیریت پایگاه داده‌ها (DBMS)

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

DBMS به کاربر امکان می‌دهد تا پایگاه داده‌های خود را تعریف کند، در پایگاه داده‌های خود عملیات انجام دهد و روی پایگاه داده‌های خود تا حدی کنترل داشته باشد.

پایگاه داده در مقابل فایل

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

اما روش دوم روش پایگاهی است. در این روش از پایگاه داده­ها جهت ذخیره و بازیابی داده­ها استفاده می­کنیم و عملیات خود را تحت کنترل یک سیستم مدیریتی قدرتمند بنام سیستم مدیریت بانک اطلاعات (DBMS) انجام می­دهیم.

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

برای روشن­تر شدن بحث، در ادامه مهمترین تفاوت­های این دو نوع سیستم ذخیره و بازیابی را شرح می دهیم.

معایب روش فایلینگ (پرونده ای) نسبت به روش پایگاهی

۱- عدم وجود محیط مجتمع ذخیره‌سازی اطلاعات و عدم وجود سیستم یکپارچه

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

۲- افزونگی داده و عدم وجود سیستم کنترل متمرکز

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

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

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

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

db1

db2

۳- عدم وجود ضوابط ایمنی کارا و مطمئن

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

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

۴- خطر بروز پدیده ناسازگاری داده‌ها (عدم مدیریت تراکنش)

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

– یکپارچگی (Atomicity): هر تراکنش می تواند خود از یکسری عملیات جزئی­تر تشکیل شده باشد. گاهی یک تراکنش در حالیکه تنها چند دستور اول آن اجرا شده، بدلیلی (مانند قطع برق) اجرای ادامه دستوراتش متوقف می­شود. در روش فایلینگ و حتی در پایگاه داده­های فاقد DBMS در چنین مواقعی داده ها دچار ناهمخوانی می شوند و عملا داده­ها نامعتبر می­گردند. برای مثال فرض کنیم در یک نرم افزار بانک دستوری را اجرا کرده­ایم که قرار است ۱۰۰۰۰ تومان از حسابی به حساب دیگر منتقل کند. در اینجا تراکنشی داریم که شامل ۲ عملیات اصلی است. اول کسر ۱۰۰۰۰ تومان از حساب اول و سپس افزودن آن به حساب دوم. حال اگر بعد از اجرای دستور اول و قبل از اینکه دستور دوم اجرا شود برق قطع شود، چه اتفاقی می­افتد؟ روشن است که اطلاعات ما دچار اشکال می شوند. اما DBMS با مکانیزمهای مطمئن خود تضمین می کند که یک تراکنش یا بطور جامع اجرا شود و یا اینکه اصلا اجرا نشود (در واقع تغییرات اعمال شده طوری خنثی گردد که گویی تراکنش اصلا اجرا نشده است).

– همخوانی (Consistency): اجرای صحیح یک تراکنش باید سیستم را همواره از یک حالت صحیح به حالت صحیح دیگری ببرد.

– انزوا (Isolation): اجرای همروند چند تراکنش نباید تاثیری روی یکدیگر داشته باشد. در واقع اجرای دو تراکنش بطور همروند همان نتایجی را باید داشته باشد که اجرای پشت سرهم آنها خواهد داشت.

– مانایی (Durability): نتایج اجرای یک تراکنش بر روی داده­ها نباید موقتی باشد و بایستی پایدار بماند.

۵- عدم امکان اشتراکی شدن داده‌ها

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

۶- حجم زیاد برنامه‌سازی

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

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

۷- وابستگی برنامه‌های کاربردی به محیط ذخیره‌سازی داده‌ها

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

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

دید خارجی

۱- دید یک کاربر خاص نسبت به داده‌های ذخیره‌شده در پایگاه داده است و بنابراین از کاربری به کاربر دیگر می تواند متفاوت باشد. بعنوان مثال در شکل ۲ دیدیم که سه نوع کاربر مختلف با سیستم اتوماسیون دانشگاه کار می کردند. با توجه به اینکه حیطه کاری هر کاربر متفاوت است، دیدی متفاوت نسبت به داده­ها دارد. در واقع دید هر کاربر یک دید جزئی روی بخشی از داده های بانک می باشد. به مجموع دید تمام کاربران، سطح خارجی بانک اطلاعات گفته می­شود.

 

دید ادراکی (مفهومی)

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

db3

دید داخلی

این دید در سطح فیزیکی و محیط ذخیره سازی مطرح می شود. در این سطح به داده­ها با دیدی سطح پایین­تر نگاه می­کنیم و مسائلی از قبیل شکل داده­های ذخیره شده بر روی دیسک، نحوه خوشه بندی، نوع شاخص­گذاری، روش رمزگذاری و … در این سطح مطرح است. ساختار داده­ها در این سطح شمای فیزیکی نامیده می شود که توسط DBMS ساخته می­شود.

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

استقلال داده‌ای

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

db4

انواع استقلال داده‌ای

– استقلال داده‌ای فیزیکی

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

– استقلال داده‌ای منطقی

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

نقطه ضعف سیستم پایگاه داده نسبت به سیستم پرونده ای:

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

زبانهای کار با بانک اطلاعات

برای برنامه نویسی بانک اطلاعات دو رده از زبانها مورد استفاده قرار می­گیرند:

۱) زبان میزبان (HL)

یکی از زبانهای برنامه‌سازی متداول مانند کوبول، PL1، فرترن، پاسکال، C، C# و زبانهایی مثل ADA، LISP، JAVA و نیز زبان اسمبلی است. پس زبان میزبان را از قبل می­شناسیم و چیز جدید و نامتعارفی نیست. اما تنها چیزی که ممکن است سوال برانگیز باشد این است که به چه دلیل در این مبحث به آنها زبان میزبان می­گوییم؟! جواب این سوال بعد از معرفی نوع دوم زبانهای کار با بانک اطلاعات مشخص خواهد شد.

همانطور که می­دانیم، زبان­های میزبان زبان­های خاص منظوره نیستند، بلکه معمولا زبانهای چند منظوره هستند. مثلا زبان C در زمینه­های مختلف از جمله برنامه نویسی سیستمی، برنامه نویسی گرافیکی، برنامه نویسی بانک اطلاعات و … کاربرد دارد.

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

۲) زبان داده‌ای فرعی (DSL)

زبان­هایی هستند که بر خلاف زبان­های میزبان تک منظوره هستند؛ یعنی فقط شامل دستوراتی برای کار با پایگاه داده می­باشند و اساسا به همین منظور ساخته شده­اند.

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

زبان­های DSL بر حسب نوع دستوراتشان سه نوع مختلف می­توانند باشند:

۱- زبان تعریف داده‌ها (DDL): این زبان­ها شامل دستورات لازم جهت تعریف و کار با ساختارهای داده­ای می­باشند.

۲- زبان عملیات روی داده‌ها (DML): این زبان­ها شامل دستوراتی هستند که برای کار با داده­های بانک اطلاعات استفاده می­شوند و به ساختار بانک اطلاعات کاری ندارند. عملیات اصلی DML عبارتند از: ورود داده جدید، ویرایش داده­های قبلا وارد شده، حذف داده­ها و بازیابی داده­ها.

۳- زبان کنترل داده‌ها (DCL): این زبان­ها شامل دستورات کنترلی هستند که برای کنترل صحت داده­ها، جامعیت عملیات روی داده­ها و … استفاده می­شوند.

البته برخی از زبان­های DSL نیز هستند که هر سه نوع امکانات را شامل می­شوند. SQL معروفترین و متداولترین زبان DSL است که شامل هر سه نوع این دستورات می­باشد.

حال باید ببینیم که آیا زبانهای DSL نیز مانند زبانهای میزبان محیط برنامه نویسی خاص خودشان را دارند یا نه. بر این اساس، زبانهای DSL به دو دسته تقسیم می­شوند:

۱- توکار (E.DSL): دستورات این ربانها بطور مستقل قابل اجرا نیست؛ بلکه باید برنامه ای به یک زبان میزبان نوشته شده باشد و در متن ن برنامه در جایی که نیاز هست، دستوری از زبان DSL (بصورت توکار) قرار داده شده باشد. مثل زبان Btrieve در C یا SQL در دلفی.

با این تعریف، دلیل نامگذاری زبانهای میزبان به این نام هم مشخص شد. در واقع این زبانها میزبان زبانهای DSL هستند.

۲- مستقل (I.DSL): این زبانها به زبان میزبان نیاز ندارد و به صورت مستقل استفاده می‌شوند. مثل زبان Foxpro که دارای یک محیط برنامه نویسی مستقل است و در آن می توان برنامه­های کاربردی بانک اطلاعات را بدون نیاز به زبان دیگری بوجود آورد.

البته برخی از زبانهای DSL هم هستند که می توانند به هردو صورت مستقل و توکار بکار روند.

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

  db5

در شکل ** قسمتی از یک برنامه نوشته شده به زبان C# آورده شده است. کار این قطعه کد این است که اطلاعات ذخیره شده تمام دانشجویان را از بانک اطلاعات بازیابی کند. در خط سوم، یک دستور SQL در بطن دستور C# و در قالب یک رشته نوشته شده است. ساختار دستورات SQL در بخش ۵ بطور کامل مورد بحث قرار خواهد گرفت. در این مثال زبان میزبان C# و زبان DSL زبان SQL است که بصورت توکار استفاده شده است. برای تست کردن این برنامه­ها از لحظ نحوی، کامپایل کردن صرف کافی نیست. با توجه به اینکه دستور SQL بصورت رشته در یک زبان میزبان استفاده می­شود، در کامپایلر زبان میزبان تنها دستورات خود زبان بررسی می­شوند. اما با اجرای برنامه، دستور SQL به DBMS مربوطه ارسال می­شود تا در آنجا با استفاده ازکامپایلر خودش کامپایل و در صورت صحت، اجرا گردد.   

Conn.Open()   ;

DataTable  tbl  = new DataTable()  ;

SqlDataAdapter   da  =  new SqlDataAdapter(“Select * From Students”,conn) ;

Da.Fill(tbl);

Conn.Close();

اجزای DBMS

DBMS از قسمتهای مختلفی تشکیل می­شود که هر بخش وظیفه خاصی را انجام می­دهد. اصلی­ترین اجزای تشکیل دهنده DBMS عبارتند از:

  • DML Processor: این واحد دستورات DML (جهت تغییر در داده­ها) را که از سوی کاربران و برنامه ها ارسال می­شود، پردازش و کامپایل کرده و در صورت مجاز بودن و صحت دستورات آن را برای اجرا مهیا می­کند.
  • DDL Compiler: مشابه واحد قبلی است، اما برای زمانی که یک دستور DDL (جهت تعریف یک ساختار داده جدید در شمای ادراکی) از سوی کاربر ارسال می­شود و کامپایل دستور بر عهده این واحد است.
  • File Manager: این واحد با سطح فیزیکی بانک اطلاعات ارتباط دارد و وظیفه مدیریت فایلهایی را بعهده دارد که در سطح فیزیکی ذخیره می­شوند. همچنین یکی از ارکان اصلی در نگاشت داده­ها بین شمای ادراکی و داخلی است.
  • Database Manager: این قسمت بیشتر با لایه ادراکی بانک اطلاعات مرتبط است. در واقع نمایش اطلاعات ذخیره شده در قالب شمای ادراکی (در نگاشت بین شمای داخلی و ادراکی) و نمایش منطقی داده­ها و همچنین عملیات کنترلی مختلف روی بانک اطلاعات، مدیریت عملیات پشتیبان گیری و … را بعده دارد.
  • Query Processor: پردازنده پرس و جوهای کاربران است. بعبارت دیگر تنها پردازش دستوراتی را بعهده دارد که هیچ تغییری در ساختار بانک یا داده­ها بوجود نمی­آورند، بلکه صرفا برای بازیابی اطلاعات و گزارشگیری بکار می­روند.
  • Catalog Manager: وظیفه مدیریت و بروز رسانی اطلاعات موجود در بخش مهمی از پایگاه داده ها بنام کاتالوگ سیستم را بعهده دارد.

کاتالوگ سیستم شامل اطلاعات جامع در مورد سیستم پایگاه داده ها از قبیل حق دسترسی کاربران مختلف، مشخصات کاربران، تاریخ ایجاد و تغییر داده ها، سایز جداول و … است. دیکشنری داده­ها نیز جزئی از کاتالوگ سیستم است. دیکشنری داده ها شامل تمام نامهایی است که برای اشیاء مختلف در سیستم انتخاب می شود. به کاتالوگ سیستم اصطلاحا فراداده (متادیتا) گفته می شود؛ زیرا کاتالوگ سیستم شامل خود داده­های اصلی ما نیست، بلکه شامل اطلاعاتی است در مورد داده­های اصلی (فراداده یعنی داده در مورد داده)

هر تغییری که در ساختار و کلیات پایگاه داده ایجاد می­کنیم (مثلا هنگام تعریف یک کاربر جدید)، باید این تغییر در کاتالوگ سیستم ثبت شود. این وظیفه بعهده catalog manager می باشد.

نمای بیرونی (ساده‌شده) DBMS

db6


با توجه به قابلیتهایی که در این بخش برای DBMS ها برشمردیم، باید این نکته را نیز خاطرنشان سازیم که همه سیستم های پایگاه داده­ معروفی که تامنون تولید شده­اند، از یک سیستم مدیریتی قوی برخوردار نیستند؛ بلمه صرفا دارای یک رابط کاربر برای اجرای دستورات او بر روی داده­ها می­باشند. اما وظایف مهمی از قبیل کنترل جامعیت اجرای تراکنشها یا ایجاد امکان استفاده همزمان کاربران زیاد از داده­ها را انجام نمی­دهند. از معروفترین DBMS ها می­توان از MS SQL Server، MySQL و Oracle نام برد. اما پایگاه داده­های معروفی مانند Access و Foxpro در واقع DBMS نیستند و فقط یک سیستم بانک اطلاعاتی ساده تلقی می­شوند.

——————————————————————–

فصل دوم:

مدلسازی معنایی داده ها

 

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

مدلها و روش­های مختلفی برای مدلسازی معنایی داده­ها وجود دارند که از معروفترین آنها می­توان از مدل موجودیت- ارتباط (ER)، مدل Niam، مدل زبان یکپارچه مدلسازی (UML) و تکنیک مدلسازی شیئی (OMT) نام برد.

مدل ER و نمودار ER

مدل ER در اواسط دهه ۸۰ میلادی در دانشگاه MIT توسط فردی بنام چن پیشنهاد شد. این مدل بمرور زمان پیشرفت کرد و کم کم به EER (ER توسعه یافته) معروف شد. اما هنوز هم در خیلی جاها با همان نام ER از آن نام برده می­شود. در این فصل به شرح کامل این مدل می پردازیم.

در مدل ER سه مفهوم اصلی وجود دارد که عبارتند از: موجودیت، صفت و ارتباط. نمودار ER هم نموداری است برای مدلسازی معنایی داده­ها بر پایه مدل ER و در واقع سه مفهوم اساسی مدل ER، یعنی نوع موجودیت، صفت و ارتباط را بصورت شماتیک نمایش می­دهد. قبل از هرچیز بهتر است با این سه مفهوم آشنا شویم.

 

تعریف موجودیت

مفهوم کلی شیئ، پدیده و به طور کلی هر آنچه که می‌خواهیم در موردش اطلاعاتی در بانک اطلاعات داشته باشیم و با استفاده از آن اطلاعات شناخت خود را در موردش افزایش دهیم.

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

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

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

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

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

در نمودار ER هر موجودیت در قالب یک مستطیل ساده نمایش داده می­شود.

 

موجودیت مستقل و وابسته

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

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

برای تمایز موجودیتهای وابسته از موجودیتهای مستقل، در نمودار ER موجودیتهای وابسته با دو خط نشان داده می­شوند.

 

تعریف صفت خاصه

خصیصه یا ویژگی یک نوع موجودیت است. هر نوع موجودیت مجموعه‌ای از صفات خاصه دارد. هر صفت یک نام، یک نوع و یک معنای مشخص دارد. در نمودار ER هریک از صفات خاصه یک موجودیت با یک بیضی نشان داده شده و به موجودیت متصل می­شوند.

انواع صفت خاصه

۱- صفت ساده یا مرکب

صفت ساده صفتی است که مقدار آن از لحاظ معنایی تجزیه‌نشدنی یا اتومیک است.

صفت مرکب صفتی است که از چند صفت ساده تشکیل شده است و به هر جزء آن بتوان بطور مستقیم دسترسی داشت.

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

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

۲- صفت تک‌مقداری یا چندمقداری

صفت تک‌مقداری، صفتی است که برای یک نمونه از یک نوع موجودیت حداکثر یک مقدار از دامنه مقادیر را می‌گیرد.

صفتی که برای بعضی از نمونه­های موجودیت ممکن است بیش از یک مقدار داشته باشد، یک صفت چندمقداری است. بعنوان مثال، صفت شماره دانشجویی، نام خانوادگی و … برای موجودیت دانشجو صفات تک مقداری محسوب می­شوند؛ چون هر دانشجو تنها یک نام خانوادگی و یک شماره دانشجویی دارد. اما صفتی مانند شماره تلفن برای موجودیت دانشجو یک صفت چند مقداری است. زیرا بعضی از دانشجویان بیش از یک شماره تلفن دارند.

نمایش صفات چندمقداری در نمودار ER بصورت زیر است.

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

۳- صفت کلید یا غیرکلید

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

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

صفتی که قرار است بعنوان شناسه اصلی یک موجودیت (وجه تمایز اصلی بین نمونه­های موجودیت) استفاده شود بهتر است حتی الامکان طول مقادیرش کوتاه باشد.

در نمودار ER شناسه اول یک موجودیت با کشیدن یک خط و شناسه دوم با کشیدن دو خط در زیر عنوان آن مشخص می­شود.

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

در فصل بعد، مفاهیم مربوط به کلید بطور کامل­­تر مورد بحث قرار خواهد گرفت.

۴- صفت هیچ‌مقدارپذیر یا ناپذیر

هیچ مقدار یعنی مقدار ناشناخته، مقدار غیرقابل اعمال یا مقدار تعریف نشده که معمولا با واژه Null نشان داده می­شود.

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

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

۵- صفت ذخیره‌شده یا مشتق

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

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

برای نمایش صفات مشتق در نمودار ER می توان یا بیضی مربوط به آن صفت و یا خط اتصال آن صفت به موجودیت را بصورت نقطه چین رسم کرد.

 

 

ارتباط

تعریف- تعامل و وابستگی بین دو یا بیش از دو نوع موجودیت است.

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

در نمودار ER ارتباط با نماد لوزی نشان داده می­شود.

 

 

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

 

 

ماهیت ارتباط

چندی ارتباط یا بعبارتی نوع تناظر بین نمونه­های دو موجودیت حاضر در ارتباط را نشان می­دهد. ماهیت ارتباط می­تواند یک به یک (۱:۱)، یک به چند (۱:n) یا چند به چند (m:n) باشد.

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

بعنوان مثال، اگر درجه ارتباط بین موجودیت­های دانشجو و درس ۱:۱ باشد (مطابق شکل زیر)، مفهوم ارتباط چنین است:

 

 

هر دانشجو می­تواند فقط یک درس را بگیرد. هر درس هم می­تواند فقط توسط یک دانشجو گرفته شود.

ارتباط ۱:n: هر نمونه از موجودیت اول می­تواند با چند نمونه از موجودیت دوم ارتباط داشته باشد. اما هر نمونه از موجودیت دوم فقط می­تواند با یک نمونه از موجودیت اول ارتباط داشته باشد.

اما اگر درجه ارتباط بین موجودیت­های دانشجو و درس ۱:n باشد (مطابق شکل زیر)، مفهوم ارتباط چنین است:

 

 

هر دانشجو می­تواند چند درس را بگیرد. اما هر درس می­تواند فقط توسط یک دانشجو گرفته شود.

ارتباط m:n: هر نمونه از موجودیت اول می­تواند با چند نمونه از موجودیت دوم ارتباط داشته باشد. هر نمونه از موجودیت دوم نیز می­تواند با چند نمونه از موجودیت اول ارتباط داشته باشد.

حال اگر درجه ارتباط بین موجودیت­های دانشجو و درس m:n باشد (مطابق شکل زیر)، مفهوم ارتباط چنین است:

 

 

هر دانشجو می­تواند چند درس را بگیرد. هر درس هم می­تواند توسط چند دانشجو گرفته شود.

روشهای نمایش دیگری نیز برای نشان دادن ماهیت ارتباط ها وجود دارد، از جمله ارتباط ۱:n فوق به اشکال زیر نیز نمایش داده می شود:

 

حد  ارتباط

برای هریک از موجودیت­های شرکت کننده در یک ارتباط می­توان یک حد مشخص کرد. این حد نشان دهنده حداقل و حداکثر تعداد نمونه­های آن موجودیت است که می توانند در ارتباط شرکت کنند.

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

هر دانشجو حداقل ۱ و حداکثر ۵ درس را می تواند انتخاب کند.

هر درس می تواند توسط هیچ دانشجویی انتخاب نشود و یا حداکثر توسط ۲۰ دانشجو انتخاب شود.

 

 

 

شرکت اجباری و اختیاری در ارتباط

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

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

 

 

روش دیگر نمایش ارتباط اجباری با استفاده از دو خط است:

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

 

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

 

نکته مهم:

در یک ارتباط ۱:n اگر نوع مشارکت موجودیت سمت n اجباری باشد، این موجودیت یک موجودیت وابسته است که وابستگی آن به موجودیت سمت ۱ است.

 

تبدیل نمودار ER به بانک اطلاعات رابطه ای:

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

۱- بازاء هر موجودیت یک جدول طراحی می کنیم که ستونهای آن صفات خاصه موجودیت بوده و هر سطر آن یک نمونه از آن موجودیت است.

۲- هر ارتباط بین موجودیتها در نمودار ER بسته به ماهیت آن باید در جدائل لحاظ شود. طبق قوانین زیر:

– ارتباط ۱:۱: در این حالت می توان دو موجودیت را در قالب یک جدول ادغام کرد و نیازی به جدا کردن دو جدول نیست.

– ارتباط ۱:n : پس کلید اصلی موجودیت سمت ۱ را بعنوان کلید خارجی به جدول مربوط به موجودیت سمت n نیز اضافه می­کنیم.

– ارتباط m:n : برای برقراری ارتباط بین دو جدول، یک جدول دیگر بعنوان جدول واسط طراحی می کنیم. در این جدول واسط، کلیدهای اصلی مربوط به هر دو موجودیت بعنوان کلیدهای خارجی قرار می­گیرند.

پس همانگونه که می بینیم در ارتباط m:n خود ارتباط بین دو موجودیت نیز به یک موجودیت تبدیل می­شود. از اینرو گاهی در نمودار ER ارتباطهای m:n را به شکل یک موجودیت نمایش می دهند، مثلا:

 

چند مثال جامع:

 

مثال اول:

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

فروشگاه تعدادی مشتری ثابت و مشخص دارد که هر مشتری دارای کد اشتراک، نام، نشانی و تلفن می­باشد.

هریک از اجناس فروشگاه یک کد مشخصه، نام و قیمت دارد. (توجه شود که اجناس یک نمونه کد مشخصه یکسانی دارند.)

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

حل:

طراحی نمودار ER:

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

ماهیت ارتباط بین مشتری و فاکتور: برای هر مشتری می تواند در زمانهای مختلف چندین فاکتور ثبت شود. اما هر فاکتور مربوط به یک مشتری است. بنابراین ماهیت ارتباط ۱:n است.

ماهیت ارتباط بین جنس و فاکتور: با توجه به اینکه اجناس همسان یکی فرض می­شوند (کد یکسانی دارند)، هر جنس ممکن است در چندین فاکتور ثبت شود. از طرفی هر فاکتور هم ممکن است شامل چندین قلم جنس باشد. بنابراین ماهیت ارتباط m:n است. در نتیجه این ارتباط خود به یک موجودیت تبدیل می­شود. تعداد خریداری شده از یک جنس یک قلم اطلاعاتی است که هم مربوط به جنس و هم مربوط به فاکتور است. پس یک صفت خاصه برای موجودیت واسط آنها محسوب می شود.

تبدیل به بانک اطلاعات رابطه ای:

بعد از رسم یک جدول برای هریک از موجودیتها،

– ارتباط بین مشتری و فاکتور ۱:n است. پس کلید اصلی مشتری (موجودیت سمت ۱) را بعنوان کلید خارجی به جدول فاکتور (موجودیت سمت n) نیز اضافه می­کنیم.

– ارتباط بین جنس و فاکتور m:n است. بنابراین برای برقراری ارتباط بین دو جدول، یک جدول دیگر بعنوان جدول واسط طراحی می کنیم. در این جدول واسط، کلیدهای اصلی مربوط به هر دو موجودیت فاکتور و جنس بعنوان کلیدهای خارجی قرار می­گیرند. این جدول نشان می دهد که چه فاکتوری (شماره فاکتور) شامل چه جنسی (کد جنس) بوده است. با قرار دادن صفت تعداد خریداری شده در این جدول مشخص می شود که چه فاکتوری شامل چه جنسی و به چه تعدادی بوده است.

برای کلید اصلی این جدول می توان از ترکیب دو صفت ش فاکتور و کد جنس استفاده کرد و یا از کلیدهای شماره گذاری اتوماتیک (Auto Increment Number) استفاده کرد.

db-er1

مثال دوم:

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

دانشگاه شامل تعدادی دانشکده است که هر دانشکده یک کد، نام، رئیس و یک سال تاسیس دارد.

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

در هر رشته تعدادی دانشجو تحصیل می­کنند که هر دانشجو دارای شماره دانشجویی، نام و نام خانوادگی است.

هر رشته تعدادی استاد دارد که البته بعضی از اساتید بین چند رشته مشترکند. هر استاد دارای کد، نام است.

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

در هر ترم از هر درس چندین گروه درسی ارائه می شود که هر گروه یک کد مشخصه، یک شماره گروه و یک ساعت تشکیل دارد.

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

db-ER

 


db-er-tables

 

 

اسلاید مدل رابطه ای

 

dbSession4 –  مدل رابطه ای

dbSession5 –  جبر رابطه‌ای

dbSession6 دستورات مربوط به اسکیما (DDL) – دستورات کار با داده ها (DML) – دستورات کنترلی (DCL)

dbSession7 –  دستورات مربوط به اسکیما (DDL)   – دستورات کار با داده ها (DML)

dbSession8 –  دستور Select

dbSession9  – دستورات Insert و Update

dbSession10 نرمال سازی (قسمت اول: وابستگی های تابعی)

dbSession11 –  نرمال سازی ( تبدیل جداول غیر نرمال به صورتهای نرمال اصلی )

 

Mar 012014
 

Propagation

در این حالت با استفاده عدم قطعیت از متغیر های مستقل به متغیر های وابسته منتشرمی شود
توابع فازی از متغیر های Crisp

soft-computing-921210-1

فرض می کنیم یک تابع از x , y به ما داده اند
p(y) تابع فازی تعریم می کنیم از p تیلدای Y

یک مثال عددی

توابع مجموعه ای

با استفاده از کات توابع فازی را می توانیم به توابع کریسپ
مجموعه ای تبدیل کنیم ( برای ساده سازی )
فرض کنیم دو مجموعه در اختیار ما گذاشته اند

با استفاده از مفهوم ماکزیمم و مینیمم توابع
Fuzzy Extrema of Function

مهم :

فرض کنیم یک مجموعه کاکزیمم ساز مثل f را تعریف کرده ایم
چقدر امکان دارد که مقدار suprimum f را کسب کند
فرض کنیم بازه suprimum f 9 تا عدد داشته باشد
در اینصورت با توجه به رنج امکان f x که دارای این مقادیر باشد را می توانیم محاسبه کنیم

soft-computing-921210-2

در این حالت که مینیمم یا منفی x را محاسبه کنیم مشابه هم هست
soft-computing-921210-3
مثال :
مشابه شبیه سازی مونت کارلو انجام می دهیم

soft-computing-921210-4
همین مساله را می توانیم گسترش دهیم
در یک دامنه غیر خطی با انجام عملیات ماکزیمم سازی مقدار x0 را می توانیم پیدا کنیم

ماکزیمم مقدار دامنه کریسپ

Feb 252014
 

تمامی x هایی که میوی X آنها
آلفا کات را روی مجموعه های فازی بزنیم ، یک مجموعه ای از اعداد می شود ، به طوری که میزان تعلقیت آنها ….( میرسیم به یک بازه در اعداد کلاسیک )

می خواهیم بدانیم آلفا کات ها چه خاصیت هایی دارند
بر روی اعداد فازی عملیات های جمع و تفریق را می خواهیم انجام دهیم

soft-computing-1

ابتدا بر روی باز ه ها عملیات جمع را انجام میدهیم

می توانیم مینی مم و ماکزیمم هم روی بازه ها تعریف کنیم
آلفا کات ها که یک بازه هستند پس روی آلفا کات ها می توانیم عملیات جمع و ضرب و تفریق و تقسیم و مینیمم و ماکزیمم تعریف کنیم

عملیات روی اعداد فازی :
جمع دو عدد فازی : اگر A , B فازی باشند A+B یک مجموعه فازی می شود که اجتماع اشتراک آنها می شود

soft-computing-2

 

انواع اعداد فازی :

۱- عدد فازی مثلثی : به صورت مثلث تعریف می شود A(a,b,c)

soft-computing-3-triangle

مثال جمع روی عدد فازی مثلثی :
soft-computing-4-triangle-sum

soft-computing-4-triangle-sum-example

جواب ضرب و تقسیم دو عدد فازی یک عدد فازی مثلثی نمی شود

soft-computing-4-triangle-multiple

به غیر از اینها هر عملیات دیگری بخواهیم انجام دهیم باید برای آنها آلفا کات بزنیم

———————

عدد فازی ذوزنقه ای

عدد فازی گوسی – زنگوله ای
———————

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

مثلا درخت تصمیم فازی

———————
تمرین ها را روی کاغذ بنویسید و در جلسه حضوری بیاورید 

Feb 222014
 

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

امروز در تکمیل بحث یک روش و شکل جدید از گراف های موارد کاربردی فازی ارائه می دهیم

گراف ها و فازی گراف ها :

گراف را با دو مجموعه نشان می دهیم (مجموعه گره ها – مجوعه یال ها )

رابطه ترتیب : بین هر دوگره اگر یال وجود داشته باشد و بین دوگره بعدی هم یال وجود داشته باشد رابطه ترتیب می گوییم

در حالت Link Based با توجه به یال های مختلف با توجه به مبدا و مقصد می توانیم مسیر تعریف کنیم

مثلا برای پیدا کردن کوتاهترن مسیر

در گراف فازی یک برداشت می کنیم
مسیر پذیر هستند اگر بین آن دو گره را مسدود نکرده باشند
مثال :
اگر در مسکن سرمایه گذاری کنم امکان دارد در پروژه تولید توپ فوتبال ورود پیدا نکنم
if – then Rule
در اینجا یک گراف فازی داریم که نود های آن گراف تصمیم ها و احتمال ها یال ها می شوند

یا مثلا یک گرافی می خواهیم که یال های آن ترافیک سبک یا ترافیک سنگین باشد.

نکته دیگر :
توسعه گراف های فازی ارتباط دو طرفه ای دارد که از رابطه ها در گراف های فازی استفاده کنیم

برعکس هم می توانیم متناظر کلمات بیانی ، بخشی از اطلاعات مساله را به عدد های مثلثی یا اعداد ذوزنقه ای تبدیل کنیم

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

در اینجا رابطه ها از دو مجموعه متفاوت گرفته ایم V1 , V2
می توانیم گراف ایجاد کنیم تا متناظر هر کدام درجه عضویت آنها را در گراف فازی دو بخشی داشته باشیم

همین را می توانیم در حالت پیوسته هم گسترش دهیم
image 1
می توانیم با رنگ میزان رنگ نمایش دهیم

مثلا حرف E را که روی پلاک خودرو وجود دارد کمی نا خوانا باشد

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

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

مفهوم فازی نت ورک :

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

در فازی نتورک ها با توجه به ارتباط آنها با هم و داشتن connectivity فازی pass خواهیم داشت

به عنوان نمونه مسیر به صورت زنجیره خواهیم داشت

درجه عضویت برعکس
در این حالت ها معمولا می توان با نگاه کردن به گراف می توان پی برد که خصوصیت آن چیست

نکته دیگر اینکه سیمتریک بودن ، یکتک زوح مرتب x , y پیدا کردیم که این زوج مرتب درجه عضویت x به y با درجه عضویت y به x متفاوت باشد

در اینجا بسیاری از مسایلی که حل می کنیم از نوع روابط گراف و رابطه هستند
از این جهت می توانیم روی گراف ها رابطه ها را پیدا کنیم

اگر x , y میو اکید بود برعکسش در گراف وجود نداشته باشد

در Transitive انچه که اهمیت دارد ، اگر زنجیره داشته باشیم ، بایستی از مینیمم درجه عضویت x به y و y بهz وجود داشته باشد.

به جهت جبری ماتریس رابطه R از R به توان ۲ بزرگتر است
برای R2 هم ماکزیمم مینیمم میو آی x , y هست

در بعضی از مسایل وقتی می خواهیم درباره اعتماد شبکه صحبت کنیم …
کافیست که ما هر Packet که از x به z می هواهد بفرستد از کانال مستقیم استفاده کنیم
در اینحال یال های موجود در شبکه مطمین ترن هستند به طول ۲
مفهوم بستار
R بی نهایت همه حالت های ممکن اتصال در نظر گرفته می شود

در یک شبکه همبند حداکثر مسیر ها به طول N هست
مسیر های یکطرفه با طول یالهای مختلف قابل محاسبه است

در روابط فازی مشابه روابط crisp رابطه هم نهشتی داریم
کلاس های هم ارزی
مثل میزان شباهت a , b به همدیگر
image 3

روابط مقایسه پذیری درفازی :

در Pre Order یک مجموعه .. روی R داریم که روی هر سه عضو x , y , z
Fuzzy Order باید سه خاصیت زیر را داشته باشد
Reflecxive , Antisymmetric , Transitive

 

 

Feb 182014
 

مجموعه های فازی را تعریف کردیم

فازی با مجموعه ها ارتباط تنگاتنگی دارد
به ازای هر عضو از مجموعه های فازی ، میزان تعلقیت خاصی بین ۰ و ۱ در نظر گرفتیم

مجموعه های Crisp به عنوان زیر مجموعه ا ی از مجموعه های فازی هم قابل تعریف است

اجتماع ، اشتراک و متمم

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

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

متمم به عنوان مقدار عضویت A = مقدار ۱ منهای مقدار عضویت A

اجتماع استاندارد : …
اشتراک استاندارد : مینیمم …
ta-soft-computing1

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

ta-soft-computing2

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

اولین عملگر روی مجموعه های Crisp ضرب روی مجموعه ها بود

اصل گسترش :
حاصلضرب کارتزین برای مجموعه های معمولی
ta-soft-computing3
رابطه : هر زیر مجموعه حاصلضرب کارتزینی یک رابطه را تشکیل میدهد

هر رابطه عضوهایش :
عضو اول رابطه خاصی را رابطه دوم داریم

ta-soft-computing4

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

ta-soft-computing5

مجموع میزان تعلقیت آنها الزاما ۱ نمی شود

ta-soft-computing6



ta-soft-computing7

یک رابطه به صورت یک به چند هست

ta-soft-computing8

در ریاضیات کریسپ اگر x با y رابطه دارد می توانیم با گراف جهت دار آنرا نمایش بدهیم
علاوه بر گراف جهت دار با ماتریس هم در ریاضیات Crisp می توانستیم نمایش بدهیم
تعداد عضو ها برابر تعداد یال ها هست
تعداد عضو ها در ماتریس برابر تعداد درایه های ۱ هست

رابطه ها یک زیر مجموعه ای از حاصضرب کارتزینی هستند
روی رابطه ها می توانیم اشتراک ، اجتماع ، متمم داشته باشیم
معکوس رابطه را با R اینورس نمایش می دهیم

عملگر ترکیب در رابطه ها :
ta-soft-computing9

طول مسیر برابر با تعداد یال ها است

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

هر رابطه ای می تواند با خودش ترکیب شود

رابطه R یعنی ارتباط بین دو نود
x , y با هم که ارتباط دارند
R2 مسیر دو تای
R بتوان ب نهایت : نشان دهنده وجود یا عدم وجود مسیر بین دو نود دلخواه در گراف است
ta-soft-computing10

اگر بخواهیم رابطه R بتوان بی نهایت را بدست بیاوریم باید R را n-1 بار با خودش ضرب کنیم

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

رابطه ها خاصیت های مختلی دارند
Reflexive – بازتابی :
Symmetric – تقارنی :

–Transitive relation  تعدی : اگر عضوی با عضو دوم و عضو دوم با سوم و اول با سوم ارتباط داشته باشد

بستار بازتابی : کوچکترین رابطه ای هست مثل ‘R که شامل R هست و یک رابطه را کم دارد تا تازتابی شود
حداقل رابطه ای شامل R هست و شامل رابطه اولیه باشد

ta-soft-computing11

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

رابطه تعدی روی گراف خیلی سخت است ، روی ماتریس هم سخت است

اگر x با y و y با z و x با z رابطه داشته باشد

اولین تمرین :
از روی یک ماتریس رابطه به چه صورت می توان به تعدی بودن آن پی برد
و از روی یک ماتریس رابطه مانند R به چه صورت می توان بستار تعدی آنرا ساخت

مهلت ارسال تمرین : سه شنبه هفته آینده
Autsoftsomputing92@gmail.com
( جواب تمرین در اسلاید ها هست )

روابط Equivalance – هم ارز هست اگر بازتابی و تقارنی و متعدی باشند

رابطه ها را می توانیم با هم ارزی کلاس بندی کنیم

با استفاده از رابطه های تلرانس عملیات

Pre order رابطه هایی بازتابی و تعدی هستند
اگر یک رابطه Pre order باشد و پاد تقارنی رابطه ترتیب -Order می شود

ta-soft-computing12

پس بستار پاد متقارن قابل تعریف نیست

آیا یک رابطه کوچکتر مساوی ترتیبی هست ؟
ta-soft-computing13
بله یک رابطه ترتیب هست
ولی رابطه کوچکتر ترتیبی نیست

———————————-
رابطه های فازی :
در رابطه های فازی می گوییم عضو ها تعلقی بین ۰ تا ۱ دارد

برای هر دامنه رابطه و برد تعریف می کنیم
دامنه R در رابطه فازی : تمامی عضو های اول را دارد و عضو دوم میزان تعلقیت آن عضو هست

در گراف : نود هایی که یال خروجی دارند در مخرج و در صورت هم ماکزیمم یال های خروجی از آن نود را می نویسیم

ta-soft-computing14

۱ و ۲ و ۳ و ۴ و ۵ و ۷ اعضای دامنه هست

ta-soft-computing15
برد دامنه : روی ستون های ماکزیمم می گیریم

ta-soft-computing16
ماکزیمم – مینیمم : ترکیب است
———————————-

آلفا کات : تمامی عضو هایی که میزان تعلقیت آنها بزرگتر مساوی الفا هست

 

آلفا کات یعنی تبدیل فازی به بازه
هر چه تعداد آلفا کات ها بیشتر باشد ، به نمونه فازی مشابه تر می شود ( دقیق تر می شود )

ta-soft-computing17
———————————-

موضوعات پروژه را از همین الان مشخص کنید
مثلا ایمنی به صورت فازی
مقاله های فازی را بخوانید
کتاب کمکی هم بخوانید

 

Feb 152014
 

خلاصه درس مبانی محاسبات نرم – ۹۲/۱۱/۲۶

تعبیر مجموعه های فازی با استفاده از ماتریس های فازی

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

می توانیم اثر را با یک ماتریس فازی نمایش بدهیم

با درجه عضویت

عملگر جمع و ضرب داخلی ماتریس ها
soft-computing-fuzzy-matrix

آنچه که مورد نیاز است ، روابط باید بتوانند تولید اجتماع بکنند
اجتماع دو مجموعه درجه عضویت ماکزیمم دو عضو می شود.

 

عملگر ماکزیمم روی تک تک درایه ها استفاده می کنیم
جمع : ماکزیمم گیری درایه ها
ضرب : ماکزیمم ( مینیمم درایه ها )
ماتریس دیگری که از ماکزیمم گیری روی تمام مجموعه ها در سطر i ام و ستون j ام

soft-computing-fuzzy-matrix2

در حالت اسکالر – بین صفر و یک – تمامی درجه عضویت ها در صفر و یک ضرب می شود

می توانیم برای بیش از یک رابطه هم نتیجه داشته باشیم
برای اجتماع M رابطه فازی درایه به درایه ماکزیمم گیری کنیم
برای اشتراک ، مینیمم گیری

معکوس : اگر در رابطه فازی x , y وجود داشته باشد ، درجه عضویت x , y با استفاده از این رابطه
قابلیت گسترش پیدا می کند همان درجه هست و یک نماد هست و اینورس نیست

soft-computing-fuzzy-matrix3

برای مجموعه های فازی متفاوت برای ریاضیات کلاسیک هست

رابطه ای که برای دو تا مجموعه بدست آوردیم برای بیش از دو مجموعه هم تعمیم می دهیم

….
توسعه تصویری :
اگر در رابطه r 0.2 , 0.3 هم وجود داشت می توانیم نتیجه بگیریم که در رابطه های قبلی وجود داشته
توسعه تصویری
به صورت بازگشتی تصویر می کند

به صورت درایه ای هم می توانیم نگاه کنیم
می توانیم تمام درجه عضویت های MR را پیدا کنیم و cut بزنیم

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

توسعه سیلندری :

توسعه سیلندری معمولا نرم افزار هایی مثل متلب انجام می دهند
یک بردار داریم می خواهیم توسعه بدهیم به یک ماتریس
آنچه را که به عنوان درجه عضویت داریم …

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

توسعه سیلندری را در چند بعد هم می توانیم گسترش دهیم
ولی در توسعه تصویری به این راحتی ها نیست

توسعه
ابتدا تابعی را در نظر می گیریم ، یک به یک و کوشا

soft-computing-fuzzy-matrix4

اگر تابع پوشا باشد
اگر f(y) پوشا نباشد معکوسش هم ….

یک مثال از توسعه Extention
فرض کنیم مجموعه A و B را دارم که A غیر فازی و B فازی باشد
تک تک عنصر های B را ….

اصل توسیع را برای حالت حاصلضرب تعدادی از مجموعه بکار بردیم ، کافیست که برای تک مجموعه ها
کمترین درجه عضویت ها را …

مثال از Distance
soft-computing-fuzzy-5

جمع بندی :
یک رابطه خوبی بین ریاضیات کلاسیک و فاز وجود دارد
۱- مینیمم و ماکزیمم سازی
۲- راهکار خرد کردن رابطه فازی به آلفا کات ها
۳- توسعه داده فازی با ابعاد بزرگتر (Distance خیلی پر کاربرد است ) , Extention سیلندر ها برای مش ها

 




 

Feb 012014
 

خلاصه جلسه دوم مبانی محاسبات نرم ۹۲/۱۱/۱۲ دکتر قطعی

 

interval computation

Fuzzy set
کار بر روی اعداد حقیقی است
می توانیم تمام مفاهیم ریاضی را بر اساس مفاهیم محجموعه ها بیان کنیم

فرض کنیم دو مجموعه A , X را تعریف می کنیم
X را مجموعه جهانی می نامیم

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

به جای مجموعه اعداد حقیقی ، یک مجموعه ای از اعداد فازی تعریف می کنیم
تابع عضویت در مجموعه فازی membership function می گوییم

در مجموعه فازی B-A ممکن است اعضایی باشد که در B و A هم وجود داشته باشد

تعاریف اجتماع و اشترک در مجموعه اعداد فازی

در مجموعه های Crisp قوانین دمورگان هم دارم
یکی از اهداف ما تفاوت بین مفاهیم فازی و غیرفازی هست

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

مجموعه فازی در بازه صفر و یک قرار می گیرند

نمایش مجموعه فازی
ساده ترین صورت : درجه عضویت را جلوی تابع می گذاریم
و همچنین با نماد مجموعه ای از زوج مرتب ها می توانیم قرار دهیم

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

در مجموعه فازی گسترش یافته در یک بعد ساده سازی می کنیم
Level-k مجموعه برش
یک مرحله عدم قطعیت کاهش پیدا می کند و به قطعیت بیشتری می رسیم

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

یکی از مفاهیم پر کاربرد Support هست
به قسمی که درجه عضویت در آنها بزرگتر از ۰ باشد

عنصری که بیشترین درجه عضویت را داشته باشد Height می گوییم
عدد فازی Normal عددی است که درجه عضویتش برابر ۱ باشد

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

اگر مجموعه فازی a را برش دهیم به صورت الفا کات در می آید

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

Convex fuzzy set
تعریف : اگر یک عضوی به صورت لاندا r تعریف شود
یک مجموعه محدب هست که
مینیمم دو تا درجه عضویت را می گیرم ..
هر دو عضو را که در نظر بگیریم از مینی مم درجه عضویت بزرگتر باشد.
شکل سمت چپ هر عضوی که بین r , s باشد از
شکل سمت راست نا محدب تعریف شده
که اصلا ورود پیدا نمی کنیم

اعداد فازی :
۱- اعدادی که محدب باشند
۲- درجه عضویت
۳- درجه عضویت دپار پرش نشده باشد (بصورت پیوسته باشد)

که در این درس کلا روی اعداد فازی کار می کنیم و به مجموعه های فازی خیلی کار نداریم

برای معدل سازی ( نگاشت ) اعداد فازی بر روی اعداد حقیقی از Scaler Cardinality می توانیم استفاده کنیم

تعداد اعضایی که در مجموعه الفا کات قرار دارد و درجه عضویت آنها را محاسبه می کنیم و با هم جمع کنیم خود آلفا به دست می آید

با این کار امکان افراز فازی وجود دارد

در مجموعه های فازی تعریف سختی است ( یکایک درجه عضویت تک تک عناصر دو مجموعه بایستی مساوی باشد )

زیر مجموعه محض می توانیم تعریف کنیم که هر

تفاوت مجموعه فازی با مجموعه حقیقی Complement
درجه عضویتی در دو مجموعه می تواند قرار بگیرد
در اجتماع از ماکزیمم سازی درجه عضویت استفاده می کنیم
اشتراک از مینیمم سازی درجه عضویت استفاده می کنیم
خلاصه جلسه دوم مبانی محاسبات نرم ۹۲/۱۱/۱۲ دکتر قطعی

Jan 262014
 

خلاصه جلسه اول آمار و احتمال فازی ۹۲/۱۱/۰۶ – دکتر رضا خواه ورنوسفادرانی

کتاب آمار و احتمال فازی
Statistical_Methods_for_Fuzzy_Da-1.pdf

مفاهیم فازی – مجموعه های فازی

fuzzy Numbers and Fuzzy Vectors

عضو های متعلق به مجموعه فازی که ضریبی بین ۰ و ۱ هست

یک عضوی با یک عدد کمی توصیف میشود

ابتدا حالت یک بعدی :
Fuzzy Numbers
یک عدد X را یک عدد فازی می گوییم زمانی که بین صفر و یک هست
*X با یک تابع مشخصی به نام اپسیلون مشخص خواهد شد

ضریب عضویت :
دلتا کات ، ضریب عضویت نشاندهنده عضو را در مجموعه می گوییم

مثلا در مجموعه اعداد حقیقی ضریب عضویت کمتر از ۱۰ را صفر می گذاریم که به آن Suppport می گوییم

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

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

سوپریمم ، بزرگترین تابع عضویت را در نظر می گیریم

تابع مشخصه اگر صفر باشد اصلا عضو مجموعه ما نیست

ضریب عضویت یک عضو ضریب عضویت مجموعه ای است که …

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

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

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

غیر تهی و کراندار

اعداد حقیقی روی محور X و ضریب عضویت

ممکن است جهش هم در تابع عضویت داشته باشیم

stat-fuzzy1

 

اگر یک عدد دقیق x0 متعلق به بازه داشته باشیم ( قطعیت )

فازی مفهوم عدم قطعیت هست
اعدادی را در نظر می گیریم که ضریب عضویت آن از دلتا کات بیشتر باشد

 

stat-fuzzy2

 

 

Jan 142014
 
نظریه علوم کامپیوتر ۱۲۸۲۱۰۴ ۴ ۱ ۱۰۰ ۹۹ دیده ور دوشنبه[۱۵:۳۰-۱۳:۳۰] چهارشنبه[۱۹:۳۰-۱۷:۳۰] ۱۷/۳/۱۳۹۳ [۱۲-۹] خداکرمی ۱ ۹۹ شنبه[۱۵:۳۰-۱۳:۳۰]
هوش مصنوعی پیشرفته ۱۲۸۲۱۲۴ ۴ ۱ ۱۰۰ ۹۷ شیری احمدآبادی سه شنبه[۱۱:۴۵-۹:۴۵] چهارشنبه[۱۲-۱۰] ۱۸/۳/۱۳۹۳ [۱۲-۹] مولایی ۱ ۹۷ یکشنبه[۱۵:۳۰-۱۳:۳۰]
برنامه سازی پیشرفته ۱۲۸۲۱۳۴ ۴ ۱ ۱۰۰ ۱۰۰ نیک سیرت شنبه[۹:۴۵-۷:۴۵] پنج شنبه[۱۰-۸] ۲۰/۳/۱۳۹۳ [۱۲-۹] نیک سیرت ۱ ۱۰۰ دوشنبه[۱۱:۴۵-۹:۴۵]
ساختمان داده ها ۱۲۸۲۱۴۴ ۴ ۱ ۱۰۰ ۹۷ فخری یکشنبه[۱۱:۴۵-۹:۴۵] پنج شنبه[۱۵:۳۰-۱۳:۳۰] ۱۲/۳/۱۳۹۳ [۱۶:۳۰-۱۳:۳۰] فخری ۱ ۹۷ دوشنبه[۲۱-۱۹]
یادگیری ماشین ۱۲۸۲۱۶۴ ۴ ۱ ۱۰۰ ۹۴ شیری احمدآبادی سه شنبه[۹:۴۵-۷:۴۵] چهارشنبه[۱۰-۸] ۱۹/۳/۱۳۹۳ [۱۶:۳۰-۱۳:۳۰] مولایی ۱ ۹۴ یکشنبه[۱۹-۱۷]
شبکه های عصبی ۱۲۸۲۲۰۴ ۴ ۱ ۱۰۰ ۹۹ قطعی دوشنبه[۱۹-۱۷] پنج شنبه[۱۰-۸] ۱۰/۳/۱۳۹۳ [۱۲-۹] نیک سیرت ۱ ۹۹ شنبه[۱۱:۴۵-۹:۴۵]
رباتیک ۱۲۸۲۲۱۴ ۴ ۱ ۱۰۰ ۹۷ محدث خراسانی سه شنبه[۲۱-۱۹] چهارشنبه[۱۹:۳۰-۱۷:۳۰] ۱۷/۳/۱۳۹۳ [۱۶:۳۰-۱۳:۳۰] کاظمی ۱ ۹۷ شنبه[۱۵:۳۰-۱۳:۳۰]
پردازش تصویر ۱۲۸۲۲۶۴ ۴ ۱ ۱۰۰ ۹۶ شیری احمدآبادی سه شنبه[۱۵:۳۰-۱۳:۳۰] چهارشنبه[۱۵:۳۰-۱۳:۳۰] ۲۱/۳/۱۳۹۳ [۱۲-۹] بابایی ۱ ۹۶ یکشنبه[۲۱-۱۹]
مبانی محاسبات نرم ۱۲۸۷۱۳۳ ۳ ۱ ۱۰۰ ۱۰۰ قطعی شنبه[۲۰:۳۰-۱۹] پنج شنبه[۱۵-۱۳:۳۰] ۱۱/۳/۱۳۹۳ [۱۲-۹] رئیسی گهروئی ۱ ۱۰۰ سه شنبه[۱۱:۳۰-۹:۴۵]
داده کاوی (۱) ۱۲۸۷۱۷۳ ۳ ۱ ۱۰۰ ۹۴ محمدپور شنبه[۱۷-۱۵:۳۰] چهارشنبه[۱۷:۳۰-۱۵:۳۰] ۱۳/۳/۱۳۹۳ [۱۲-۹] حائری مهریزی ۱ ۹۴ یکشنبه[۱۷-۱۵:۳۰]
احتمال وآمارفازی ۱۲۸۷۲۱۳ ۳ ۱ ۱۰۰ ۹۹ رضاخواه ورنوسفادرانی یکشنبه[۱۵-۱۳:۳۰] چهارشنبه[۱۲-۱۰] ۱۸/۳/۱۳۹۳ [۱۶:۳۰-۱۳:۳۰] رضاخواه ورنوسفادرانی ۱ ۹۹ دوشنبه[۱۷-۱۵:۳۰]
متن کاوی ووب کاوی ۱۲۸۷۲۲۳ ۳ ۱ ۱۰۰ ۹۴ زارع دوشنبه[۲۰:۳۰-۱۹] پنج شنبه[۱۵-۱۳:۳۰] ۱۲/۳/۱۳۹۳ [۱۲-۹] برادران کاشانی ۱ ۹۴ سه شنبه[۱۷-۱۵:۳۰]
نظریه طراحی سیستمها ۱۲۸۹۱۱۴ ۴ ۱ ۱۰۰ ۹۰ قطعی شنبه[۱۹-۱۷] پنج شنبه[۱۲-۱۰] ۱۱/۳/۱۳۹۳ [۱۲-۹] افتخاری ۱ ۹۰ دوشنبه[۹:۴۵-۷:۴۵]
طراحی نرم افزار یشرفته ۱۲۸۹۱۲۴ ۴ ۱ ۱۰۰ ۹۳ مرادی دولت آبادی شنبه[۲۱-۱۹] پنج شنبه[۱۵:۳۰-۱۳:۳۰] ۱۰/۳/۱۳۹۳ [۱۶:۳۰-۱۳:۳۰] مرادی دولت آبادی ۱ ۹۳ دوشنبه[۱۹-۱۷]
پایگاه داده پیشرفته ۱۲۸۹۱۳۴ ۴ ۱ ۱۰۰ ۸۷ شیری احمدآبادی دوشنبه[۱۵:۳۰-۱۳:۳۰] چهارشنبه[۱۹:۳۰-۱۷:۳۰] ۱۷/۳/۱۳۹۳ [۱۲-۹] بابایی ۱ ۸۷ یکشنبه[۹:۴۵-۷:۴۵]
با کلیک روی آگهی زیر مبلغ 400 ریال به حساب من واریز می گردد

با کلیک روی آگهی زیر مبلغ 1000 ریال به حساب من واریز می گردد