Logické programovacie charakteristiky a príklady

Logické programovacie charakteristiky a príklady

Ten Logické programovanie Je to programovacia paradigma, ktorá používa logické obvody namiesto iba matematických funkcií na kontrolu toho, ako sa uvádzajú fakty a pravidlá.

Namiesto starostlivo štruktúrovaného riadiaceho toku, ktorý diktuje, kedy sa má vykonať a ako vyhodnotiť hovory na funkcie alebo iné pokyny, sú logické pravidlá programu napísané ako logické klauzuly alebo predikáty.

Príklady logického programovania v prologu. Zdroj: Kuldeepsheoran1 - Screenshot, CC BY -SA 3.0, Wikimedia Commons

Tento prístup, ktorý sa často používa v genetickom a evolučnom programovaní, vo všeobecnosti hovorí modelu, aký cieľ sa má dosiahnuť, namiesto toho, ako ho dosiahnuť.

Každé pravidlo obsahuje hlavičku a telo s formalizovanou logikou namiesto spustiteľnej matematickej funkcie. Napríklad „a je to pravda (hlava): ak sú C1, C2 a C3 pravdivé (telo)“. Fakty alebo výsledky sú vyjadrené bez tela, napríklad „a je pravda“.

Avšak s niektorými programovacími jazykmi, ako je prológ. Napríklad „na vyriešenie a pridanie C1, C2 a C3“.

[TOC]

Charakteristiky logického programovania

Logické programovanie sa podstatne líši od ostatných existujúcich programovacích stratégií. Namiesto pokynov pre počítač s programom sú nadviazané vzťahy medzi objektmi. Týmto spôsobom môže počítač zdôvodniť tieto vzťahy, a tak dosiahnuť logické riešenia.

V logickom programe existujú dve hlavné súbory kódu: fakty a pravidlá. Pravidlá sa vzťahujú na fakty s cieľom získať vedomosti o životnom prostredí.

Pravda a logická odpočet

Logické programy je možné dešifrovať prostredníctvom dvoch dôležitých pojmov: pravda a logický odpočet. Pravda prichádza, ak je výpočet v programe pravdivý alebo nie, pod implementáciou symbolov programu. Logická odpočet určuje, či logická doložka je dôsledkom programu.

Môže vám slúžiť: Typy aplikačného softvéru

Tieto pokyny sa budú vždy interpretovať ako logické vety a klauzuly, výsledkom jeho vykonávania je logický dôsledok výpočtov obsahujúcich.

Logika prvého poriadku

Je to odvetvie výrokovej logiky. Zvážte, či sú objekty pravdivé alebo nepravdivé z čiastočného hľadiska sveta, nazývanej doména. Logické programovanie je založené na zovšeobecnení logiky prvého riadku.

Táto logika sa skladá zo syntaxe a sémantiky. Syntax je formálny jazyk používaný na vyjadrenie konceptov. Na druhej strane, sémantika logických vzorcov prvého funkcie označuje, ako určiť skutočnú hodnotu akéhokoľvek vzorca.

Táto logika je založená na abecede a jazyku prvého okruhu, okrem súboru axiómov a pravidiel inferencie.

Klausová forma

Je to podskupina logiky prvého okruhu. Má normalizovanú formu, v ktorej je veta definovaná univerzálnym predponou alebo reťazcom univerzálnych kvantifikátorov a voľnou sadou kvantifikátorov klauzuly.

Pri žiadosti o konzultáciu z programu sa môže zohľadniť telo, ktorej hlavička sa zhoduje. Je to rovnaké ako uplatňovanie inferenčného pravidla v logike.

Ako priechod inferencie sa vyberú dve klauzuly, ktoré majú ako vlastnosť, ktorá obsahuje dilemu X (pozitívny doslovný) a druhá obsahuje dilemu ¬x (negatívny doslovný). Tieto dilemy sú známe ako doplnkové.

Z týchto dvoch počiatočných klauzúl je vytvorená nová rozhodnú klauzulu s použitím všetkých literálov, s výnimkou doplnkových.

Umela inteligencia

Logické programovanie je metodika, ktorá sa používa na hľadanie počítačov na odvodenie, pretože je užitočné reprezentovať vedomosti. Logika sa používa na reprezentáciu vedomostí a záverov na ich zvládnutie.

Môže vám slúžiť: NTICX

Logika použitá na reprezentáciu vedomostí je formulár klauzuly. Používa sa, pretože logika prvého riadku je dobre pochopená a je schopná reprezentovať všetky výpočtové problémy.

Prolog je programovací jazyk, ktorý je založený na nápadoch logického programovania. Myšlienka prologu je, aby sa logika javila ako programovací jazyk.

Príklady logického programovania

Príklad 1

- Fakt: Rubí je mačka.

- Pravidlo: Všetky mačky majú zuby.

- Konzultácia: Rubí má zuby?

- Záver: Áno.

Pravidlo „všetky mačky majú zuby“ sa dá aplikovať na Rubí, pretože existuje skutočnosť, že „Rubí je mačka“. Tento príklad nie je napísaný so žiadnou syntaxou skutočného programovacieho jazyka.

Príklad 2

Tento príklad je možné napísať v Prologu za to, že je jedným z najznámejších logických programovacích jazykov:

- Žena (Alissa).

- muž (Bobby).

- muž (Carlos).

- Žena (Doris).

- Son_ (Doris, Carlos).

- Son_ (Carlos, Bobby).

- Son_ (Doris, Alissa).

- Otca_ (f, p):- muž (f), son_ (p, f).

Tento program je ťažké čítať, pretože prológ sa pozoruhodne líši od iných jazykov. Akákoľvek zložka kódu, ktorá sa podobá „ženskej (Alissa).„Je to skutočnosť.

Pravidlo je „Otca_ (f, p):- Muž (f), son_ (p, f)“. Symbol „:-„ je možné čítať ako „Je to pravda, ak“. Kapitálové písmená znamenajú, že premenné sa dajú použiť na akýkoľvek objekt, takže F môže znamenať Carlosa, Dorisa, Alissa alebo Bobby. Tento kód je možné preložiť ako:

- Alissa je žena.

- Bobby je muž.

- Carlos je muž.

- Doris je žena.

Môže vám slúžiť: výstupné zariadenia: Charakteristiky, aké sú použitie, typy, príklady

- Doris je Carlosova dcéra.

- Carlos je syn Bobbyho.

- Doris je Alissina dcéra.

- „F je otec P“ je pravda, ak je f muž a ak je synom f.

Konzultácia

Predpokladajme, že sa chcete obrátiť na viac informácií. Môžete sa snažiť požiadať, aby ste pochádzali z toho, kto je otec Bobby s: ?- Otec_ (Bobby, x). Systém bude označovať nasledujúcu odpoveď: x = Carlos.

V tomto prípade sa deje vzťah, keď jednou z jeho hodnôt je premenná. To, čo urobil, bolo aplikovať rôzne objekty na tento vzťah, až kým jeden z nich nebol logicky solídny.

Carlosov jediný otec je Bobby a Bobby je muž. To spĺňalo pravidlo.„. Keď sa x rovná „carlos“, logika je solídna.

Ďalšie konzultácie

Ďalšie všeobecnejšie konzultácie je možné uskutočniť spoločnosti Prolog, vďaka čomu systém generuje viac výsledkov:

- ?- Otca_ (otec, dieťa).

- Otec = Bobby

- Dieťa = Carlos

- Otec = Carlos

- Dieťa

Ako bolo možné poznamenať, logické programovanie nevyžaduje informácie, že Alissa alebo Bobby sú ľudia, aby získali vedomosti o nich. V skutočnosti nie je potrebné naznačovať, že existuje koncept nazývaný osoba.

Vo väčšine negagických programovacích jazykov by sa tieto pojmy mali najprv definovať pred písaním programov, ktoré spracúvajú informácie o ľuďoch.

Odkazy

  1. Deep AI (2020). Logické programovanie. Prevzaté z: Deepai.orgán.
  2. Wikiversity (2020). Teória programovacích jazykov/programovania logiky. Prevzaté z: v.Vtáčka.orgán.
  3. Imperial College London (2006). Logické programovanie. Prevzaté z: doc.IC.Ac.Uk.
  4. Jia-huai vy (2020). Úvod do logického programummmm. University of Alberta. Prevzaté z: Eng.Ucy.Ac.Cy.
  5. C2 Wiki (2020). Logické programovanie. Prevzaté z: wiki.C2.com.