9- لغات دارای غلط املایی، خطاهای معمول، صفحات پر از متن، قول دادن برای چیزهایی که به سادگی نمی توان آن ها را تحویل داد.
10- اسلاید 7-11 که دقیقا مشخص نیست کدام بخش منظور سوال هست.
11- رنگ، شکل، نوع، محتوا، خدمات ارائه شده، تمرکز اصلی، میز راهنما، طبقه بندی سایت، حرفه ای بودن، سرعت، سازگاری، شخصی سازی، امنیت، مقیاس پذیری
12- الف) شخصی سازی یک استراتژی، یک ابزار بازاریابی، و یک هنر است. بازدید کننده-گرایی به جای محصول-گرایی
ب) شخصی سازی سعی می کند برای تمام مشتریان به طور منحصر به فرد عمل کند.
ج) سفارشی سازی بر کنترل مستقیم کاربر تمرکز دارد.
د) شخصی سازی که با نرم افزارهای مصنوعی انجام می شود، تلاش دارد تا صفحات هر فرد را بر اساس یک مدل از نیازهای کاربر (عادات گذشته، ترجیحات و غیره) هدایت کند.
13- کوکی ها، نرم افزار پایش (فیلتر کردن) همکار ، Check-box personalization،
شخصی سازی مبتنی بر قانون، شبکه های عصبی
14- قابلیت استفاده به مجموعه ای از ویژگی های کیفیتی مستقل اشاره دارد.
کارایی، رضایت مندی، سهولت پیمایش (پویش)، قابلیت یادگیری
15- هسته قابلیت اطمینان، در دسترس بودن است
در دسترس بودن سیستم، در دسترس بودن شبکه، در دسترس بودن نرم افزار
جواب سوالات فصل راه اندازی یک کسب و کار الکترونیک در اینترنت رو از لینک زیر دانلود کنید.
به امید موفقیت روز افزون شما عزیزان ...
http://uploadkon.ir/fl/d/NTc2NDc%3D
Spyware، نرم افزاری است که اقدام به جمع آوری اطلاعات شخصی بدون آگاهی و یا اجازه کاربران می نماید. اطلاعات جمع آوری شده می تواند شامل لیست سایت های مشاهده شده توسط کاربر و یا اطلاعات بمراتب حساس تری نظیر نام و رمز عبور باشد. به این نوع برنامه ها adware نیز گفته می شود. نرم افزارهای فوق پس از نصب بر روی کامپیوتر، قادر به ارسال آگهی های تجاری pop up، هدایت مرورگر به وب سایت هائی خاص، ارسال لیست سایت های مشاهده شده توسط کاربر و یا مانیتورینگ عملکرد کاربران در زمان اتصال به اینترنت می باشند. برخی از برنامه های Spyware، قادر به ردیابی و تشخیص اطلاعات تایپ شده از طریق صفحه کلید نیز می باشند. با توجه به انجام پردازش های اضافی توسط اینگونه نرم افزارها، سیستم های کاربران کند و کارآئی آنان بطرز محسوسی کاهش خواهد یافت. در صورت دریافت موزیک از طریق برنامه های اشتراک فایل، بازی های رایگان از سایت های ناامن و یا سایر نرم افزارها از منابع ناشناخته، شرایط لازم به منظور نصب اینگونه نرم افزارها و در نهایت آلودگی سیستم فراهم می گردد.
hijacking نوعی حمله ضد امنیتی در شبکه است به طوریکه حمله کننده ارتباط را در دست می گیرد. درست مانند یک هواپیما ربا که کنترل پرواز را بدست می گیرد.(hijacking به معنای هواپیما رباست.) در یک نوع از این حمله ها در حالیکه قربانی ارتباط خود را با جایی برقرار کرده و در حال انجام کار خود است، هیجاکر کنترل این ارتباط را در دست می گیرد. حمله کننده مانع از رسیدن پیغام ها می شود و در عوض پیغام خود را برای طرفین می فرستد. و در این حال طرفین گمان می کنند که مستقیماً با هم در ارتباط هستند. هیجاکرها برای این کار از یک نرم افزار استفاده می کنند که در برابر کاربر همانند یک سرور ظاهر می شود و در برابر سرور مانند یک کاربر ظاهر می شود. و به این ترتیب مخفیانه خرابکاری را شروع می کند. به این ترتیب خرابکار می تواند به پیغامهای شما دسترسی داشته باشد یا آنها را آن طور که دوست دارد دستکاری کند و سپس ارسال کند.
یک نوع دیگر از هیجاکینگ ها مربوط به مرورگرها هستند. در این نوع کاربر به سایتی غیر از آنچه درخواست کرده است هدایت می شود. از این نوع خرابکاری دو نوع وجود دارد که در یک نوع از آن خرابکار به اطلاعات دومین که در سرور ثبت شده است دست پیدا می کند. و آنها را تغییر می دهد به طوریکه با درخواست یک صفحه از طرف کاربر صفحه ای جعلی برای او باز می شود. معمولاً این صفحات توسط همین خرابکارها ساخته شده است. در این صفحه پیغامی نمایش داده می شود به این شرح که این وب سایت مسدود شده است. در حالیکه این گونه نیست و فقط یک سرور از کار افتاده است. جلوگیری از این نوع هیجاکینگ مشکل است چون مدیران معمولاً بر روی اطلاعات سیستم نام دامنه روی سرور خود کنترل دارند ولی بر روی سرورهای DNS پایین دست کنترلی ندارند. در نوع دیگر خرابکار ایمیل های معتبر را پیدا می کند و inbox آنها را پر می کند. این نوع از حمله قابل پیشگیری است.
در نوع دیگری از هیجاکینگ خرابکار به سادگی دومینی با نام شبیه به نام یک وب سایت دیگر ثبت می کند. این نام معمولاً از غلط املائی یا اشتباهات تایپی حاصل می شود. که در این نوع معمولاً کاربر را به یک سایت غیر اخلاقی (با هدف کسب درآمد) هدایت می کند.
سیستم خبره مشاور املاک
گردآورندگان:
1.الناز آقایی
2.سمیه لک زایی
استاد راهنما:
خانم برادران هزاوه
چکیده
این مقاله به بررسی استفاده از سیستم های خبره به پیش بینی املاک و مستغلات میپردازد. این مقاله نیز به بررسی های گسترده تر موضوع سیستم های خبره و چگونه یک سیستم بهتر می تواند به نتایج بهتری منجر شود. این سیستم خبره بسیار به درد افرادی میخورد که میخواهند با اطلاعاتی ناقص، خانه ای خوب بخرند سیستم های خبره روش های ایده الی هستند
سیستم های خبره در کار املاک و مستغلات
پیش بینی در درجه اول فرایند کمی از داده های عددی از گذشته تا پیش بینی اینده است.سیستم های خبره روش های ایده الی هستند برای مقابله ای خوب با مشکلات بسیار.
یکی از از این پیش بینی ها کیفی است.این است که به طور معمول برای محصولات جدید و در شرایطی که در انجا هیچ مجموعه ای طولانی مدت جایی که ممکن است کمک به ارائه پیش بینی باشد نیست.
سیستم های خبره می توانند در استفاده از روش های فروش نیرو های مرکب یاری دهند
تاریخچه
سیستم خبره در املاک
فرض کنید شما یک بنگاه معاملات ملکی دارید و 40 درصد درآمد شما از طریق ارزیابی املاک تجاری و قیمت گذاری بر روی آنها حاصل می شود. حال فرض کنید تنها یک نفر در موسسه شما قادر است چنین ارزیابی ای را انجام دهد. حال اگر این فرد موسسه شما را ترک کرد چه می کنید؟ چگونه جایگزینی برای این تخصص خواهید یافت؟ با چه سرعتی قادر خواهید بود فرد دیگری را بیابید؟ چنانچه جایگزینی فرد دیگر یک ماه طول بکشد چه میزان هزینه فرصت از دست رفته در این یک ماه خواهید داشت؟
در سازمانهای مختلف پرسنل بسیار ارزشمندند زیرا وظایف بسیار مهمی را انجام می دهند که انجام بسیاری از این وظایف نیازمند تخصص فراوان است و این تخصص تنها در دستان پرسنل خبره نهفته است. سیستمهای خبره سیستمهایی هستند که خبرگی و دانش مربوط به حل مسائل را ثبت کرده و آن را در اختیار افرادی قرار می دهند که از تخصص کافی برای حل مساله مورد نظر بر خوردار نیستند. بدین ترتیب قادر خواهند بود با استفاده از سیستم مسائل سازمانی را حل کرده و همچنین از سیستم به عنوان ابزاری برای یادگیری استفاده کنند.
یک سیستم خبره یا سیستم مبتنی بر دانش سیستمی در رده سیستمهای هوش مصنوعی می باشد که دارای قدرت استدلال است در مورد مسایل مربوط به یک حیطه تخصصی است و نتیجه گیری نهایی را ارائه می دهد. سیستمهای خبره برای تشخیص مسائل و تجویز راه حل مناسبند. به این معنی که سیستهای خبره می توانند تشخیص دهند که علت بوجود آمدن یک مشکل چیست و برای حل آن مشکل راه حل مناسب را تجویز کنند
اهداف سیستم خبره در املاک
1.آماده سازی اسناد املاک و مستغلات مانند اجاره ، قرارداد و فرم.سیسم های خبره می توانند به کاربر کمک کنند تا مدارک را با استفاده از هدایت انها از طریق فرایند و جلب توجه به مشکلاتی که ممکن است عاقلانه نباشند،به عنوان بهبود عبارت و ساختار، اماده کند.
-2.هزینه ساختمان ها و توسعه پروژه ها.این نیاز به ترکیب روش داده کاوی و روش قانون پایه ای دارد(یا مورد های مبتنی بر استدلال)برای گردهم اوردن دانش کارشناس بررسی کمیت.مهندسی و ساخت با براورد هزینه درست.
-محاسبه کمک با نرم افزار های عممی کامپیوتری و همچنین تخصصی.3.
-4.تهیه گزارش و مشروحات ملک
-5.مشکلات مدیریتی اموال و امکانات در جایی که سیستم های خبره می تواند به هردو صورت مشتریان و مدیران املاک برای ساده کردن راه حل های بعضی مشکلات استفاده شود. یکی از مسائل اشکار ، پر کاربردی برای افراد تازه کار و قابلیت کمک در اموزش و فرایند پرورش تا زمانیکه به کاربر و کارشناس شدن خود شخص منجر بشود ،است
اجزای مختلف یک سیستم خبره
اجزای اطلاعاتی: اولین نوع اطلاعات مربوط به یک سیستم خبره اطلاعات مربوط به حیطه تخصصی است و در واقع هسته اصلی یک سیستم خبره می باشد. زیرا مجموعه ای از گامهای حل مساله است که با استفاده از آن به همراه یک فرایند استدلال، سیستم قادر به حل مساله می باشد. گاهی ممکن است کاربر دلیل تجویز یک راه حل را از سیستم خبره بپرسد. در این حالت سیستم با استفاده از "اطلاعات چرایی " که در سیستم موجود است پاسخ کاربر را خواهد داد. با وجود این دو نوع اطلاعات ( اطلاعات حیطه تخصصی و اطلاعات چرایی) یک سیستم خبره قادر به حل مسائل و پاسخ دادن به کاربر است و تنها کاربر لازم است اطلاعات مربوط به وقایع مساله را به سیستم بدهد. در حین فرایند حل مساله سیستم دائماً سوالاتی را از کاربر می پرسد و در واقع پاسخ این سوالات همان وقایع مساله می باشند
سیستم خبره شامل هفت مرحله است
مرحله 1
گام اول جمع آوری اطلاعات در مورد موضوع املاک است. برای کاربران حرفه ای یا خبره این داده ها میتونه به صورت مستقیم وارد شود. برای کاربران تازه کار یا در حال آموزش یک سیستم مبتنی بر قانون وجود دارد که برای ورودی ها او را راهنمایی میکندد. سیستم با یا بدون اطلاعاتفهرست شده در گزارش بازرسی کار می کنند. بر اساس اطلاعاتی که در قسمت features به صورت لیست قرار گرفته و به ما خروجی میدهد. با این حال نتیجه در بسیاری از مناطق دقیق نیست
مرحله 2
مرحله دوم شامل جمع آوری اطلاعات در پایگاه فروش میباشد. این اطلاعات به صورت ماهیانه به روز میشوند و سیستم با بهره گیری از جستجو و سیستم فیلتر باهم و همراه با دانش تخصصی با پارامتر های مناسب پر فروشها را انتخاب میکند. این پارامترها میتوانند به وسیله ی کاربر زده شوند و در نسخه های بعدی این سیستم میتونه به یاد بیاره که کدام پارامتر ها در کدام مناطق تاثیر گزارتر هستند
مرحله 3
مرحله ی 3 به تجزیه تحلیل داده های بازار میپردازد.در این مثال یک مدل رگرسیون استفاده میشود. این سیستم اجازه میدهد به مدلهای مختلف شامل مدل های رگرسیون ومدلهای مختلف شبکه عصبی با ااگوریتم ژنتیک. فرایند ساخت این مدل بر اساس دانش خبره با آزمون های استاندارد برای اعتبار مدل استفاده شده است
مرحله 4
مدل از داده های بازار به عنوان پایه برای تنظیمات برای سیستم استفاده می شود کاربر میتواند تنظیمات را زیر پا بگذارد اگر کاربر معتقد باشد که قیمت در برابر زمان افزایش داشته باشد پس آن زمان می تواند یک تنظیم مناسب باش
مرحله5
مرحله ی بعدی شامل انتخاب بیشترین فروشهایی که قابل مقایسه هستند، است.
این فرایند با استفاده از ترکیبی از دانش خبره و نزدیکترین تکنیکهای همسایه است.سیستم تلاش دارد برای اینکه تعداد مناسبی از فروشهایی را که قابل مقایسه هستند را پیدا کند. به عنوان مثال اگر از بین چهار حالت مقایسه سه حالت با توجه به داده ها و اعمالی که روی آنها انجام میشود به داده نزدیکتر و مقایسه ی چهارم از آنها دور بود سه حالتی که نزدیک هستند انتخاب میشوند . این سسیتم مانند بیشتر سیستم ها میتواند حالت خودکار خود را زیر پا بگذارد و خود کاربر به صورت غیر خودکار این کار را انجام دهد
مرحله 6
مرحله 6 با استفاده از تمام اطلاعات بدست آمده تا این مرحله به تنظیم بیشترین فروشهای قابل مقایسه با استفاده از روشهای مناسب و تنظیم های انتخاب شده میپردازد.
( بر اساس ورودی های ما یک سری مقایسه ها انجام داده و یک رنجی را به ما داده است که میتوانیم به وسیله ی آن رنجها که حتما با یک سری فرمول های خاص بدست آمده یک قایسه ی خوب انجام دهد)
مرحله 7
مرحله ی آخر شامل درصد گیری برای نشان دادن بهترین گزینه است که این درصد ها با توجه به اطلاعات بدست آمده از مرحله ی 6 بدست می آید
سیستم خبره املاک در ایران
در تمام دنیا آژانس های املاک بعد از واگذاری ملک هم مسئولیت اصلی را دارند. مثلا خانه ای را که اجاره می کنند اگر برای لوله کشی آب اتفاقی بیافتد مستاجر به تنها جایی که تماس می گیرد فقط آژانس مربوطه است. اما مشاوران املاک ما هیچ گونه ضمانتی نسبت به آنچه ارائه می دهند، ندارند، هیچ گونه تعهدی هم نسبت به کاری که انجام می دهند، ندارند.
اقتصاد ایران آنلاین- فاطمه سیروس: ارتقای سیستم فناوری اطلاعات و به روز رساندن فعالیت های مختلف اقتصادی، اجتماعی و... در هر کشور از نشانه های پیشرفت و توسعه پایدار است. با افزایش روند رو به رشد در این حوزه بسیاری از مشکلات جامعه و حتی ارگان های مرتبط، کاهش یافته و فعالیت های اقتصادی و اجتماعی در کشور به سهولت انجام خواهد شد. در کشور ما نگاه به این حوزه (فناوری اطلاعات) تا حدودی مثبت بوده، اما به دلیل نبود مدیران متخصص به ویژه در هشت سال گذشته، بسیاری از ایده ها و برنامه های تاثیرگذار در حوزه های مختلف نادیده گرفته شد.
یکی از طرح هایی که در این سال ها مورد بی مهری واقع شد طرحی است که با هدف تحول عظیم در حوزه مسکن و معاملات املاک به میان آمد اما به دلیل نبود کارشناس و از طرفی منفعت طلبی افراد حاکم بر این حوزه به شکلی دیگر اجرا شد.
علیرضا الفت، ایده پرداز این طرح از این که طرحش با مکانیسم جلوگیری از افزایش قیمت مسکن کلید خورد و درنهایت به ثبت آمار و اسناد و به عبارتی سامانه کد رهگیری املاک منجر شد، بسیار متاسف است. او از ابتدای شکل گیری این ایده تا پایان آن که البته پایان خوشی نبود، می گوید.
چه شد که به فکر بازار مسکن و مشکلات این حوزه افتادید؟
جریانات رشد قیمت مسکن ذهنم را بسیار درگیر کرده بود که چطور این افزایش قیمت می تواند اتفاق بیافتد؟ زیرا شاخص های اقتصادی هم حاکی از این اتفاق نبود. آن زمان علاقه شدیدی به بازار بورس داشته و در تحلیل های مالیاتی که داشتم به فکرم رسید که ما در کشور، داده های تاریخی در رابطه با مسکن نداریم و نمی توانیم آن طور که می خواهیم روند بازار مسکن را پیگیری کنیم. مثلا روند افزایش قیمت از کجا و به چه دلیل اتفاق می افتد؟ شاخص های تاثیرگذار واقعا چه شاخص هایی هستند و چطور می توان جلوی بحث سفته بازی را گرفت؟ با این هدف به دیتاهای مختلف مراجعه کردم و دریافتم چنین چیزی وجود ندارد.
در آن زمان در بنیاد شهید مدیر فناوری اطلاعات بودم. سال85 شرکتی با نام حافظ کیش در بنیاد تاسیس کردیم که در حوزه آی تی فعالیت می کرد و اولین کارش دیتاسنتر بود. همان طور که مشغول پیگیری این کار بودیم در همان زمان فکری به ذهنم رسید که در این مرکز داده، یک قسمتی هم برای معاملات املاک مشخص کنیم.
دقیقا در چه سالی؟
خردادماه سال86 بود که اولین طرح ساماندهی معاملات املاک با رویکرد تحلیل آماری و ایجاد یک سیستم خبره روی اطلاعات معاملات مسکن را طراحی کردیم. یعنی درصدد بودیم یک سری داده های مشخص با تحلیل هایی که معمولا در بورس هم وجود دارد را استخراج کنیم تا بتوانیم بازار مسکن را پیگیری، توصیف و پیش بینی کنیم.
این کار چه مزیتی داشت؟
دیتای ارزشمندی را به وجود می آورد، اما متاسفانه این اتفاق رخ نداد. درنهایت ما در تیرماه86 طرحی تهیه کردیم، یک چکیده 7صفحه ای در مورد این که چرا این طرح باید اجرایی شود.
مزایای استفاده سیستم خبره در املاک( آقای الفت! با توجه به نمودار و طرح تان)
1. ما یک هدف اصلی با عنوان تغییر در کسب وکار بنگاه ها داشتیم. این که افرادی که در بنگاه های املاک می نشینند اطلاعات فنی نسبت به کارشان ندارند، به عبارتی مشاوران املاک ما هیچ گونه ضمانتی نسبت به آنچه ارائه می دهند، ندارند، هیچ گونه تعهدی هم نسبت به کاری که انجام می دهند، ندارند.
2.دومین عامل بحث دانش افراد بود. آژانس های املاک ما فقط خانه را به مشتری نشان می دهند، اما مثلا در مورد نقشه لوله کشی آب یا استحکام ساختمان هیچ اطلاعاتی ندارند.
3.ما به این فکر افتادیم فردی که قرار است ملکی را ثبت کند یک کارشناس باشد و این افراد مجبور شوند که آموزش ببینند، حتی بدون امتحان، فقط بتوانند بحث به روزرسانی اطلاعات داشته باشند و افرادی که در بنگاه های معاملات مسکن مستقر هستند مشاوران امین واقعی مردم باشند. اگر سال86 با این شرایط که انتظار داشتیم این سیستم پیشنهادی مان را راه می انداختیم دستاوردهایی که مدنظرمان بود
4. بحث ایجاد ا.طلاعات همگن،
5.عدالت در دستیابی به اطلاعات،
6.کاهش رانت اطلاعاتی در املاک،
7.پیشگیری از کلاهبرداری،
8. شفاف سازی اطلاعات،
9. کمک به کاهش اختلاف طبقاتی و کمک به پاکسازی اطلاعات موجود در نهادها و سازمان های مختلف کشور،
10. همچنین هیچ وقت مشتری برای ثبت یک خانه در سامانه اطلاعات، مبلغی پرداخت نمی کرد، درحالی که امروز به صورت روال عادی این اتفاق می افتد. نحوه تقسیم پورسانت که دغدغه بنگاه ها بود را در سیستم مالی این طرح پیش بینی کردیم، نحوه این که اطلاعات چگونه ثبت شود و از طریق نهادهای زیرمجموعه که در نظر گرفته بودیم بررسی شود و ملک قبل از این که بیاید دست معامله حتما چک شده باشد که مشکل قضایی، شهرداری یا سازمان های دیگر نداشته باشد.
11.که این یک پیش بینی بود از این که بازار مسکن در خانه های جدید یا قدیمی شکل می گیرد یا مثلا اگر سیستم قضایی دنبال شخصی است که کلاهبرداری کرده راحت بتواند پیگیری کند. این موارد امکانات جانبی این سیستم بود، امکانات اصلی اش هم بحث افزایش قیمت مسکن، یعنی روندی تعبیه شود که باعث افزایش یا کاهش قیمت مسکن می شد. در حقیقت یک تحلیل تکنیکی داشتیم که مثلا اگر یک سخنرانی در یک جایی برگزار می شد تاثیر این سخنرانی را در روند بازار مسکن به وضوح می توانستیم بیابیم. مثلا در مورد افزایش قیمت وام مسکن در شهرستان های کم جمعیت که مشاوره ای هم داده می شد که به نهادهای درگیر مسکن گوشزد کنند که شما می توانید با این اطلاعات هم صحبت هایتان را کنترل کنید هم دریابید که ساخت وساز در کجاها بیشتر شکل می گیرد یا سرمایه هایتان را باید بیشتر به کدام سو ببرید. به عبارتی کمک به دولت در جهت تصمیم گیری در حوزه مسکن و کنترل افزایش قیمت ناشی از دلال بازی و سفته بازی
نمودار RULL
معیارها و علایق کاربر برای خرید خونه رو میپرسه ذر نهایت یه خونه پیشنهاد داده میشود
(50 <قیمت< 60) And (40 <متراژ< 50) And (آپارتمان)
=>
ü مورد اول
ü مورد دوم
)60 <قیمت< 80) And (40 <متراژ< 50) And (آپارتمان)
=>
ü مورد اول
ü مورد دوم
ü مورد سوم
ü قیمت : 75 میلیون
ü ناحیه : جنوب
ü منطقه : 16
ü آدرس : یاخچی آباد – میدان بهشت
ü متراژ : 40 متر
ü تک خوابه
ü آپارتمان – طبقه سوم
)80 <قیمت< 100) And (40 <متراژ< 50) And (آپارتمان)
=>
ü مورد اول
ü مورد دوم
)100 <قیمت< 150) And (40 <متراژ< 50) And (آپارتمان)
=>
ü مورد اول
ü مورد دوم
)150 <قیمت< 200) And (40 <متراژ< 50) And (آپارتمان)
=>
ü مورد اول
ü مورد دوم
)150 <قیمت< 200) And (10<متراژ<20) And (مغازه)
=>
ü مورد اول
ü مورد دوم
آشنایی با برنامهclips
C Language Integrated Production System
با زبا ن C نوشته شده است
اولین بار در مرکز فضایی ناسا طراحی شده
هدفش ارتباط با سایر سیستم هاست
|
||||
برای مشاهده محیط برنامه بر روی Clips.exe کلیک کنید.
پنجره سفید رنگی که مشاهده میکنید،مکانی است که میتوانید در آن کدهای Clips را وارد کنید.
جهت تست کردن سیستم خبره،مشابه عکس زیر عمل کنید.
بعد از ترسیم درخت به وارد کردن قوانین در محیط کلیپس میپردازیم.
قوانین در فایل moshavereAmlak.txt قرار دارند.
بعد از وارد کردن قوانین در محیط کلیپس،از دستورات و قوانین زیر برای اجرای سیستم خبره استفاده میکنیم.
در زبان های برنامه نویسی مانند C و C++ و C# برای بسته بندی متغییرها از struct یا class استفاده میشود.در مثال زیر تمام متغییرهایی که برای ملک مورد نیاز هستند درMelk struct قرار گرفته اند.
Struct Melk
{
Int gheymat;
Int metrazh;
}
معادل struct در زبان clips دستور deftemplate میباشد.اگر بخواهیم struct بالا را در clips پیاده سازی کنیم به صورت زیر میشود:
(deftemplate Melk
(slot gheymat (type INTEGER))
(slot metrazh (type INTEGER))
)
دقت کنید که قرار دادن پرانتزها الزامی میباشد.
در زبان C و C++ و C# یک Data type به نام enum وجود دارد.برای مثال:
Enum Geneder
{
male,
female
}
در clips برای ایجاد enum به صورت زیر عمل میکنیم:
(slot Geneder (allowed-symbols malefemale))
حالا میتوانیم درباره کد زیر به طور کامل بحث کنیم:
(deftemplate melk
(slot gheymat (type INTEGER))
(slot metrazh (type INTEGER))
(slot no (allowed-symbols aparteman vilae maghaze))
)
این دستور یک قالب با نام melk ایجاد کرده که دارای سه slot(در زبان های برنامه نویسی به آن فیلد یا متغییر میگویند)است،که هر slot دارای نام و نوع داده ای خاص خود میباشد.
همانطور که گفته شد دستور deftemplate مانند دستور struct در C میباشد.struct به خودی خود دارای ارزش نیست و زمانی ارزش پیدا میکند که از آن متغییری تعریف شود.در مثال زیر از struct یک متغییر تعریف شده و این متغییر مقدار دهی شده است.
Melk my_melk;
my_melk.gheymat=100;
my_melk.metrazh=800;
در clips دستور تعریف متغییر از یک template و مقدار دهی ان به شرح زیر است:
(assert (Melk(gheymat 100)(metrazh 800)(no aparteman)))
شاید بپرسید نام متغییر را در کجا مشخص کرده ایم؟
در clips ما نام متغییرها را مشخص نمیکنیم،خود سیستم یک نام برای آنها در نظر میگیرد و نام در نظر گرفته را برای ما نمایش میدهد.البته clips به جای متغییر از اصطلاح fact استفاده میکند.مثلا بعد از وارد کردن دستور assert بالا یک پیام به این صورت نمایش داده میشود:
در واقع clips یک fact(متغییر) ایجاد کرده که نام آن Fact-0 میباشد.
تعریف قوانین در clips:
برای تعریف قوانین به صورت مقابل عمل میکنیم:
(defrule نام قانون
(پارامتر ورودی 1)
(پارامتر ورودی 2)
.
(nپارامتر ورودی )
=>
(دستور اجرایی 1)
(دستور اجرایی 2)
.
.
.
(n دستور اجرایی)
)
حالا به توضیح یکی از قانون های نوشته شده میپردازیم:
(defrule rule
(melk (gheymat ?g) (metrazh ?m) (no aparteman))
(test (<= ?m 50))
(test (> ?m 40))
(test (<= ?g 80))
(test (> ?g 60))
=>
(printout t "morede 1:" crlf)
)
دستور (printout t “ … ”) برای چاپ یک رشته در خروجی مورد استفاده قرار میگیرد.
دستور crlf باعث میشود که به خط بعد برویم.معادل cout<
(melk (gheymat ?g) (metrazh ?m) (no aparteman))
این خط پارامتر ورودی rule میباشد.بیان میکنیم که پارامتر ورودی باید از نوع melk باشد و باید دارای 3 قسمت باشد که gheymat , metrazh , no سه قسمت را تشکیل میدهند.
قبل از توضیح ?g اجازه دهید تا بیان کنیم از یک قانون چگونه استفاده میکنند.برای مثال میخواهیم از قانون بالا استفاده کنیم،یک fact از نوع melk ایجاد میکنیم.
(assert (Melk(gheymat 100)(metrazh 800)(no aparteman)))
سپس دستور (run) را وارد میکنیم.با وارد کردن این دستور 100,800,aparteman برای rule فرستاده میشود و ?g برابر با 100 میشود و به همین ترتیب ?m برابر با 800 میشود.ما نوع ملک را در دستور assert آپارتمان وارد کرده ایم،در rule چک میشود که نوع ملک ارسالی از نوع اپارتمان میباشد یا نه.اگر نباشد،قسمت اجرایی rule که نمایش یک سری داده میباشد انجام نخواهد شد(مثلا اگر دستور به شکل
(assert (Melk(gheymat 100)(metrazh 800)(no maghze)))
باشد،rule اجرا نخواهد شد)
(test (<= ?m 50))
در این دستور چک میکنیم که آیا متغییر ?m از 50 بزرگتر است.شاید بپرسید چرا ننوشتیم ?m>=50 و چرا اینگونه نوشته ایم،باید بگوییم که این قانون نوشتن عبارات محاسباتی در clips است و عبارات محاسباتی و منطقی باید به صورت پیشوندی(در ساختمان داده با آن اشنا شدیم)نوشته شوند.
(test (<= ?m 50))
(test (> ?m 40))
(test (<= ?g 80))
(test (> ?g 60))
Clips 4 شرط بالا را با هم and منطقی میکند و در صورتیکه هر 4 شرط درست بودند قسمت اجرایی اجرا خواهد شد.
برای نمایش منو از یک قانون ساختگی استفاده کرده ایم:
(defrule moshavere-amlak
?f
=>
(retract ?f)
(printout t "gheymat ra be milion tooman vared konid? ")
(bind ?g (read))
(printout t "metrazh ra vared konid? ")
(bind ?m (read))
(printout t "no melk ra vared konid? (aparteman,vilae,maghaze) ")
(bind ?n (read))
(assert (melk (gheymat ?g) (metrazh ?m) (no ?n)))
)
همانطور که قبلا هم گفته شد برای فراخوانی یک قانون باید ابتدا یک یا چند fact از پارامترهای ورودی آن ایجاد کنیم و سپس از دستور(run) استفاده کنیم تا قانون اجرا شود.برای استفاده از قانون بالا به این صورت عمل میکنیم:
(run)
شاید بپرسید ما که برای menu یک template تعریف نکرده ایم؟factهایی که دارای یک قسمت هستند نیازی به استفاده از deftemplate ندارند و میتوانند بدون استفاده از deftemplate تعریف شوند.با اجرای دستور run ، مقدار show برای قانون ارسال میشود،در قانون بررسی میشود که پارامتر دریافتی برای menu با show برابر است یا نه.اگر برابر نبود قانون به کار خود خاتمه میدهد ولی اگر برابر بود قانون به کار خود ادامه میدهد.(مثلا اگر دستور زیر را بنویسیم قانون اجرا نمیشود:
(assert (menu sh))
(
?f
=>
(retract ?f)
با کمک ?f<- میتوان fact ارسال شده برای rule را در متغییر f ریخت.با دستور (retract ?f)،فکتِ f را پاک میکنیم.
کد پایین باعث میشه اگه موردپیدا نشد پیغام بده دوباره تلاش کنید
(defrule MAIN::rule29
(check c)
=>
(printout t " dobare emtehan konid ta mavarede behtari bedast biavarid" crlf)
)
نمونه های از کد ها
(deftemplate MAIN::melk
(slot gheymat (type INTEGER))
(slot metrazh (type INTEGER))
(slot no (allowed-symbols aparteman vilae maghaze)))
(defrule MAIN::rule1
(melk (gheymat ?g) (metrazh ?m) (no aparteman))
(test (<= ?m 50))
(test (> ?m 40))
(test (<= ?g 60))
(test (> ?g 50))
=>
(printout t "morede 1:" crlf)
(printout t "gheymat:55 milion" crlf)
(printout t "nahie:joonoob" crlf)
(printout t "mantaghe:19" crlf)
(printout t "address:shukufe-khiyabane varzesh" crlf)
(printout t "metrazh:40 metr" crlf)
(printout t "tak khabe" crlf)
(printout t "tabaghe chaharom" crlf)
(printout t "- - - - -" crlf)
(printout t "morede 2:" crlf)
(printout t "gheymat:60 milion" crlf)
(printout t "nahie:joonoob" crlf)
(printout t "mantaghe:19" crlf)
(printout t "address:khani abad no-khiyabane miad" crlf)
(printout t "metrazh:45 metr" crlf)
(printout t "tak khabe" crlf)
(printout t "tabaghe sevom" crlf)
(printout t ". . . . . . . . . ." crlf))
(defrule MAIN::rule2
(melk (gheymat ?g) (metrazh ?m) (no aparteman))
(test (<= ?m 50))
(test (> ?m 40))
(test (<= ?g 80))
(test (> ?g 60))
منابع وماخذ
- http://en.wikipedia.org/wiki/CLIPS
رازفا مرن شزومآ " یریبع نسحم ،هلا یلع اضریلع