eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingpoprawność algorytmuRe: poprawność algorytmu
  • X-Received: by 10.140.83.165 with SMTP id j34mr6003qgd.23.1427806112567; Tue, 31 Mar
    2015 05:48:32 -0700 (PDT)
    X-Received: by 10.140.83.165 with SMTP id j34mr6003qgd.23.1427806112567; Tue, 31 Mar
    2015 05:48:32 -0700 (PDT)
    Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
    .pl!news.nask.org.pl!newsfeed.pionier.net.pl!news.glorb.com!h15no2390949igd.0!n
    ews-out.google.com!f74ni1qge.0!nntp.google.com!q107no855936qgd.1!postnews.googl
    e.com!glegroupsg2000goo.googlegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Tue, 31 Mar 2015 05:48:32 -0700 (PDT)
    In-Reply-To: <b...@g...com>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=178.36.122.220;
    posting-account=xjvq9QoAAAATMPC2X3btlHd_LkaJo_rj
    NNTP-Posting-Host: 178.36.122.220
    References: <4...@g...com>
    <d...@g...com>
    <meti4e$osd$1@srv.chmurka.net>
    <f...@g...com>
    <mevfpd$gpa$1@srv.chmurka.net>
    <e...@g...com>
    <mf1tnf$d48$1@srv.chmurka.net>
    <d...@g...com>
    <e...@g...com>
    <f...@g...com>
    <b...@g...com>
    <4...@g...com>
    <f...@g...com>
    <8...@g...com>
    <b...@g...com>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <c...@g...com>
    Subject: Re: poprawność algorytmu
    From: "M.M." <m...@g...com>
    Injection-Date: Tue, 31 Mar 2015 12:48:32 +0000
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:207719
    [ ukryj nagłówki ]

    On Tuesday, March 31, 2015 at 12:20:29 PM UTC+2, g...@g...com wrote:
    > 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?
    Uprościłem pewien aspekt złożoności do 'rozmiaru' - miałem bardzo
    podobną sytuację w praktyce. Ale ok, nie ciągnijmy.

    > Klienta interesuje, żeby program działał zadowalająco dobrze, a nie to, żeby
    > "w ramach określonego rozmiaru programu nie istniał jakiś lepszy".
    Nie zgodzę się, klient może chcieć aby program działał jak najlepiej
    to możliwe - w ramach jakiś ograniczeń.

    > (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)
    Dlaczego byś nie uwierzył? Program wspomaga decyzje. Od decyzji zależy
    (w jakimś stopniu) generowanie zysków. Co w tym dziwnego, że chcemy
    aby taki program działał jak najlepiej.

    Inny przykład, program do translacji języków naturalnych. Dlaczego
    chciałbyś używać gorszy program niż lepszy?

    Następny problem: gra w szachy. Dlaczego używać słabszego programu niż
    silniejszego? Można mnożyć...

    > Nie widzę też, w jaki sposób testy miałyby tu być pomocne.
    Bierzesz wiele danych wejściowych, porównujesz jakość odpowiedzi i
    oceniasz. A jak na podstawie kodu udowodnić, że jeden program lepiej
    translatuje, albo lepiej gra w szachy, od drugiego?

    >
    > > > 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.
    Wiadomo że jest nieprecyzyjnym. W każdym przypadku co innego
    oznacza najlepszy. W każdym przypadku chodzi o inną jakość algorytmów czy
    heurystyk. Obojętnie o jaką jakość chodzi, to trudno dowieść jej
    formalnie na podstawie kodu.

    > Co to znaczy "najlepsze"? Że przynosi najwięcej
    > pieniędzy? Że ma najwięcej użytkowników? Że najbardziej podoba
    > się klientowi?
    Tak, dobre przykłady.

    > Jeżeli podajesz jawnie złą specyfikację, to potem nie możesz mówić
    > "zakładamy, że specyfikacja jest dobra", bo nie jest.
    Można tak mówić, ponieważ to generalne określenie w każdym przypadku
    się konkretyzuje. Bez względu na to jak się skonkretyzuje, to ciężko
    dokonać takiego dowodu formalnego.



    >
    > > > 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.
    Jeśli odebrałeś moje słowa dosłownie, to mam prośbę. Najpierw uogólnij
    sobie mój 'semafor' na inne mechanizmy synchronizowania, a potem
    przeanalizuj czy się mylę. Potem pogadamy dalej.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

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: