środa, kwietnia 21, 2010

Światełko w tunelu :-)

Jak pisze Webhosting amerykańska komisja federalna powołana do pilnowania rynku inwestycyjnego Securities and Exchange Commission zaproponowała by w celu ułatwienia porównywania różnych ofert na papiery wartościowe na bazie aktywów [cokolwiek to znaczy ;-)] każda z nich zawierała w sobie kod źródłowy programu w Pythonie, który pozwalałby na przeprowadzanie symulacji rentowności danej oferty przy zadanych parametrach takich jak inflacja, czas trwania i podobne.Czyżby to był sygnał? Takie światełko w tunelu, zapowiadające, że programy komputerowe będą się stawały czymś w stylu "języka prawa"? :-)Choć z drugiej strony trudno sobie wyobrazić kod programu dla paragrafu o usiłowaniu morderstwa.... a może nie?Pewnie wyglądałoby to jakoś tak:
def celoweDziałanieSprawcy():    return (wyrażałChęćZabicia) && ((przygotowywałDoprowadzenieDoŚmierci) || (namawiałDoDoprowadzeniaDoŚmierci))def czyWinny():   if (prawdopodobieństwoŚmierciOfiary>10%) && (celoweDziałanieSprawcy()):      return winny   else:      return niewinny
albo podobnie ;-)A rola sądu i biegłych sprowadzałaby się do ustalenia wartości danych wejściowych. Prokurator miałby za zadanie zebrać dowody na to, że poszczególne parametry powinny mieć takie to a takie wartości, obrońca zaś miałby je kwestionować, zaś komitet decyzyjny ustalając w głosowaniach poprawność danego parametru ustalałby jego poziom ufności i uruchamiał program ustalający czy prawo zostało złamane ;-)Chociaż przerzedziłby się nam chyba wtedy zastępy twórców prawa ;-)Takie ogłoszenia by się pojawiały "Sejm Rzeczpospolitej Polskiej poszukuje na stanowisko posła osoby z doświadczeniem w programowaniu prawniczym" ;-)


Podobne postybeta
Trudniej jest lepiej.... czyli AccountManager w Androidzie...
Umiejętność programowania pomaga :-)
Post drugie - bądź na tak ;-)
Go, a łatwość czytania kodu
Złośliwe pytania

4 komentarze:

  1. Programy to raczej kiepski pomysl zeby wyrazac paragrafy. powinno sie raczej stosowac cos w typie rozmytych drzew decyzyjnych opartych o ontologie.

    OdpowiedzUsuń
  2. prawdopodobieństwoŚmierciOfiary>10%

    `najpewniej żyje ale a nuż umarła`, aaa! ;)
    nawiasem, chyba takiego prawa (dobrze zapisanego) nie można by było interpretować na dwojaki sposób. jestem za - byle byłoby obiektowo (a nie: `ustawa rzad987.java w wierszach 800-812 mówi o..`) ;)

    i chyba byłoby to opłacalne zajęcie, takie kodowanie.. ;)

    OdpowiedzUsuń
  3. Witam, po długiej przerwie. Miałem tyle rzeczy na głowie, że musiałem na jakiś czas zapomnieć o wszelakich internetowych dyskusjach. Zaciekawił mnie ten post gdyż myślałem o tym już dawno. Z resztą jak się przekonałem z czasem, myślało też o tym niemało moich znajomych.
    Zgadzam się w 90% z pierwszą wypowiedzią anonima. Niestety, ale opisywanie prawa przez programy w jakimkolwiek języku rzeczywiście nie jest dobrym pomysłem. Trudno się opiekować wiedzą zawarta w ten sposób. System taki musiałaby się opierać praktycznie tylko i wyłącznie na wiedzy eksperckiej, a przetwarzanie jej, w tym odkrywanie nowej wiedzy, byłoby ekstremalnie trudne.
    Można by zastosować więc inne podejście tzn przedstawienie prawa w postaci tablic decyzyjnych. I tutaj od razu nasuwa się pierwsza sprawa. Musielibyśmy operować na zbiorach rozmytych, albo na zbiorach przybliżonych zarówno po stronie przesłanek jak i wniosków. Dlaczego po stronie przesłanek? Sprawa jest tutaj chyba oczywista - przesłanki zazwyczaj zawierają jakiś stopień niepewności i zawsze można je zakwalifikować jako "b.prawdopodob." "prawdopodob.", "możliwe", "nieprawdopodob", "b.nieprawdopodob.".. lub coś w tym rodzaju. Takie rozmyte klasy lub przybliżone zbiory byłyby oczywiście do ustalenia. Dlaczego wnioski? Bo czasami wina jest ewidentna, a czasami sprawa jest tak bardzo niejednoznaczna, że nawet biblijny Salomon mógłby mieć z nią poważne kłopoty. W takich przypadkach ostateczna decyzja powinna zawsze należeć do sędziów, którzy powinny zadecydować czy ważniejsza jest zasada "dura lex sed lex" czy też może "prawa z ludzką twarzą".
    Kolejna sprawa dotyczy sposobu przechowywania wiedzy. Na razie napisałem o tablicach decyzyjnych. Jest to podejście intuicyjne, ale po głębszym zastanowieniu - na pewno nie najlepsze. Przede wszystkim, trzeba się zastanowić czy zapisywanie reguł przez ekspertów tak, jak miało to miejsce do tej pory, wniosłoby na prawdę istotną poprawę w dziedzinę jaką jest tworzenie prawa. Póki co, twórcy prawa zapisują reguły decyzyjne, tylko że za pomocą języka naturalnego, a nie ścisłych reguł logiki rozmytej. Pozbylibyśmy się wielu jednoznaczności, ale prawie każdy informatyk, który miał do czynienia z analizą biznesową wie, że to nie wszystko co można by wycisnąć z informatyzacji tej dziedziny. Dobrze działające systemy biznesowe nie są praktycznie nigdy budowane na wiedzy eksperckiej, ale na obserwacjach. Dlatego usługi z zakresu analizy biznesowej są w dzisiejszych czasach tak pożądane i dlatego Oracle, IBM i Microsoft prześcigają się w narzędziach z tym związanych. Dla mnie sprawą oczywistą było, że jeżeli chcemy używać informatyki do opisywania prawa to nie może się obejść bez analizy biznesowej.

    OdpowiedzUsuń
  4. Potrzeba więc znaleźć taką formę dla naszych informacji, aby łatwo było je przetwarzać w tym pozyskiwać z nich wiedzę, oraz żeby były same w sobie formą wiedzy pozyskaną z danych źródłowych. Nic nie pasuje lepiej jak ontologie. Nie dość, że dają one niewiarygodnie duże możliwości ekspresji oraz manipulowania nimi to są pozyskiwane z tekstu. Innymi słowy, ten sam typ dokumentów czyli np raporty policyjne, mógłby być używany zarówno w procesie tworzenia prawa jak i wydawania werdyktów. Oczywiście, pomiędzy danymi treningowymi, a obserwacjami które będziemy chcieli zaklasyfikować, będzie musiała się znajdować pewna struktura będąca naszym klasyfikatorem. Czy będzie to drzewo decyzyjne, czy może lepiej las decyzyjny czy jeszcze co innego - to jest tutaj akurat najmniej ważne. Można by przeprowadzić eksperymenty też np. z sieciami neuronowymi, albo maszynami wektorów nośnych. To stąd się bierze moje 10% niezgody z anonimem. Drzewo decyzyjne mogłoby się okazać zbyt kosztowne w utrzymaniu, chociaż kto to wie... może rzeczywiście byłoby to najlepsze rozwiązanie - trudno to jednoznacznie określić. Z własnego doświadczenia wiem, że znalezienie odpowiedniej metody + dostrojenie jej to przynajmniej 80% czasu przeznaczonego na cały proces budowania klasyfikatora. 19,5% to obróbka danych. 0,5% to właściwe czas w którym dane algorytmy rzeczywiście działają.
    Myślałem kiedyś, ze znajomym nad partią, która starałaby się wnieść naukę do polityki. Jej program miałby być neutralny światopoglądowo - ani lewicowy, ani prawicowy. Miałaby jeden cel - współpracować z rządem (jaki by nie był) w celu modyfikowania systemu tak, aby w jak największym stopniu czerpał z osiągnięć nauki. W USA coś takiego by nie przeszło przez beton demokratyczno-republikański. W Polsce może jednak miałoby jakieś szanse.. Już była, swoją drogą, w Polsce pewnego czasu próba zaprzęgnięcia nauki do polityki. Był to tzw system pierwiastkowy stworzony przez krakowskich naukowców - prof. matematyki pana Słomczyńskiego oraz prof. fizyki pana Życzkowskiego. Panowie zostali nawet wzięci na negocjacje... niestety, ale nikogo w UE nie obchodziły ich racje i nikt nie chciał ich w ogóle wysłuchać. Co najsmutniejsze, to samo było w Polsce i to tylko dlatego, bo był to system forsowany przez pisowski rząd. Nauka przegrała z animozjami politycznymi.... Mimo to, może kiedy dzisiejsi nastolatkowie dojdą do władzy, to pomysł rządów oraz prawa i w ogóle systemu opartego na nauce, czyli prawdziwej, rzeczywistej technokracji przestałby być tylko domeną S-F. Pozdrawiam:)

    OdpowiedzUsuń