چهارشنبه, ۵ اردیبهشت, ۱۴۰۳ / 24 April, 2024
مجله ویستا

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


منطق فازی و کاربردهای آن در پیاده سازی کنترلر فازی
بشر به مدد تعقل و اندیشه است که توانسته طبیعت چموش را رام خود کند، و فرهنگ و تمدن را رنگ و جلا ببخشد. مگر نه اینکه فرهنگ از انگیختگی و پویایی ارتباط دوره به دوره ی انسان و طبیعت، انسان و انسان، انسان و ابزار، انسان و جامعه و زبان معنا یافته است؟ به مدد همین اندیشه است که آدمی مخلوق توانسته اثر انگشت خودش را بر طبیعت و زمانه ی خود حک کند، و حتی تا مقام خالق، خودش را بالا کشد. هیچ فکر کرده اید که علم و صنعت با سرعت نور، چنان در خدمت بشر قرار گرفته که به جای او محاسبه و اندیشه می کند؟ هیچ فکر کرده اید که همه لوازم پیرامون مان که آسایش را برایمان معنا می کنند و تکنیک اتومات را در خود دارد خالق ومبتکری به نام پروفسور "لطفی علی عسگرزاده" دارد؟ هیچ اندیشیده اید که کشور ژاپن چرا گوی سبقت را در تولید لوازم الکترونیک هوشمند از دیگر همتایانش ربوده ست؟
در اولین نگاه به اطراف خود به سادگی می توانید مجموعه ای از این دستگاه ها و لوازم را در خانه و محل کار خود بیابید. بله، مخترع منطق نوین علمی که جهان صنعت را دگرگون کرد و در کنار منطق دیجیتالی در ساختمان دستگاه های الکترونیکی، "منطق فازی" را به دنیا عرضه نمود، کسی نیست جز پروفسور لطفی زاده.
منطق فازی تعمیمی از منطق دو ارزشی متداول است و درحالیکه در منطق دودویی جایی برای واژه هایی همچون "کم"، "زیاد"،"اندکی"،"بسیار" و... که پایه های اندیشه واستدلالهای معمولی انسان را تشکیل می دهند وجود ندارد، روش پروفسور زاده برمبنای بکارگیری همین عبارات زبانی است.بعنوان مثال، مساله رعایت فاصله با خودروی جلویی در هنگام رانندگی را در نظر می گیریم. جهت تنظیم این فاصله هنگام مواجه شدن با خودروی روبرو "اگر جاده لغزنده باشد ، باید فاصله را زیاد می کنیم" و " اگر سرعت خوردرو کم باشد ، می توانیم فاصله را کم می کنیم" و "اگر هوا تاریک باشد ، فاصله را زیاد می کنیم" که غالبا به هنگام رانندگی امکان اندازه گیری دقیق میزان سرعت خودرو ، تاریکی جاده ، لغزندگی جاده و نظیر آن به منظور محاسبه مقادیر فاصله مطلوب وجود ندارد ، درنتیجه جهت طراحی سیستم ترمز موثر خودرو بر پایه منطق فازی، عباراتی مثل تاریکی کم یا زیاد ، سرعت کم یا زیاد ولغزندگی کم یا زیاد و... را بعنوان متغیرهای ورودی و عباراتی همچون " فاصله کم یا زیاد" را مشابه آنچه در مغز انسان برای تصمیم گیری رخ می دهد را بعنوان متغیر خروجی بکار می بندیم.
امروزه هیچ دستگاه الکترونیکی، از جمله وسایل خانگی، بدون کاربرد این منطق در ساختار فنی خود ساخته نمی شود. با منطق فازی پروفسور لطفی زاده این دستگاه ها هوشمند می شوند. امروزه اروپایی ها، ژاپنی ها و آمریکایی ها و همه و همه ی کشورهای پیشرو در علم و صنعت، پروفسور لطفی زاده را می شناسند و از اهمیت کار او در دانش مدرن بشری آگاهند.
بر خلاف آموزش سنتی در ریاضی، پروفسور "زاده" در سال ۱۹۶۵ منطق انسانی و زبان طبیعت را وارد ریاضی کرد. شاید بتوان با دو رنگ سیاه و سفید مثال بهتری ارائه داد. اگر در ریاضی، دو رنگ سیاه و سفید را صفر و یک تصور کنیم، منطق ریاضی، طیفی به جز این دو رنگ سفید و سیاه نمی بیند و نمی شناسد. ولی در مجموعه های نامعین منطق فازی، بین سیاه و سفید مجموعه ای از طیف های خاکستری هم لحاظ می شود و به این طریق فصل مشترک ساده ای بین انسان و کامپیوتر بوجود می آید.
این منطق حدود چهل سال پیش در آمریکا توسط لطفی زاده پایه ریزی شد و برای اولین بار در سال ۱۹۷۴ در اروپا برای تنظیم دستگاه تولید بخار در یک نیروگاه، کاربرد عملی پیدا کرد. با پیشرفت چشمگیر ژاپن در عرضه وسایل الکترونیکی، در سال ۱۹۹۰ کلمه "فازی" در آن کشور به عنوان "کلمه سال" شناخته شد.
بسط و گسترش منطق فازی و تئوری مجموعه های فازی بدلیل ابهام و عدم قطعیتی بوده که در مسائل پیرامون ما وجود دارد و به همین جهت در منطق فازی (علی رغم منطق دو ارزشی) گستره ای از ارزشها تعریف شده است تا ما قادر باشیم احساسات و تفکراتمان را بدون ابهام به مخاطبان خود انتقال دهیم .بدون اغراق زندگی روزمره ما آمیخته با مفهوم فازی است ، یعنی بطور ناخودآگاه از عباراتی استفاده می کنیم که برای مخاطب دقیقا مشخص نیست. . بعبارت ساده تر، مفهوم کلمه یا عبارت به تنهایی ممکن است واضح و روشن باشد ، اما زمانیکه از آن بعنوان معیاری در تعیین اعضای یک مجموعه ریاضی استفاده می شود ، شاید نتوان بطور قاطع شیء را به آن نسبت داد و بالعکس.
با این اوصاف :
الف) ما تا چه حد قادریم احساسات و تفکراتمان را بدون ابهام به مخاطبان خود انتقال دهیم و تا چه حد آن چیزی که بیان می کنیم دقیقا همان خواسته ذهنی ما بوده است؟
ب) چقدر درک مخاطب از جمله ما ، با آنچه که مقصود ما بوده همخوانی داشته است؟
این دو سوال ۲ مفهوم متفاوت و درعین حال اساسی در مبحث فازی را بیان می کنند. بطور کلی برای برقراری ارتباط با محیط اطراف ، ما از یک "زبان طبیعی" استفاده می کنیم و از آنجاکه قدرت تفکر همواره فراتر از توان پیاده سازی آن با یک زبان است برای بسیاری از مفاهیم ذهنی معادل دقیقی در دامنه لغات زبان وجود ندارد.
برای سوال دوم هم باید گفت که عوامل مختلفی در برداشت و درک افراد از یک مفهوم مشخص اثرگذار است .فرضا در عبارت "هوای سرد" با توجه به مکان زندگی ، فرهنگ ، حساسیت فرد به سرما و... تعابیر مختلفی برای فرد از عبارت "سردی" قابل تعریف است که لزوما با شخص دیگر در مکان دیگر برابر نیست، زیرا سردی هوا از نظر افراد مختلف داری درجات متفاوتی است.کسی که در قطب زندگی می کند دمای ۱۵- را سرد می داند درحالیکه برای فرد ساکن استوا دمای ۵+ درجه هم ممکن است سرد تلقی شود. این تفاوت درک افراد ازیک موضوع یکسان چگونه قابل توجیه است؟
برای پاسخ به این سوال ابتدا باید مفهوم و جایگاه واژه "سردی" در دنیای پیرامون ما تعریف و مشخص شود .این نکته همان چیزی است که پروفسور زاده در سال ۱۹۷۳ تحت عنوان متغیرهای زبانی به آن اشاره کرد، متغیرهایی که عدد نیستند بلکه مقادیرآنها حروف و لغات هستند و با مدلسازی مجموعه ای برای متغیر زبانی "سردی" (در واقع تئوری مجموعه های فازی) سعی در توصیف آن نموده و به هرکدام از دماهای مختلف (x) ، یک "درجه عضویت"(µ) نسبت می دهیم که بیان کننده میزان تعلق آن عضو به مجموعه است و بین بازه بسته ۰ و ۱ متغیر است:
µ Є [۰,۱] → U
در نتیجه در تئوری مجموعه فازی A در مجموعه مرجع U بصورت زوج مرتب زیر است:
A = { (x,µ(x))|xЄ A}
یعنی دیگر نمیتوان بطوردقیق عنصری از U را به مجموعه A نسبت داد و چون مرزی که در انتساب اعضا به وجود می آید(به دلیل درک مختلف افراد از آن عبارت ) حالت غیر قطعی و غیر دقیق به خود می گیرد. توابع عضویت در تعیین درجات عضویت نقشی اساسی ایفا می کنند .برای مثال برای مجموعه فازی با عنوان "سردی" دمای ۱۰- با درجه ۰.۸ به این مجموعه تخصیص می یابد در حالیکه دمای ۵+ دارای درجه عضویت ۰.۴ در این مجموعه است.با توجه به این درجه عضویتها می توان فهمید دمای ۱۰- سردتر از ۵+ است زیرا میزان تعلق آن به مجموعه فازی "سردی" بیشتر است.
همانند مجموعه های کلاسیک، اگر درجه عضویت عنصری به مجموعه فازی صفر باشد ، آن عنصر به مجموعه تعلق ندارد و درجه عضویت یک نشان می دهد که عنصر دقیقا عضو مجموعه است.بهر حال در تئوری fuzzyابهام در مفهوم توصیف کننده ها و گزاره های بیان کننده شرائط سیستم وجود دارد و توجه کنید که کلیه مباحث ما مربوط به این نوع عدم قطعیت است، بویژه زمانیکه در خصوص تصمیم گیری و یا ارزیابی یک سیستم یا فرآیند تحت کنترل صحبت می کنیم.
به عنوان نمونه عبارت " سال مالی موفق " را در نظر بگیرید. برای بعضی شرکتها ، سال اقتصادی موفق یعنی اینکه نسبت به سال قبل سود بیشتری بدست آورند اما برای برخی دیگر یعنی اینکه از ورشکستگی رهایی یابند! و... در نتیجه عبارت فوق الذکر یک گزاره وابسته به نحوه عملکرد شرکتهای مختلف است وبرخلاف عبارت " سردی هوا" ذاتا لغتی فازی محسوب نمی شود.
بدلیل ماهیت منطق فازی و تئوری مجموعه های فازی ، زمینه های کاربردی گسترده ای در علوم مهندسی و حتی اجتماعی و اقتصادی برای آن بوجود آمده است.یکسری از انجمنهای فعال در زمینه منطق و تکنولوژی فازی عبارتند از :Japan Soceity Fuzzy Theory and Systems(SOFT) ,Laboratory for International Fuzzy Engineering Research(LIFER)
● آشنایی با منطق فازی
منطق فازی عبارتست از "استدلال با مجموعه های فازی". پیش از معرفی تئوری منطق فازی توسط پروفسور لطفی زاده در ۱۹۶۵ محققان زیادی به رفع پارادوکسهای موجود در مسائل مطرح شده در علوم مختلف بر اثر محدودیت منطق دوگانه مشغول بودند ، مانند پارادوکس woogerدر علوم زیست شناسی که در آن فرزندان بعضی از حیوانات به تیره خانواده ای متفاوت از والدینشان تعلق دارند ، در حالیکه از نظر ژنتیکی چنین امری ممکن نیست و این موضوع با منطق دوگانه مرسوم سازگاری نداشت.
در این راستا Bertrand Russel ابهام را جزئی از زبان دانست و یا Jan Lukasiewicz منطق سه ارزشی را مطرح کرد که در آن علاوه بر ارزشهای False & True منطق ارزشی possible هم وجود داشت.در منطق فازی به جای دو ارزشی بودن ، ما طیفی از ارزشها را در بازه بسته صفر و یک خواهیم داشت. با این طیف می توان عدم قطعیت را به خوبی نمایش داد . تمایز عمده منطق فازی با منطق چند ارزشی آن است که در منطق فازی مفهوم یک عبارت هم می تواند مبهم باشد(مانند سردی هوا) .
در منطق فازی می توانیم جملاتی را که معمولا در محاورات روزانه در تحلیل مسائل استفاده می کنیم از قبیل "کاملا درست است" ،"کم و بیش درست است"، "تا حدی نادرست است" و... را بکار بندیم . بطور کلی منطقها بعنوان پایه برهان به ۳ بخش متمایز مقادیر درستی (Truth Values), عملگرها(operators) و فرآیند استدلال (reasoning) تقسیم می شوند.
برای نمونه عملگر or برای دو ورودی منطق دودویی (با مقادیر درستی صفر و یک) به شکل زیر است:
OR B A
۱ ۱ ۱
۱ ۰ ۱
۱ ۱ ۰
۰ ۰ ۰
و برای فرآیند استدلالی به شرح زیر ما جدول متناسب را رسم نمودیم:
Modus Ponens : (A ^ (A → B) )→B
B ^ A → B B A
۱ ۱ ۱ ۱ ۱
۱ ۰ ۰ ۰ ۱
۱ ۰ ۱ ۱ ۰
۱ ۰ ۱ ۰ ۰
این استدلالها مربوط به منطق دودویی است ، در حالیکه منطق فازی بسطی از منطق چند ارزشی بر پایه تئوری مجموعه هاست که در آن مقادیر درستی بجای صفر و یک متغیرهای زبانی هستند.
● تئوری مجموعه های فازی
در ابتدای کار به منظور یاد آوری به مجموعه های کلاسیک اشاره خواهیم داشت. یک مجموعه کلاسیک بعنوان یک مجموعه ای از اشیاء با اجزایA Є x تعریف می شود.در واقع تابع مشخصه ای وجود دارد که برای هر x متعلق به مجموعه مرجع U مقدار µ(x) را بررسی می کند، تا مشخص شود که آن x متعلق به A است یا خیر:
۱ , if and onlyif xЄ A
A ۰ , if and onlyif x
بعبارت دیگر گزاره xЄ A یا درست است ویا غلط .چنین مجموعه ای به اشکال مختلف قابل تعریف است:
۱) می تواند لیست عناصری باشد که به مجموعه متعلقند.
۲) ۲-توصیف مجموعه با بیان شرط عضویت A={x|x<۵}
۳- تعریف عناصر بوسیله یک تابع مشخصه که در آن "۱" نشانه عضویت و "۰" نشانه عدم عضویت است.
اما زمانیکه تابع مشخصه می تواند مقادیر پیوسته ای در [۰,۱] را به خود اختصاص دهد آنگاه
µ(x): U → [۰,۱]
دیگر نمیتوان بطور دقیق عضوی از U را به مجموعه A نسبت داد یا بالعکس ، بلکه برای هر x یک "درجه عضویت" تعریف می شود ، مثلا وقتی گفته می شود درجه عضویت x در مجموعه A برابر ۰.۸ است ، حاکیست که امکان تعلق x به این مجموعه بیش از امکان عدم تعلق آنست .این نکته پایه تئوری مجموعه های فازی است و عمل تخصیص درجه عضویت نیز بر عهده توابع عضویت می باشد.
برای مثال فردی با ۳۰ سال سن ، بیش از آنکه به مجموعه "پیر" تعلق داشته باشد به مجموعه "جوان" متعلق است و این وابستگی را با عددی بین ۰ تا ۱ نشان می دهیم.
تعریف- یک مجموعه فازی A در مجموعه مرجع U بصورت زوج مرتب زیر است:
A = { (x,µ(x))|xЄ A}
یک مشاور املاک میزان راحتی و آسایش خانه ها را به توجه به تعداد اتاقهای خواب آن طبقه بندی می کند( این مفهوم فازی است چرا که مشاور املاک دیگر ممکن است نظری متفاوت داشته باشد)! اگر مجموعه Aبه صورتA={۱,۲,…,۱۰} مجموعه ای از انواع خانه های موجود با اعضای x نشاندهنده تعداد اتاقهای خواب باشد ، آنگاه مجموعه فازی "خانه راحت" برای یک خانواده ۴ نفری بشکل زیر قابل تعریف است:
A={(۱,۰.۲),(۲,۰.۵),(۳,۰.۸),(۴,۱),(۵,۰.۷),(۶,۰.۳)}
که در آن مناسبترین خانه ، با ۴ اتاق خواب در نظر گرفته شده و بالاترین درجه عضویت هم به آن تخصیص یافته است. بالتبع اگرB مجموعه فازی برای یک خانواده ۵ نفره باشد، حاصل مجموعه ای متفاوت از مجموعه A خواهد بود.
● تابع عضویت
تابع عضویت هر مقدار عددی را به درجه عضویت عبارات زبانی (بین ۰ تا ۱) می نگارد. در حالت استاندارد ، ۳ مرحله برای بدست آوردن تابع عضویت یک متغیر زبانی ذکر شده است:
۱) مرحله ۱
برای هر عبارت ، آن مکانی که شامل نزدیکترین مقدار عددی به مفهوم زبانی عبارت است را انتخاب می کنیم و غالبا دارای ماکزیمم درجه عضویت µ=۱ هم هست.مانند توابع عضویت مربوط به عبارت زبانی “power” که در زیر نشان داده شده است.pos-high نمایانگر توان مثبت بزرگ (positive) و neg-medium نشاندهنده توان منفی متوسط است.
۲) مرحله ۲
برای هر عبارت زبانی، مکان (یا مکانهایی) را که مقدار درجه عضویت عبارت در آنجا صفر است معین می کنیم.
۳) مرحله ۳
نقطه ای که دارای µ=۱ بوده را به نقاطی که دارای µ=۰ بودند با خطوط مستقیم وصل می کنیمف که می تواند تابعی به شکل &#۹۲۳; ایجاد نماید یا برای حالتی که دونقطه ماکزیمم داریم بصورت &#۹۲۸; باشد.برای متغیرهای خروجی (مانند توانهای موتور در مثال قبلی) ، همین روند تکرار می شود.
برای توابع عضویت شکلهای مختلفی وجود دارد که مهمترین آنها عبارتند از:
۱) مثلثی و ذوزنقه ای
به ۲ دلیل این نوع شکل, در رسم توابع عضویت بیشترین کاربرد را دارند که علت آن سادگی در محاسبه خروجی یک سیستم فازی می باشد.
۲) مکعبی
که حالت متقارن مکعبی را شامل می شود.
۳) حالت منحنی (نمایی)
که نمودار تابع عضویت آن به شکل زیر است:
مثلا در بررسی تابع عضویت بشکل &#۹۲۸; برای مرحله فازی سازی ورودیهای عددی تابع عضویت متغیر زبانی " تقریبا برابر عدد ۱۰" در شکل زیر ۴ نقطه در نظر می گیریم:
ملاحظه می شود که با استفاده از این ۴ نقطه کل ناحیه محور به ۵ بخش تقسیم خواهد شد. در نتیجه هر ورودی عددی به سیستم ، در یکی از این نواحی قرار می گیرد و بر همین اساس معادل زبانی و درجه عضویتش مشخص می گردد.فرضا اگر ورودی عدد ۸ باشد، مقدار درجه عضویتش برای این عبارت زبانی ۰.۵ خواهد بود .
عملیات اساسی روی مجموعه های فازی(t-norm, co-norm)
چون مجموعه های فازی با توابع عضویتشان تعریف می شوند ، در واقع عملگرها روی این توابع عمل می کنند.
تعریف-مکمل مجموعه فازی با تابع عضویت µA(x) بصورت مجموعه ای با تابع عضویت زیر تعریف می شود:
µA(x)=۱- µA(x)
فرضا تابع عضویت مجموعه فازی " تقریبا عدد ۱۰" با اعمال این عملگر یعنی “not” به شکل زیر تبدیل می شود:
تعریف-co-norm اشتراک ۲ مجموعه فازی C=A&#۹۲۸;B ، مجموعه با تابع عضویت زیر است:
µC(x)=min {µA(x), µB(x)} xЄA
البته راههای دیگری در تعریف اشتراک وجود دارد ، مانند ضرب توابع عضویت µA(x)* µB(x) یا روابط دیگری که توسط افراد مختلف بکارگرفته شده است.
تعریف-t-norm اجتماع ۲ مجموعه فازی C=AUB تابع عضویتی به شکل زیر دارد:
µC(x)=max {µA(x), µB(x)} xЄA
● متغیرهای زبانی
یک متغیر بوسیله یک پنج تایی (x,T(x),U,G,M) مشخص می شود که x نام متغیر زبانی مانند دما، فشار و ... ، T(x) مجموعه ای از مقادیر زبانی است که برای x تعریف می شود ، مانند خیلی زیاد، کم و ...، U مجموعه مرجعی است که مقادیر زبانی روی آن تعریف می شوند ، مثلا برای دما ، بازه بین ۵۰- و ۱۰۰+ درجه سلسیوس بعنوان مقادیر مجاز برای مجموعه فازی " دما" تعریف می شود. G هم یک تابع عضویت تعریف شده روی مجموعه مرجع است که مفهوم مقادیر زبانی در عبارت را مشخص می کند وM(x) بعنوان زیر مجموعه ای فازی از U است مانند:
M(old)={(x,µold(x)|x Є[۰,۱۰۰]}
µold(x)= ,x Є [۵۰,۱۰۰]
پروفسور" زاده " در سال ۱۹۷۳ می نویسد:" متغیرهای زبانی ، متغیرهایی هستند که مقادیرشان اعداد نیستند ، بلکه لغات یا جملات یک زبان طبیعی یا ساختگی هستند." اگرچه تئوری مجموعه های فازی فقط با مدلهای ریاضی سر و کار دارد ، ولی امکان مدلسازی لغات و عبارات یک زبان طبیعی را به کمک متغیرهای زبانی می دهد. بطور کلی متغیرها به ۲ دسته تقسیم می شوند :
۱) زبانی:
مانند کلمات و عبارات مر بوط به یک زبان طبیعی را گویند.
۲) عددی:
که متغیرها دارای مقادیر عددی هستند.
یک متغیر زبانی در واقع یک عبارت زبان طبیعی است که به یک مقدار کمیت خاص اشاره دارد و اصطلاحا مانند مترجم عمل می کندو به کمک تابع عضویت نشان داده می شود مانند واژه "سرد" در جمله "هوا سرد است". سردی خود متغیری است برای دمای هوا که می تواند مقادیر مختلفی به خود اختصاص دهد و در واقع یک تابع عضویت برای آن تعریف می شود.
متغیرهای زبانی می توانند از الحاقu=u۱,u۲,u۳,…,un تشکیل شوند که هر کدام از ui ها عبارتی تجزیه ناپذیر است ، مانند " تا حدی سرد" ، که در مجموع به ۴ دسته زیر تقسیم می شود:
۱) عبارات اصلی: که بعنوان برچسبهایی برای مجموعه های فازی در نظر گرفته می شوند و مانند "سرد" در عبارت بالا یا عباراتی از قبیل: کوتاه ، بلند و... که هر کدام تابع عضویت مخصوص خود را دارند.
۲) حروف ربط : مانند و ، یا...
۳) پیراینده : که روی عبارات اولیه اعمال شده و اثر تشدید یا تضعیف در مفهوم آن عبارت را بهمراه دارد مانند تا حدی ، اندکی ، بسیار و...
۴) حروف نشانه مانند پرانتز و...
تمامی پیراینده ها روی عبارات اصلی u بصورت u به توان p عمل می کنند که pЄ[۰,∞) است و اگر p=∞ شود آنگاه عبارت دقیق و غیر فازی حاصل می شود و نشان می دهد که هیچ ابهام و تردیدی وجود ندارد.اگر فرضا متغیر زبانی “پیر” را بعنوان ملاک ایجاد یک مجموعه فازی در نظر بگیریم آنگاه آن مجموعه بصورت زیر خواهد بود:
پیر={(۰.۳و۴۵)،(۰.۵و۵۰)،(۰.۸و۵۵)،(۰.۹و۶۰)،(۱و۷۰)،(۱و۷۵)}
آنگاه عبارت "بسیار پیر" ="پیر به توان ۲ " یعنی تمام درجات عضویت به توان ۲ می رسند که ما حصل
بصورت زیر خواهد بود:
بسیار پیر={(۰.۰۹و۴۵)،(۰.۲۵و۵۰)،(۰.۶۴و۵۵)،(۰.۸۱و۶۰)،(۱و۷۰)،(۱و۷۵)}
و یا برای نمونه عملگری مثل "کم و بیش" که خاصیت تضعیف کنندگی مفهوم را با خود بدنبال دارد بصورت "کم و بیش پیر" = "پیر به توان " .
از مهمترین کاربردهای این منطق در هوش مصنوعی و طراحی رباتهاست.
ارایه کننده: محمد علیزاده
منبع : بانک مقالات فارسی


همچنین مشاهده کنید