روشهای رفع ناسازگاری در سیستم های تصمیم همیار

  • مقدمه

رفع ناسازگاری، یک استراتژی، جهت انتخاب ترتیب اجرای قوانین است هنگامی که بیش از یک قانون بتواند اجرا شود. به طور کلی، در سیستم­هایی که رفع ناسازگاری در روند استنتاج آنها صورت می­گیرد، موتور استنتاج یک رویه ­ی سه مرحله ­ایی شناسایی- رفع – عمل را بر روی مجموعه­ی قوانین اعمال می­کند [1]:

  • شناسایی: تشخیص قوانینی که می­توانند اجرا گردند و قراردادن آنها در مجموعه­ ی ناسازگاری.
  • رفع: استفاده از یک استراتژی به منظور انتخاب یک قانون از مجموعه ­ی ناسازگاری.
  • عمل: اجرای قانون منتخب و افزودن نتایج آن به حافظه­ ی کاری[1].

 در استراتژی­های رفع ناسازگاری، لیست اجرا[2]، فهرستی از تمامی قوانینی است که شرایط آنها ارضاء شده ولی هنوز اجرا نشده­ اند. این لیست، همانند یک پشته[3] عمل می­کند و قانونی که در بالای آن قرار دارد، پیش از سایر قوانین موجود در آن اجرا می­گردد. یک استراتژی رفع ناسازگاری، ترتیبی را برای اجرای قوانین موجود در لیست اجرا با اولویت یکسان تعیین می­نماید.

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

  • برخی استراتژی­های ساده برای رفع ناسازگاری

به طور کلی به منظور رفع ناسازگاری در بسیاری از سیستم­ها، از روش­های ساده­ایی استفاده شده که در ادامه در رابطه با هر یک از این استراتژی­ها توضیحات مختصری ارائه می­گردد [1]:

  • استراتژی تصادفی: در این استراتژی، به هر فعال­سازی[4]، یک عدد تصادفی نسبت داده می­شود که به منظور تعیین مکان قرارگیری آن فعال­سازی، در میان فعال­سازی­هایی با اولویت یکسان، بکار برده خواهد شد. در برخی از سیستم­ها، این عدد تصادفی هنگامی که استراتژی تغییر می­یابد نیز نگاه داشته می­شود تا در هنگام انتخاب مجدد این استراتژی ترتیبی مشابه، تولید گردد.

 

  • استراتژی عمقی: در این استراتژی، قوانینی که بتازگی فعال شده­اند، در لیست اجرا، در بالای تمامی قوانین با اولویت یکسان قرار می­گیرند. به عنوان مثال، فرض کنید در یک مجموعه­ی قوانین و حقایق، حقیقت fact-a منجر به فعال­سازی قوانین rule-1 و rule-2 گردد و حقیقت fact-b منجر به فعال­سازی قوانین rule-3 و rule-4 گردد. حال اگر حقیقت fact-a پیش از حقیقت fact-b وارد سیستم گردد، قوانین rule-3 و rule-4 در بالای قوانین rule-1 و rule-2 در لیست اجرا قرار خواهند گرفت. مکان rule-1 نسبت به rule-2 و rule-3 نسبت به rule-4، قراردادی خواهد بود.

  • استراتژی عرضی: در این استراتژی، قوانینی که بتازگی فعال شده­اند، در پایین تمامی قوانین با اولویت یکسان قرار می­گیرند. به عنوان مثال، فرض کنید در یک مجموعه­ی قوانین و حقایق، حقیقت fact-a منجر به فعال­سازی قوانین rule-1 و rule-2 گردد و حقیقت fact-b منجر به فعال­سازی قوانین rule-3 و rule-4 گردد. حال اگر حقیقت fact-a پیش از حقیقت fact-b وارد سیستم گردد، قوانین rule-1 و rule-2 در بالای قوانین rule-3 و rule-4 در لیست اجرا قرار خواهند گرفت. در این روش نیز مکان rule-1 نسبت به rule-2 و rule-3 نسبت به rule-4، قراردادی خواهد بود.

  • استراتژی سادگی[5]: در این استراتژی، در میان قوانین با اولویت یکسان، قوانینی که بتازگی فعال شده­اند، در بالای تمامی قوانین فعال­شده با مشخصه[6]­ی یکسان و یا بیشتر، قرار می­گیرند. مشخصه­ی یک قانون با تعداد مقایسه­هایی که باید در قسمت سمت چپ[7] یک قانون انجام گیرد، تعیین می­شود. هر مقایسه با یک ثابت و یا متغیرهایی که سابقاً مقید شده­اند، یک واحد به مشخصه­ی قانون می­افزاید. همچنین هر فراخوانی تابع که در قسمت سمت چپ یک قانون انجام گیرد، نیز مشخصه­ی قانون را یک واحد افزایش می­دهد. توابع بولی and، or و not، مشخصه­ی یک قانون را تغییر نمی­دهند، اما آرگومان­های آنها سبب تغییر مشخصه می­گردند. فراخوانی توابع در صورتی که در داخل یک فراخوانی تابع صورت گیرند نیز سبب افزایش مشخصه نمی­گردند. به عنوان مثال مشخصه­ی قانونی که در زیر تعریف شده است، 5 می­باشد.

مقایسه با یک ثابت، مقایسه متغیر ورودی x با انقیاد قبلی آن و فراخوانی توابع numberp، < و >، هر یک، یک واحد به مشخصه­ی قانون می­افزاید و فراخوانی توابع and و + تاثیری در مقدار مشخصه نخواهد داشت.

  • استراتژی پیچیدگی[8]: در این استراتژی، در میان قوانین با اولویت یکسان، قوانینی که بتازگی فعال شده­اند، در بالای تمامی قوانین فعال­شده با مشخصه­ی یکسان و یا کمتر، قرار می­گیرند.

  • استراتژی LEX[9]: در این استراتژی در ابتدا، تازگی (تأخر)[10] نهاد الگوهایی[11] که منجر به فعال­سازی قانون شده­اند، به منظور تعیین مکان قرارگیری قانون فعال­شده، بکار برده می­شوند. هر حقیقت و نمونه[12]، ذاتا ً با یک “برچسب زمان” که نشان­دهنده­ی تازگی نسبی آن در مقایسه با هر حقیقت و یا نمونه­ی دیگری در سیستم است، نشانه­گذاری می­گردد. نهاد الگوهای مربوط به فعال­سازی هر قانون به منظور تعیین مکان قرارگیری، به ترتیب نزولی مرتب می­گردند. یک فعال­سازی با نهاد الگوهایی با تازگی بیشتر، پیش از فعال­سازی­هایی با نهاد الگوهایی با تازگی کمتر قرار می­گیرد. برای تعیین ترتیب قرارگیری دو فعال­سازی، برچسب­های زمان مرتب شده­ی دو فعال­سازی، با شروع از دو بزرگترین برچسب زمان، یک به یک مقایسه می­گردند. این مقایسه باید تا هنگامی که برچسب زمان یک فعال­سازی، بزرگتر از برچسب زمان متناظر با آن از فعال­سازی دیگر، باشد ادامه یابد. فعال­سازی با برچسب زمان بزرگتر پیش از سایر فعال­سازی­ها در لیست اجرا قرار می­گیرد. اگر یک فعال­سازی نهاد الگوهای بیشتری نسبت به سایر فعال­سازی­ها داشته باشد و برچسب زمان­های مقایسه شده، همگی مساوی باشند، فعال­سازی با برچسب زمان­های بیشتر پیش از سایر فعال­سازی­ها در لیست اجرا قرار می­گیرد. اگر دو فعال­سازی دارای تازگی دقیقاً مساوی باشند، فعال­سازی با مشخصه­ی بیشتر در بالای فعال­سازی با مشخصه­ی کمتر قرار می­گیرد. برچسب زمان یک عامل شرطی not، کمتر از برچسب زمان یک نهاد الگو می­باشد.

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

لیستی که در زیر آمده، ترتیبی است که استراتژی LEX برای اجرا در نظر می­گیرد.

برطبق این استراتژی، ترتیب اجرای قوانین از بالا به پایین خواهد بود.

  • استراتژی MEA[13]: در این استراتژی در ابتدا، برچسب زمان اولین نهاد الگوی مربوط به اولین الگو، به منظور تعیین مکان قرارگیری قانون فعال­شده، بکار برده می­شود. فعال­سازی­ایی که برچسب زمان اولین الگوی آن بزرگتر از برچسب زمان اولین الگوی سایر فعال­سازی­ها باشد، پیش از سایر فعال­سازی­ها در لیست اجرا قرار می­گیرد. اگر دو فعال­سازی دارای دو برچسب زمان متناظر با اولین الگوی مساوی باشند، از استراتژی LEX برای تعیین مکان قرارگیری فعال­سازی­ها استفاده می­گردد. به عنوان مثال، ترتیبی که این استراتژی برای اجرای شش فعال­سازی مثال قبل در نظر می­گیرد، به صورت زیر (از بالا به پایین) خواهد بود.

[1] Working Memory

[2] Agenda

[3] Stack

[4] Activation

[5] Simplicity strategy

[6]­­ Specificity

 [7]Left Hand Side (LHS)

[8]Complexity strategy

[9] Lexicographic sort

[10] Recency

[11] Pattern entities

[12] Instance

[13] Means-Ends-Analysis

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *