eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingpoprawność algorytmu
Ilość wypowiedzi w tym wątku: 94

  • 51. Data: 2015-03-30 10:18:41
    Temat: Re: poprawność algorytmu
    Od: Tomasz Kaczanowski <kaczus@dowyciecia_poczta.onet.pl>

    W dniu 2015-03-28 10:54, M.M. pisze:

    >> Zresztą cechy użytkowe nie są czymś, co dowodzi się formalnie
    >> (bo są subiektywne). Formalnie chcemy dowodzić raczej pewnych
    >> inwariantów -- że na przykład w programie wielowątkowym nie dojdzie
    >> do sytuacji dead-locku (klasyczne zastosowane logik temporalnych),
    > Nie słyszałem o logice temporalnej. Może się mylę, ale to się
    > wydaje łatwe. Dla mnie taki dowód sprowadza się do tego, aby
    > wszystkie pary kodu, który może wykonać się równolegle, były
    > opatrzone semaforami w tej samej kolejności w sensie wykonania i
    > w odwrotnej kolejności (też w sensie wykonania).

    Samo opatrzenie semaforami to często za mało by uniknąć dead-locka,
    jeśli sekwencji chronionych jest więcej niż jedna. Dodatkowo dochodzi
    jeszcze dbanie o integralność danych itp rzeczy.


    --
    Kaczus
    http://kaczus.ppa.pl/art/liczbyzmiennoprzecinkowe,19
    .html


  • 52. Data: 2015-03-30 10:25:56
    Temat: Re: poprawność algorytmu
    Od: firr <p...@g...com>

    W dniu piątek, 27 marca 2015 10:57:26 UTC+1 użytkownik g...@g...com napisał:
    > > Myślę że w praktyce w ogóle nie ma możliwości przeprowadzenia takiego
    > > dowodu, nawet dla mniejszych programów. Jak udowodnić, że w dowodzie
    > > nie ma błędu?
    >
    > To jest akurat rzecz podstawowa: wystarczy pokazać, że każdy krok dowodu
    > wynika logicznie z tez dowiedzionych wcześniej, albo przyjętych przez nas
    > aksjomatów, w oparciu o uznawane przez nas reguły wnioskowania
    > (które uważamy za oczywiste).
    >

    nie jestem pewien czy to wystarczy.. czasem moze nawet dosyc czesto moze okazac sie
    ze
    mio ze te wnioskowania byly poprawne to
    ogolnie problem wynika z przeoczenia pewnych
    pobocznych czynników

    innymi slowy mi wyglada na to ze dowody sa
    rowniez czesciowe tak samo jak testy ;/

    > Walidacja dowodu jest zabiegiem bardzo prostym -- z pewnością
    > o wiele prostszym, niż znalezienie dowodu.
    >
    > Oczywiście pewien problem natury epistemicznej wiąże się ze sformułowaniem
    > odpowiedniej listy aksjomatów, które miałyby odzwierciedlać rozważany
    > przez nas problem


  • 53. Data: 2015-03-30 11:15:14
    Temat: Re: poprawność algorytmu
    Od: Maciej Sobczak <s...@g...com>

    W dniu poniedziałek, 30 marca 2015 00:59:51 UTC+2 użytkownik Andrzej Jarzabek
    napisał:

    > BTW, właśnie sprawdziłem i wygląda na to, że nie jest to prawda - poza
    > wszystkimi innymi stratami, Knight dostał dodatkowo 12-milionową karę od
    > SEC:

    Faktycznie. Na szczęście koledzy pomogli:

    http://www.wsj.com/articles/SB1000087239639044424690
    4577572752865497064

    "a group of financial firms injecting $400 million to keep Knight Capital Group Inc.
    afloat"

    Bo jeśli się dobrze zastanowić, to te stracone 400 baniek nie zniknęło w takim sensie
    jak zabity człowiek, czy nawet rozbity samochód, tylko zmieniło miejsce pobytu, bo
    strata Rysia jest zyskiem Krzysia. Dlatego rynek jako całość jest zainteresowany tym,
    żeby to trwało dalej.

    W przypadku fakapów z jeszcze większą ilością zer (niezależnie od tego, jaką
    przyczynę mają takie fakapy, bo nie musi być techniczna), pomocną dłoń wyciągają całe
    rządy albo nawet unie międzypaństwowe, a sponsorami są podatnicy. Przykłady
    praktyczne opisano w prasie.

    I gramy dalej.

    To jest właśnie ten brak presji na szukanie lepszych rozwiązań. Ma być akceptowalna
    jakość za akceptowalną cenę i tak właśnie jest, bo per saldo jest na plus a skoro
    tak, to wdrażanie nowych metod się nie opłaca.
    Co ciekawe, razem to napisaliśmy, tylko innymi słowami.

    Po co ciągniemy ten wątek, skoro od początku się ze sobą zgadzamy?

    Jeśli chodzi o wsadzanie programistów do więzień, to specjalnie napisałem dwa punkty:

    1. osobiste konsekwencje
    2. osobiste korzyści

    żeby pokazać jak one działają *razem*. To jest kij i marchewka i razem działają
    inaczej w różnych branżach. Bo o ile programistów nigdzie się nie wsadza, to wysokie
    premie za zrobienie czegoś szybciej niż sąsiad w pewnych branżach są a w innych ich
    nie ma. I dlatego, te dwa punkty *razem* tworzą różny poziom presji na stosowanie i
    szukanie różnych metod w różnych branżach. Po co to rozstrząsać, skoro to zostało
    opisane przez behawiorystów już dawno temu?

    Porozmawiajmy lepiej o programowaniu.

    --
    Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com


  • 54. Data: 2015-03-30 12:15:26
    Temat: Re: poprawność algorytmu
    Od: g...@g...com

    W dniu poniedziałek, 30 marca 2015 09:49:49 UTC+2 użytkownik slawek napisał:
    > On Fri, 27 Mar 2015 02:57:24 -0700 (PDT), g...@g...com
    > wrote:
    > > To jest akurat rzecz podstawowa: wystarczy pokazać, że każdy krok
    > dow=
    > > odu
    > > wynika logicznie z tez dowiedzionych wcześniej, albo przyjętych
    > przez n=
    > > as
    > > aksjomatów, w oparciu o uznawane przez nas reguły wnioskowania
    > > (które uważamy za oczywiste).
    >
    > Marzyciel z ciebie.

    Z ciekawości zapytam: jakie masz doświadczenie z formalnym dowodzeniem
    twierdzeń?


  • 55. Data: 2015-03-30 12:24:23
    Temat: Re: poprawność algorytmu
    Od: "M.M." <m...@g...com>

    On Monday, March 30, 2015 at 10:18:41 AM UTC+2, Tomasz Kaczanowski wrote:
    > W dniu 2015-03-28 10:54, M.M. pisze:
    >
    > >> Zresztą cechy użytkowe nie są czymś, co dowodzi się formalnie
    > >> (bo są subiektywne). Formalnie chcemy dowodzić raczej pewnych
    > >> inwariantów -- że na przykład w programie wielowątkowym nie dojdzie
    > >> do sytuacji dead-locku (klasyczne zastosowane logik temporalnych),
    > > Nie słyszałem o logice temporalnej. Może się mylę, ale to się
    > > wydaje łatwe. Dla mnie taki dowód sprowadza się do tego, aby
    > > wszystkie pary kodu, który może wykonać się równolegle, były
    > > opatrzone semaforami w tej samej kolejności w sensie wykonania i
    > > w odwrotnej kolejności (też w sensie wykonania).
    >
    > Samo opatrzenie semaforami to często za mało by uniknąć dead-locka,
    > jeśli sekwencji chronionych jest więcej niż jedna.
    No oczywiście. Samo opatrzenie to nawet może spowodować dead-locka.
    Chodzi o kolejność. Mamy cokolwiek, semafory, sekcje chronione, itd
    blokujące dostęp do zasobów, niech się one nazywają A,B,C.

    Jeśli jeden fragment jest opatrzony kolejnością
    A
    B
    kod
    B
    A

    A drugi
    B
    A
    kod
    A
    B

    To może dojść do dead-locka. Gdy kolejność zawsze będzie od A do C, to
    nigdy nie dojdzie do dead-locka. Ja wiem że czasami jest tak:

    Pierwszy wątek
    A
    B
    kod
    B
    A

    Drugi wątek
    B
    kod 1
    A
    kod 2
    A
    B

    Aż prosi się, żeby kod 1 był opatrzony tylko jednym semaforem, ponieważ
    można lepiej wykorzystać zasoby systemu. Niestety to gorzi dead-lockiem.
    Trzeba w jednym z przypadków zmienić kolejność.

    Pozdrawiam


    > Dodatkowo dochodzi
    > jeszcze dbanie o integralność danych itp rzeczy.
    Tutaj zasada też jest prosta. Jeśli na danych pracuję więcej niż jeden
    wątek i jeśli przynajmniej jeden wątek może zmodyfikować dane, to
    powinno być objęte sekcją krytyczną, semaforem, itd. Czasami stosuje
    się rozwiązana lockless, pomimo że wiele wątków pisze pod te same
    adresy pamięci - to już w ogóle masakra :)

    Pozdrawiam

    >
    >
    > --
    > Kaczus
    > http://kaczus.ppa.pl/art/liczbyzmiennoprzecinkowe,19
    .html


  • 56. Data: 2015-03-30 20:08:38
    Temat: Re: poprawność algorytmu
    Od: Andrzej Jarzabek <a...@g...com>

    On 30/03/2015 11:15, Maciej Sobczak wrote:
    > W dniu poniedziałek, 30 marca 2015 00:59:51 UTC+2 użytkownik Andrzej
    > Jarzabek napisał:
    >
    >> BTW, właśnie sprawdziłem i wygląda na to, że nie jest to prawda -
    >> poza wszystkimi innymi stratami, Knight dostał dodatkowo
    >> 12-milionową karę od SEC:
    >
    > Faktycznie. Na szczęście koledzy pomogli:
    >
    > http://www.wsj.com/articles/SB1000087239639044424690
    4577572752865497064
    >
    > "a group of financial firms injecting $400 million to keep Knight
    > Capital Group Inc. afloat"

    Przecież nie charytatywnie, tylko żeby przejąć firmę. Myślisz, że gdyby
    taka Toyota stanęła na skraju bankructwa z powodu serii wyjątkowo
    katastrofalnych usterek, to by nikt się nie pokusił o kupno akcji za bezcen?

    > Bo jeśli się dobrze zastanowić, to te stracone 400 baniek nie
    > zniknęło w takim sensie jak zabity człowiek, czy nawet rozbity
    > samochód, tylko zmieniło miejsce pobytu, bo strata Rysia jest zyskiem
    > Krzysia. Dlatego rynek jako całość jest zainteresowany tym, żeby to
    > trwało dalej.

    Fantazjujesz. Przed chwilą jak pisałem o tym, że te firmy zajmują się
    zarabianiem pieniędzy, to ofukałeś mnie, że piszę banały, a teraz jakbyś
    tego nie rozumiał. Zarabianie pieniędzy polega na tym, że działania
    firmy nakierowane są na zyski własne, a nie innych graczy. Inwestorzy są
    zainteresowani tym, żeby zyskiwać na firmie, w którą zainwestowali, a
    nie żeby zyskiwał jakiś Krzyś.

    A na rozbijających się samochodach Toyoty zyskuje Ford czy inny Fiat.

    > W przypadku fakapów z jeszcze większą ilością zer (niezależnie od
    > tego, jaką przyczynę mają takie fakapy, bo nie musi być techniczna),
    > pomocną dłoń wyciągają całe rządy albo nawet unie międzypaństwowe, a
    > sponsorami są podatnicy. Przykłady praktyczne opisano w prasie.

    No jasne, bo nigdy się nie zdarzyło, żeby państwo pomagało przemysłowi
    motoryzacyjnemu. Albo np. kosmicznemu.

    > To jest właśnie ten brak presji na szukanie lepszych rozwiązań. Ma
    > być akceptowalna jakość za akceptowalną cenę i tak właśnie jest, bo
    > per saldo jest na plus a skoro tak, to wdrażanie nowych metod się nie
    > opłaca. Co ciekawe, razem to napisaliśmy, tylko innymi słowami.

    Nie zgodzę się, jak najbardziej jest presja na szukanie lepszych
    rozwiązań i wdrażanie nowych metod. Tylko że nie ma za bardzo przesłanek
    na to, że metody formalne są lepszym rozwiązaniem.


    > Po co ciągniemy ten wątek, skoro od początku się ze sobą zgadzamy?
    >
    > Jeśli chodzi o wsadzanie programistów do więzień, to specjalnie
    > napisałem dwa punkty:
    >
    > 1. osobiste konsekwencje 2. osobiste korzyści
    >
    > żeby pokazać jak one działają *razem*. To jest kij i marchewka i
    > razem działają inaczej w różnych branżach. Bo o ile programistów
    > nigdzie się nie wsadza, to wysokie premie za zrobienie czegoś
    > szybciej niż sąsiad w pewnych branżach są a w innych ich nie ma. I
    > dlatego, te dwa punkty *razem* tworzą różny poziom presji na
    > stosowanie i szukanie różnych metod w różnych branżach. Po co to
    > rozstrząsać, skoro to zostało opisane przez behawiorystów już dawno
    > temu?

    Ale te presje też wynikają z tego, że na opóżnieniach traci się
    pieniądze. Jeśli wysiłek włożony w opracowanie i zastosowanie metod
    formalnych kosztuje pół miliona, ale generuje opóźnienie powodujące, że
    zamiast pięciu milionów nasza poprawna aplikacja zarobi półtora, to
    znaczy, że koszt zastosowania metod formalnych wynosi cztery miliony, a
    nie pół miliona. I o to również mi chodziło kiedy wyrażałem
    przypuszczenie, że metody formalne są zbyt kosztowne, żeby być opłacalnymi.

    Poza tym w instytucjach finansowych oprócz typowych aplikacji front
    office, o których dyskutowaliśmy, jest wiele innych rodzajów
    oprogramowania, gdzie nie ma wcale takiej motywacji, a co za tym idzie
    presji na szybkie wdrażanie zmian. Jeśli już, to moje doświadczenie
    wskazuje raczej na to, że w wielu przypadkach zmiany w systemach IT w
    bankach potrafią trwać absurdalnie długo.

    > Porozmawiajmy lepiej o programowaniu.

    No to ja przecież od początku chciałem się dowiedzieć, jak to mogłoby
    wyglądać od strony praktycznej, a ty mnie zbyłeś mnie opowieścią o
    tablicach i flamastrach.


  • 57. Data: 2015-03-31 02:07:41
    Temat: Re: poprawność algorytmu
    Od: Roman W <b...@g...pl>

    On Mon, 30 Mar 2015 02:15:14 -0700 (PDT), Maciej Sobczak
    <s...@g...com> wrote:
    > Faktycznie. Na szczęście koledzy pomogli:
    >
    http://www.wsj.com/articles/SB1000087239639044424690
    4577572752865497064

    > "a group of financial firms injecting $400 million to keep Knight
    Capital G=
    > roup Inc. afloat"

    Skończyło się na tym, ze Knighta przejęła inna firma. Ta "pomoc" nie
    była bezinteresowna.

    RW


  • 58. Data: 2015-03-31 09:05:11
    Temat: Re: poprawno?? algorytmu
    Od: slawek <f...@f...com>

    On Sat, 28 Mar 2015 13:51:39 -0500, A.L. <a...@a...com> wrote:
    > Nareszcie glos rozsadku. Smaic mi sie chce ze "specjalistow"
    > wypowiadajacych sie w tym watku.

    Masz pogubione PL-literki i przedstawioną kolejność liter. Zakładam
    jednocześnie że jesteś mistrzem w dowodzenie formalnej poprawności
    itd. itp. Jak w takim razie oceniłbyś prawdopodobieństwo zaistnienia
    faktu że pisząc program napiszesz np. q zamiast p? I w jaki sposób
    formalny matematyczne poprawny dowód może te prawdopodobieństwo
    zmienić?

    Najdroższy tego rodzaju błąd kosztował, jeżeli dobrze pamiętam, grubo
    ponad miliard dolarów.

    Zrozum mnie dobrze: nie utrzymuję że dowody poprawności to coś
    nieprzydatnego. Raczej szacuję, iż na poziomie jaki reprezentuje
    większość dyskutantów na tym forum (bardziej "baza szlauchów i
    kaloszy" niż awionika), nie mających takiego doświadczenia jak ty,
    ważniejsze jest stosowanie elementarnych dobrych praktyk, jak np.
    nieobarczanie tylko jednego programisty odpowiedzialnością za
    szczególne ważny kod.


  • 59. Data: 2015-03-31 09:56:37
    Temat: Re: poprawność algorytmu
    Od: Maciej Sobczak <s...@g...com>

    W dniu poniedziałek, 30 marca 2015 20:08:40 UTC+2 użytkownik Andrzej Jarzabek
    napisał:

    > Przecież nie charytatywnie, tylko żeby przejąć firmę.

    Nic nie szkodzi. Ja w swoim portfelu inwestycyjnym mam podobną ilość udziałów różnych
    firm inwestycyjnych właśnie po to, żeby strata Rysia i zysk Krzysia nie były
    problemem, tylko co najwyżej zmianą proporcji. Zdaje się, że taka dywersyfikacja
    inwestycyjna jest powszechną praktyką. Ot i cały dramat.

    > Myślisz, że gdyby
    > taka Toyota

    Zginęli ludzie. Nie rozmawiamy o kupowaniu akcji, tylko o tworzeniu poprawnego
    oprogramowania.

    > A na rozbijających się samochodach Toyoty zyskuje Ford

    Nie. Ford robi w gacie, bo przecież do tej pory używał dokładnie takich samych metod,
    więc przypuszczalnie mają takie same problemy. Dlatego:

    https://www.linkedin.com/jobs2/view/6966713

    "Ford has identified the need to increase its core competency in the area of
    development and verification of real-time embedded software controls using Formal
    Methods."

    *Has identified*. Zastanowili się nad stanem obecnym i zauważyli potrzebę. Tzn. *oni
    również* zauważyli taką potrzebę.

    Dokładnie o tym piszę od samego początku. O rosnącym zainteresowaniu.

    Tzn. w pewnych branżach zainteresowanie rośnie a w innych nie rośnie.

    > Nie zgodzę się, jak najbardziej jest presja na szukanie lepszych
    > rozwiązań i wdrażanie nowych metod. Tylko że nie ma za bardzo przesłanek
    > na to, że metody formalne są lepszym rozwiązaniem.

    Najwyraźniej nie ma takiej potrzeby, albo się to nie kalkuluje. Od początku się w tym
    temacie zgadzamy.

    > moje doświadczenie
    > wskazuje raczej na to, że w wielu przypadkach zmiany w systemach IT w
    > bankach potrafią trwać absurdalnie długo.

    Co do tego też się zgadzamy.

    > > Porozmawiajmy lepiej o programowaniu.
    >
    > No to ja przecież od początku chciałem się dowiedzieć, jak to mogłoby
    > wyglądać od strony praktycznej, a ty mnie zbyłeś mnie opowieścią o
    > tablicach i flamastrach.

    Nie. Napisałem wyraźnie, że zrobiłbym to dokładnie tak, jak opisałeś. Bo ja też umiem
    liczyć.

    Czy jest jeszcze jakiś punkt, co do którego się nie zgadzamy, czy można ten wątek
    powoli domykać?

    --
    Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com


  • 60. Data: 2015-03-31 12:20:24
    Temat: Re: poprawność algorytmu
    Od: g...@g...com

    W dniu sobota, 28 marca 2015 10:54:16 UTC+1 użytkownik M.M. napisał:
    > > >
    > > > Mój (hipotetyczny) klient zamawia najlepszy program do gry w
    > > > szachy o łącznym rozmiarze kodu i danych nie większym niż 1MB. Napisałem
    > > > taki program. Jak mam przeprowadzić dowód, że nie istnieje w
    > > > ramach tego rozmiaru lepszy program?
    > >
    > > To akurat nie jest problem metody dowodowej,
    > Właśnie, tego nie da się udowodnić, a jest to też ważny aspekt
    > programu. A w testach tak się robi, porównuje się kilka
    > różnych algorytmów dla różnych danych.

    To, że "nie istnieje w ramach określonego rozmiaru >>lepszy<< program"
    jest "ważnym aspektem programu"? Dla kogo jest to ważne? Klienta
    interesuje, żeby program działał zadowalająco dobrze, a nie to, żeby
    "w ramach określonego rozmiaru programu nie istniał jakiś lepszy".
    (W każdym razie ja nie spotkałem nigdy klienta o tak osobliwych
    zainteresowaniach. Ale nawet gdybym spotkał, pewnie po prostu nie
    uwierzyłbym własnym uszom)
    Nie widzę też, w jaki sposób testy miałyby tu być pomocne.

    > > tylko nieprecyzyjnej
    > > specyfikacji. Co to znaczy,że "w ramach określonego rozmiaru program
    > > jest lepszy od innego programu"?
    > Zakładamy że specyfikacja jest dobra. To jest kwestia jakości
    > użytych algorytmów/heurystyk.

    To, co piszesz, nic nie wyjaśnia.
    Powiedzenie, że coś jest najlepsze, jest po prostu powiedzeniem
    nieprecyzyjnym. Co to znaczy "najlepsze"? Że przynosi najwięcej
    pieniędzy? Że ma najwięcej użytkowników? Że najbardziej podoba
    się klientowi?
    Jeżeli podajesz jawnie złą specyfikację, to potem nie możesz mówić
    "zakładamy, że specyfikacja jest dobra", bo nie jest.

    > > Zresztą cechy użytkowe nie są czymś, co dowodzi się formalnie
    > > (bo są subiektywne). Formalnie chcemy dowodzić raczej pewnych
    > > inwariantów -- że na przykład w programie wielowątkowym nie dojdzie
    > > do sytuacji dead-locku (klasyczne zastosowane logik temporalnych),
    > Nie słyszałem o logice temporalnej. Może się mylę, ale to się
    > wydaje łatwe. Dla mnie taki dowód sprowadza się do tego, aby
    > wszystkie pary kodu, który może wykonać się równolegle, były
    > opatrzone semaforami w tej samej kolejności w sensie wykonania i
    > w odwrotnej kolejności (też w sensie wykonania).

    Mylisz się z pewnością, choćby dlatego, że semafor nie jest jedynym
    mechanizmem synchronizującym używanym w programach wielowątkowych.

strony : 1 ... 5 . [ 6 ] . 7 ... 10


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: