KLIPY

CLIPS , (z angličtiny  C Language Integrated Production System ) - softwarové prostředí pro vývoj expertních systémů . Syntaxe a název navrhl Charles Forgy v OPS ( oficiální produkční systém ). První verze CLIPS byly vyvíjeny od roku 1984 v Johnsonově vesmírném středisku NASA jako alternativa k tehdy existujícímu systému ART*Inference , dokud nebylo financování na počátku 90. let pozastaveno a NASA byla nucena nakupovat komerční produkty.

CLIPS je produkční systém . Implementace výstupu používá algoritmus Rete .

Hlavní myšlenkou je reprezentovat znalosti v následující formě:

Pravidlo 1: LI (jsou splněny podmínky 1) PAK (proveďte kroky 1) Pravidlo 2: LI (jsou splněny podmínky 2) PAK (proveďte kroky 2) ...

Taková reprezentace je blízká lidskému myšlení a liší se od programů napsaných v tradičních algoritmických jazycích, kde jsou akce objednány a prováděny přesně podle algoritmu.

CLIPS je pro svou rychlost, efektivitu a bezplatnost jedním z nejpoužívanějších nástrojů pro vývoj expertních systémů. Vzhledem k tomu, že je ve veřejné doméně , je stále aktualizován a udržován jeho původním autorem Gary Rileym.

CLIPS obsahuje kompletní objektově orientovaný jazyk COOL pro psaní expertních systémů. Přestože je napsán v C , jeho rozhraní je mnohem blíže programovacímu jazyku LISP . Rozšíření lze vytvářet v C a CLIPS lze integrovat do programů C [1] .

CLIPS je navržen pro použití jako jazyk dopředného řetězení a ve své původní verzi nepodporuje zpětné řetězení.

Stejně jako ostatní expertní systémy se i CLIPS zabývá pravidly a fakty.

Fakta

Informace, na jejímž základě expertní systém vyvozuje logický závěr, se nazývá fakta . V CLIPS jsou 2 typy faktů: uspořádané a šablonované . Fakta šablony mají šablonu danou konstrukcí deftemplate . Seřazené nemají explicitní konstrukci deftemplate, ale jedna je implikovaná. Šablona se podobá struktuře v C nebo zápisu v Pascalu, pole se nazývají sloty a jsou deklarovány pomocí konstrukce slotu . Například následující šablona deklaruje šablonu s názvem auta s poli: model , barva a číslo .

(předložit auta (slotový model) (barva slotu) (číslo slotu) )

Fakta jsou uložena v pracovní paměti. Nová fakta jsou vtlačena do pracovní paměti pomocí příkazu Claim . Například následující příkaz

(tvrdit (auta))

přidá objednaná faktická auta do pracovní paměti .

Následující příkaz umístí šablonový fakt se třemi atributy.

(tvrdit (auta (model "Audi") (Černá barva") (číslo "WY 2576") ) )

CLIPS neumožňuje vkládat do pracovní paměti fakta se stejnými hodnotami slotu, i když to lze v případě potřeby povolit nastavením.

Pravidla

Znalost domény je v CLIPS reprezentována jako pravidla , která mají následující strukturu:

(podmínky) {synonyma: předchůdci v logice, levá strana - LHS z hlediska CLIPS} => (akce) {synonyma: důsledky v logice, pravá strana - RHS z hlediska CLIPS}

Levá strana pravidla je podmínkou pro jeho spuštění a pravá strana akce, které je nutné provést, pokud jsou podmínky splněny. Znak => je speciální znak, který odděluje LHS a RHS.

Pravidla jsou deklarována příkazem defrule . Příklad pravidla:

(defrule search-black-audi (auta (model "Audi") (barva černá)) => (výtisk t "Je tu černé Audi!" crlf) )

Toto pravidlo se aktivuje, když se v pracovní paměti objeví fakt s atributy (model "Audi") a (barva Černá).

Aktivace pravidla neznamená jeho provedení. Aktivace pravidla je umístění pravidla do pracovního seznamu pravidel nebo agendy v CLIPSu.

Aby se aktivovaná pravidla provedla, musíte provést příkaz (spustit).

Inference Machine

Proces vkládání pravidel do pracovního seznamu a jejich provádění je řízeno inferenčním jádrem (ILM). MLV reaguje na určité události:

událost Akce
UVÁDĚNÍ FAKTA DO PRACOVNÍ PAMĚTI 1) Mapování faktů na pravidla ze znalostní báze
2) Mapování faktů na pravidla z pracovního seznamu pravidel
VYMAZEJTE FAKTA Z PRACOVNÍ PAMĚTI 1) Mapování faktů na pravidla ze znalostní báze
2) Mapování faktů na pravidla z pracovního seznamu pravidel
POROVNÁNÍ NALEZENÁ PRAVIDLA ODPOVÍDAJÍCÍ FAKTŮM Z PRACOVNÍ PAMĚTI Zařazení nalezených pravidel do pracovního seznamu pravidel
DO PRACOVNÍHO SEZNAMU PRAVIDEL PŘIDÁNA NOVÁ PRAVIDLA pracovní seznam pravidel je řazen podle zvolené strategie řešení konfliktů
MIMO AKTUÁLNÍ PRAVIDLA ZJIŠTĚNÁ PŘI POROVNÁNÍ SKUTEČNOSTÍ S PRACOVNÍM SEZNAMEM PRAVIDEL Nerelevantní pravidla (podmínky neodpovídají skutečnosti) jsou z pracovního listu odstraněny
PRŮBĚHOVÝ PŘÍKAZ (RUN) Provedou se akce (pravá strana) prvního pravidla v pracovním seznamu.
PRACOVNÍ SEZNAM PRAVIDEL SE VYPRÁZDNIL Zastaví provádění pravidel z pracovního seznamu

Strategie řešení konfliktů

Člověk si nemůže vždy stanovit úplné podmínky, které by vyhovovaly realitě. Existuje legenda, podle níž Diogenés ze Sinopu ​​v reakci na Platónovu definici „Člověk je zvíře se dvěma nohami, bez peří“, oškubal kuře a přinesl ho do školy a prohlásil: „Tady je platónský člověk! K čemuž byl Platón nucen přidat svou definici „... a se širokými nehty“. Když se ve znalostní bázi objeví pravidla, která splňují fakta, ale provádějí opačné akce, dojde ke konfliktu pravidel. Existují například dvě pravidla:
1. (Pokud osoba strčila do jiného člověka - potrestat osobu za chuligánství)
2. (Pokud osoba strčila do jiné osoby, kterou řídil náklaďák - odměňte osobu za záchranu života)
Tato dvě pravidla budou v rozporu. První pravidlo je obecnější a aktivuje se vždy, když je aktivováno druhé. Ale nejdříve musí být provedeno druhé pravidlo. CLIPS má několik strategií pro řešení takových konfliktů. Ale i když není možné zvolit vhodnou strategii pro všechny případy, můžete určit priority pro pravidla. Pravidla s vyšší prioritou budou provedena jako první.

Toto pravidlo může být použitelné kvůli různým skutečnostem. Příslušné pravidlo je pak povoleno ( tvrdit ). Fakta a pravidla jsou vytvářena předběžným prohlášením, jak ukazuje příklad:

(odstraňování závad (problém s autem (název klíče_zapalování) (stav zapnutý)) (problém s autem (název motoru) (stav wont_start)) (problém s autem (název světlometů) (stav práce)) ) (pravidlo odchylky 1 (problém s autem (název klíče_zapalování) (stav zapnutý)) (problém s autem (název motoru) (stav wont_start)) => (tvrzení (problém s autem (název startéru) (chybný stav)) )

Verze CLIPS

Potomci CLIPS jsou následující jazyky a prostředí:

Stávající verze CLIPS pro Windows (clipswin.exe) nepodporují azbuku (konzolová verze CLIPS clipsdos.exe podporuje pouze azbuku ve formátu UTF-8). Právě nedostatek plné podpory azbuky je hlavním důvodem špatné distribuce CLIPS v Rusku. Otevřenost zdrojových kódů CLIPS zároveň umožňuje tuto situaci napravit. Zejména při kompilaci ze zdroje je možné je opravit přidáním podpory pro koi8-r nebo ansi1251 [4] .

Nejnovější verze je CLIPS 6.3, vydaná 17. března 2015.

Viz také

Poznámky

  1. V systému Windows mohou programy napsané v jiných jazycích používat dynamicky propojovanou knihovnu CLIPSWin32.DLL.
  2. Siebel Essentials: Bye bye Haley, ahoj OPA! Archivováno z originálu 12. května 2014.
  3. Chyba překladu  (nedostupný odkaz)
  4. Pokyny pro připojení podpory pro ruské kódování . Získáno 17. srpna 2010. Archivováno z originálu 18. dubna 2011.

Odkazy

Literatura