Piotr Kulicki Informatyczny model realizacji celów i jego zastosowanie do argumentacji 1. Wprowadzenie Procesy argumentacyjne są w ostatnich latach przedmiotem intensywnych badań różnych dziedzin nauki. Jednym z ważniejszych ujęć jest podejście logiczne, w ramach którego poszukiwane są ogólne schematy poprawnej argumentacji. Naturalne wydaje się przypuszczenie, że schematy takie powinny obejmować wszystkie te, które odpowiadają prawom logiki. Okazuje się jednak, że relacja wynikania logicznego nie gwarantuje poprawności argumentacji. Ujawnia się to w przypadku argumentów cyrkularnych (błędne koło w argumentacji, uzasadnianie tego samego przez to samo), które w teorii argumentacji uznawane są za błędne, choć odpowiadające im wyrażenie w logice zdań, p p (w kontekście argumentacji można je odczytać np.: p zatem p), jest prawem logiki obecnym powszechnie w formalizacjach systemów logicznych, niezależnie od treściowego czy formalnego wariantu. 1 Nie chcąc rozstrzygać, czy przedstawiona rozbieżność ma charakter paradoksalny spróbujemy w niniejszej pracy przedstawić problem rozumowań cyrkularnych z perspektywy logiki komputerowej 2. Uważamy, że perspektywa taka przyczyni się do lepszego zrozumienia problemu poprzez umieszczenie go w kontekście oceny skuteczności i ewentualnej automatyzacji działania. Zwrócimy uwagę na występowanie podobieństw strukturalnych pomiędzy konstruowaniem poprawnej argumentacji a innymi sytuacjami związanymi z modelowaniem realizacji celów. Twierdzimy, że argumenty cyrkularne uznawane za nieprawomocne w teorii argumentacji można interpretować jako szczególny przypadek działania, które jest niepoprawne ze względu na to, że nie może przybliżyć do realizacji celu. Dodatkowo dopuszczenie takich działań w programach komputerowych prowadzi do wadliwego działania tych programów. 1 Problem omawiała K. Budzyńska w referacie Czy logika formalna opisuje dedukcyjne argumentacje? Poprawność błędnego koła na konferencji Krytyczne myślenie i retoryka, Warszawa 14 marca 2009, materiał wizualny z referatu znajduje się na stronie: http://perseus.ovh.org/pdfy/budzynska_14.3.9.pdf 2 Chodzi tu o Computational Logic w ujęciu R. Kowalskiego, tzn. logikę budowaną na bazie formalizmów używanych w programowaniu w logice (język Prolog). Logika taka może być stosowana zarówno do programowania i rozumowania na temat działania komputerów jak i do modelowania ludzkiego myślenia i racjonalnego zachowania. Obszerny wykład na ten temat znajduje się w książce R. Kowalski, How to be Artificially Intelligent, http://www.doc.ic.ac.uk/~rak/papers/newbook.pdf, 2009 (wersja robocza).
2. Programowanie realizacji celów W ramach deklaratywnego paradygmatu programowania często spotykany jest schemat, w którym za pomocą pojedynczych kroków wykonywanych w ściśle określonych okolicznościach realizowane są założone z góry cele. W klasycznej pracy kładącej fundamenty tego paradygmatu R. Kowalski zwraca uwagę na fakt następujący: Dowolne zadanie może być przedstawione jako zadanie znalezienia drogi w grafie. Dany jest stan początkowy A, stan docelowy Z i operacje przeprowadzające jeden stan w następny; zadanie polega na znalezieniu drogi z A do Z. 3 Taki schemat doczekał się ujęcia w postaci swoistego języka programowania, służącego do modelowania w nim realizacji celów przez komputerowych agentów, pod nazwą GOAL 4. Aby w szczegółach prześledzić mechanizm działania schematu skorzystamy jednak z programu w standardowym Prologu. Przedstawimy zagadnienie na prostym przykładzie przeszukiwania labiryntu zaczerpniętym z podręcznika programowania w tym języku 5. Zadanie polega na znalezieniu drogi do pokoju, w którym znajduje się telefon w domu, którego plan przedstawiony jest na rysunku 1. W tym wypadku stan początkowy to miejsce, z którego agent wyrusza na poszukiwanie telefonu (punkt a przed wejściem do domu), stan docelowy to pokój, w którym telefon się znajduje, a operacją zmiany stanów jest przejście z pokoju do pokoju. d c f e b a g Rysunek 1. Plan domu Agent przechodzi z pokoju do pokoju, o ile pomiędzy pokojami są drzwi do momentu, w którym znajdzie się w docelowym pomieszczeniu. Notuje jednocześnie wszystkie pokoje, w których już się znalazł i nie bierze ich pod uwagę w dalszym 3 R. Kowalski, Logika w rozwiązywaniu zadań, WNT, Warszawa, 1989 str. 82-83 4 K.V. Hindriks, The GOAL Programming Guide, http://mmi.tudelft.nl/~koen/goalguide.pdf 5 W.F. Clocksin, C.S. Mellish, Prolog. Programowanie, Gliwice, 2003, str. 132 i n. Przedstawiamy tu problem z podręcznika w oryginalnej wersji, program go rozwiązujący jest nieco zmieniony.
poszukiwaniu. Wykonując każde przejście agent zapisuje również wykonywane akcje. Po osiągnięciu celu lista wykonanych przejść jest podawana jako właściwa droga. Poniżej zamieszczony jest tekst programu znajdujący drogę do pomieszczenia z telefonem 6. Opis domu z rysunku 1 zawarty jest w następujących klauzulach. drzwi(a,b). drzwi(b,e). drzwi(b,c). drzwi(d,e). drzwi(c,d). drzwi(e,f). drzwi(g,e). telefon(g). Kolejna klauzula zawiera informację, że przez drzwi można przechodzić w obie strony. przejscie(x,y,drzwi(x,y)):-drzwi(x,y);drzwi(y,x). Pozostała część programu zawiera ogólny schemat poszukiwania drogi do celu. Składa się ona z definicji dwóch predykatów: droga i gotowa_droga. Predykat droga jest definiowany rekurencyjnie. Pierwsza klauzula określa kres rekurencji i obejmuje sytuację, w której agent dotarł do celu i przetwarza informacje o przebytej drodze. Druga klauzula odpowiada za kolejne przejścia pomiędzy stanami, z jednoczesnym zapisywaniem informacji o odwiedzonych stanach i wykonanych akcjach. reverse(akcje_od_konca,akcje_od_poczatku). droga(stan,stan,_,akcje_od_konca,akcje_od_poczatku):- droga(stan1,stan2,stany,akcje,akcje_skuteczne):- przejscie(stan1,stan3,akcja), not(member(stan3,stany)), droga(stan3,stan2,[stan3 Stany],[Akcja Akcje],Akcje_skuteczne). 6 Program uruchamiany był przy użyciu interpretera SWI-Prolog w wersji 5.6.61, http://www.swi-prolog.org
Warunek (*) not(member(stan3,stany)) występujący w drugiej z powyższych klauzul ma kluczowe znaczenie dla działania programu. Po pierwsze eliminuje drogi, które nie są minimalne, gdyż zawierają pętle. Użycie takich dróg byłoby nieracjonalne z punktu widzenia ekonomii realizacji celu. Po drugie, w wielu wypadkach, włączając omawiany przykład, jego usunięcie spowodowałoby, że otrzymany program nie udzielałby żadnej odpowiedzi na zapytanie. Agent przechodziłby ciągle przez te same miejsca bez szans na kontynuację poszukiwań z wykorzystaniem innych ścieżek. W praktyce uruchomienie powyższego programu pozbawionego warunku (*) prowadzi do zawieszenia się interpretera Prologu. Predykat gotowa_droga wywołuje predykat droga określając, że na początku poszukiwania agent przebywał w miejscu, z którego rozpoczął poszukiwanie i nie wykonał jeszcze żadnych akcji. gotowa_droga(x,y,d):-droga(x,y,[x],[],d). Po zadaniu zapytania o drogę ze wskazanego miejsca do telefonu otrzymujemy następującą odpowiedź wymieniającą wszystkie minimalne, tzn. nie zawierające pętli, możliwości.?- telefon(cel), gotowa_droga(a,cel,droga). Cel = g, Droga = [drzwi(a, b), drzwi(b, e), drzwi(e, g)] ; Cel = g, Droga = [drzwi(a, b), drzwi(b, c), drzwi(c, d), drzwi(d, e), drzwi(e, g)] ; false. 7 7 Odpowiedź false interpretera oznacza, że nie ma już więcej rozwiązań postawionego problemu.
3. Ujęcie działań argumentacyjnych w ramach modelu realizacji celów Ten sam schemat można zastosować do modelowania argumentacji. Aby to uczynić trzeba określić czym w tym wypadku są stany, pomiędzy którymi dokonuje się przejść, jakie są możliwe przejścia oraz czym jest stan początkowy i stan docelowy. Stan jest tu stanem przekonań podmiotu, któremu przedstawiane są argumenty. Z punktu widzenia rozpatrywanego schematu nie ma znaczenia jak taki stan przekonań jest rozumiany. Może to być zbiór zdań uznawanych przez podmiot, ale może być to konstrukcja bardziej skomplikowana uwzględniająca stopień uznawania tych zdań i ich wzajemne powiązania. Istotne jest natomiast, że stany takie są dobrze określone i przejścia pomiędzy nimi są dyskretne. Przyjmiemy, że przejścia te dokonują się ze względu na przedstawienie podmiotowi jakiegoś argumentu. Stan początkowy jest zastanym stanem przekonań podmiotu, natomiast stan docelowy, to stan przekonań, do którego ma doprowadzić planowana sekwencja argumentów. Przyjrzymy się tej konstrukcji na przykładzie, w którym dla uproszczenia przyjmiemy, że liczba stanów przekonań jest skończona, a przejścia pomiędzy nimi są explicite wymienione. Nie ma jednak istotnych przeszkód, aby w tym samym schemacie rozpatrywać nieskończone zbiory stanów przekonań określane przy pomocy parametrów, a działanie argumentów definiować poprzez ogólne reguły. Dla zapisania działania argumentów na stany przekonań podmiotu użyjemy tego samego predykatu przejscie, z którego korzystał program znajdujący drogę w labiryncie, definiując go tym razem poprzez poniższe klauzule. przejscie(stan_przekonan_1,stan_przekonan_2,argument_1). przejscie(stan_przekonan_1,stan_przekonan_3,argument_2). przejscie(stan_przekonan_2,stan_przekonan_4,argument_3). przejscie(stan_przekonan_3,stan_przekonan_5,argument_4). Możemy teraz zadać pytanie o argumentację, jaka powinna zostać użyta dla przeprowadzenia agenta ze stanu przekonań o nazwie stan_przekonan_1 do stanu - stan_przekonan_5.?- gotowa_droga(stan_przekonan_1,stan_przekonan_5,argumentacja). Argumentacja = [argument_2, argument_4] ; false.
Argumentacja jest tu ciągiem argumentów, które mogą przeprowadzić podmiot ze stanu zastanego do stanu docelowego. Ciąg ten ma charakter minimalny, tzn. nie zawiera niepotrzebnych elementów. W ten sposób powstaje model argumentacji - schemat formalnego jej ujęcia, który może zostać uzupełniony przez podanie bardziej szczegółowej postaci możliwych stanów przekonań i argumentów. Konstrukcja taka przedstawianie programu komputerowego w roli formalnego opisu jakiegoś zjawiska nie jest powszechnie stosowana 8. Nasuwa się więc pytanie o wartość poznawczą tego typu modelu. Wyczerpująca odpowiedź na to pytanie wykracza jednak poza temat niniejszego artykułu. Zaznaczymy jedynie, że budowanie modelu na gruncie logiki komputerowej, w tym przypadku wprost w języku Prolog, ma zaletę taką, że zachowując wszystkie cechy modelu logicznego (na program można patrzeć jako na zbiór zdań w węższym rachunku predykatów stanowiący swoistą miniteorię wycinka rzeczywistości) uzyskujemy jednocześnie możliwość użycia go jako działającego programu i uruchomienia. 4. Cyrkularność argumentacji Przy użyciu określonego powyżej modelu argumentacji przeanalizujemy różne postaci zjawiska cykliczności w argumentacji. Weźmiemy pod uwagę trzy objawy cyrkularności w argumentacji: cyrkularny krok argumentacjny, cyrkularność wewnątrz ścieżki argumentacyjnej oraz globalną cyrkularność procesu argumentacyjnego. (i) Cyrkularny krok argumentacyjny. Przez cyrkularny krok argumentacyjny będziemy rozumieć bezpośrednie zastosowanie jakiegoś zdania do uzasadnienia tego samego zdania, tzn. argumentacje o schemacie: p zatem p (p p) 9. W naszym modelu taki schemat argumentacyjnych możemy zapisać poprzez następującą klauzulę. przejscie(dowolny_stan,dowolny_stan,argument_cyrkularny). 8 Zazwyczaj w tym charakterze przedstawia się teorię aksjomatyczną wyrażoną w standardowym języku logiki lub określenie operacji konsekwencji. 9 Dla zestawienia argumentacji z logicznym schematem wnioskowania p zatem p dokonując pewnego uproszczenia będziemy w miejsce zmiennej p wstawiać stany przekonań z naszego modelu.
Oznacza to, że argument pod nazwą argument_cyrkularny pozwala na przejście z dowolnego stanu przekonań do tego samego stanu. Warunek (*) z definicji predykatu droga sprawia, że argument ten nigdy nie zostanie użyty w tworzeniu argumentacji. (ii) Cyrkularność wewnątrz ścieżki argumentacyjnej. Mamy tu na myśli sytuację, w której w trakcie argumentacji na rzecz jakiegoś stanu przekonań osiąga się ten właśnie stan, tzn. jakieś stwierdzenie jest dla siebie elementem uzasadnienia. Tak jak w punkcie (i) warunek (*) sprawi, że taka argumentacja w naszym modelu nie wystąpi. W tym miejscu przyjrzyjmy się sytuacji, gdy wśród argumentów obecne są jednocześnie takie, które podpadają pod schematy p q i q p. Za przykład mogą tu posłużyć argumenty: p jest prawdziwe zatem p jest fałszywe i p jest fałszywe zatem p jest prawdziwe, z których każdy wydaje się przekonujący. Istnienie ich może rodzić podejrzenie, że pojawi się argumentacja cyrkularna. Ze względu na warunek (*) argumenty takie nie będą jednak użyte jednocześnie w odniesieniu do tego samego zdania wstawionego w miejscu p w jednym ciągu argumentacyjnym. (iii) Globalna cyrkularność procesu argumentacyjnego. Chodzi w tym punkcie o sytuację, w której aktualny stan przekonań podmiotu jest zgodny ze stanem docelowym. Sytuację tę ujmuje następujące zapytanie.?- gotowa_droga(stan_przekonan_1,stan_przekonan_1,argumentacja). Argumentacja = [] ; false. Odpowiedź tę można odczytać jako informację, że nie jest tu potrzebna, a zarazem nie jest możliwa, żadna argumentacja. W ten sposób wymienione powyżej sytuacje cyrkularności w argumentacji okazały się nieobecne w naszym modelu. Spowodowane jest to faktem, że nie służą one realizacji celu, która jest fundamentem zastosowanego modelu. Uznajemy to za wskazanie, iż cyrkularne argumenty i ciągi argumentacyjne są niepoprawne, co jest zgodne z opinią powszechną na gruncie teorii argumetnacji.
5. Podsumowanie W pracy odnieśliśmy się do problemu odmienności schematów prawidłowej argumentacji od schematów praw logiki. W celu zrozumienia specyfiki argumentacji użyliśmy informatycznego modelu realizacji celów. Argumentację uznaliśmy właśnie za działanie zmierzające do osiągnięcia celu. W zastosowanym modelu, działania argumentacyjne mające charakter cyrkularny uznane są za niepoprawne, mimo iż odpowiadające im formuły są prawami logiki.