eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingPodpis cyfrowy większej ilości podmiotówRe: Podpis cyfrowy większej ilości podmiotów
  • X-Received: by 10.49.108.229 with SMTP id hn5mr529135qeb.14.1366184887497; Wed, 17
    Apr 2013 00:48:07 -0700 (PDT)
    X-Received: by 10.49.108.229 with SMTP id hn5mr529135qeb.14.1366184887497; Wed, 17
    Apr 2013 00:48:07 -0700 (PDT)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!
    news-out.readnews.com!news-xxxfer.readnews.com!209.85.216.88.MISMATCH!ca1no1490
    41qab.0!news-out.google.com!ef9ni24qab.0!nntp.google.com!ca1no149035qab.0!postn
    ews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Wed, 17 Apr 2013 00:48:07 -0700 (PDT)
    In-Reply-To: <kkkjpe$b54$1@news.task.gda.pl>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=213.195.164.27;
    posting-account=xjvq9QoAAAATMPC2X3btlHd_LkaJo_rj
    NNTP-Posting-Host: 213.195.164.27
    References: <kkdqot$5rl$1@node2.news.atman.pl> <kkdtr5$9n9$1@node1.news.atman.pl>
    <2...@g...com>
    <kkec03$n4h$1@node2.news.atman.pl>
    <a...@g...com>
    <kkfd89$o9b$1@news.task.gda.pl>
    <0...@g...com>
    <kkh42k$81t$1@news.task.gda.pl>
    <b...@g...com>
    <kkhr56$a62$1@news.task.gda.pl>
    <3...@g...com>
    <kkkjpe$b54$1@news.task.gda.pl>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <8...@g...com>
    Subject: Re: Podpis cyfrowy większej ilości podmiotów
    From: "M.M." <m...@g...com>
    Injection-Date: Wed, 17 Apr 2013 07:48:07 +0000
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:202610
    [ ukryj nagłówki ]

    On Wednesday, April 17, 2013 12:36:30 AM UTC+2, Edek Pienkowski wrote:
    > Jedyną metodą sprawdzenia byłoby poświęcenie mnóstwa czasu programom
    > szachowym, przeze mnie oczywiście. Nie planuję. Mówię to dlatego,
    > że strasznie się przyczepiłeś do tych szachów
    Przyczepiłem się bo jest to działka w której dużo czasu poświęciłem na
    poprawę implementacji i mini-algorytmów, ale także jest to taka działka, w
    której mogłem się przyjrzeć jak to robiło wielu innych programistów - po
    prostu dla tej działki mam dane.


    > i na tej podstawie generalizujesz na optymalizację każdego kodu.
    Wiem że taka generalizacja ma wady, ale nie mam danych z innych
    dziedzin, nie mogę zrobić nic lepszego niż generalizowanie. Pytanie czy
    te wady są istotne? Szachy to inny program niż np. symulowanie białek. Ale
    czy w procesie optymalizowania kodu, szukania mikro-algorytmów,
    kombinowania z alternatywnymi strukturami danych, programiści w innych
    dziedzinach nie przebyli podobnej drogi? - To nie jest pytanie
    retoryczne, mam nadzieję że ktoś coś napisze.


    > A tak nie jest,
    Właśnie nie wiem czy tak nie jest, może w dużym stopniu tak jest?


    > i to nawet po odrzuceniu "przekładania dokumentów z kupki na kupkę"
    > czy "relacyjnego mapowania rzeczywistości na projektowanie obiektowe"
    > (czyli mamy dokumenty A, B i C i dzielimy na kupki A+B i C plus
    > dodatkowe ze stemplem i radzimy sobie z wykładniczą eksplozją kombinacji
    > myśląc wtedy w przerwie pomiędzy kodowaniem kolejnych kupek).
    Hmmmm



    > Ja na przykład aktualnie pracuję nad kodem analizującym dane (np. grafy)
    > i jedyną opcją jest optymalizowanie w obrębie Javy - np. kolekcje double
    > a nie Double, rozmieszczenie danych, itd. - i ewentualnie C++. A jest tak
    > dlatego, że nikt nie ma zamiaru pisać osobno kodu dla Win32, Win64,
    > SPARC, jakieś Power i potencjalnie innych. Już C++ wymaga odpowiedniego
    > wysiłku, żeby na wszystkim utrzymywać działający build.
    Czyli typowa sytuacja której nikt nie neguje, zwykle nie opłaca się
    optymalizować, zwłaszcza gdy chodzi o optymalizowanie implementacji.


    > Powiedz mi co w takim środowisku oznaczać miałoby określenie "optymalne".
    Ja nie wiem, pisałem post wcześniej, że nikt w ogóle nie wie jaka
    implementacja jest optymalna :) Ale... znaczenie tego słowa jest dość
    proste - najszybszy kod danego zadania na danym zbiorze heterogenicznych
    maszyn, czyli na każdą maszynę osobny kod.


    > Wiesz, kluski z serem też da się spaprać a nie są szczytem sztuki
    > kulinarnej.
    Może mamy różny pogląd na to co jest implementacją rozsądną. Ty
    nazywasz rozsądną taką, którą ja nazywam już lekko podrasowaną.


    > Znajdź mi partię z trzema białymi wieżami na szachownicy.
    Każda partia w której gracz dojechał pionkiem do linii promocji i wybrał
    wieżę, często dla kaprysu tak gracze robią gdy partia jest na 100% wygrana.
    Mało tego, czasami dla kaprysu programiści coś takiego implementują w
    programach szachowy. Program zamienia pionka na laufra i daje w dwóch
    ruchach mata. Widziałem wiele takich gier i są one zgodne z regulaminem.


    > To że w tej dziedzinie wiedza się akumuluje nie jest niczym nadzwyczajnym.
    > To że przy okazji akumulują się pośledniejsze pomysły też nie. Jak sam
    > zauważyłeś pośledniejsze z czasem okazują się czasami lepsze, bo
    > optymalizacja nie jest minimalizacją po gradiencie (niestety).
    Właśnie. Można na osi Y przyjąć skalę od zera do jeden oznaczającą postęp.
    Na osi X można dać skalę czasu, albo skalę ilości włożonej pracy. Rzadko
    zaczynamy od zera, zwykle coś wiadomo w danej dziedzinie. Więc nasz wykres
    postępu startuje od... powiedzmy 0.3. Potem dużo badaczy-mrówek
    wkłada w zadanie dużo pracy i osiągają minimalny postęp, zwiększa się on
    powiedzmy do 0.33. Potem ktoś odkrywa coś ważnego, mamy przełom, postęp
    pionowo skacze do 0.45. Znowu pojawia się mrówcza praca wielu badaczy i
    dochodzą do 0.5. Para mrówcza praca i przełom może powtórzyć się wiele
    razy. Nie wiemy czy w danej dziedzinie jesteśmy gdzieś w okolicach 0.5
    czy w okolicach 0.9. Jeśli jesteśmy w okolicach 0.9, to racja jest po
    Twojej stronie - mamy program w okolicach 10% od optimum. Jeśli jesteśmy w
    okolicach 0.5 to racja jest po mojej stronie.



    > Czyli: optymalizacja jednak algorytmiczna.
    Oczywiście że stosujemy optymalizację algorytmiczną jeśli tylko taka jest
    możliwa. Jeśli nie jest możliwa, to stosujemy optymalizację implementacyjną.
    Ale w procesie optymalizowania pojawia się jeszcze coś, co nazywam optymalizacją
    mikro-algorytmiczną. W takich szachach jest główny algorytm: przeszukiwanie
    drzewa gry i kilkadziesiąt algorytmów pobocznych. Algorytmy poboczne to np.
    znajdowanie ruchów w węzłach, liczenie ilości ataków, liczenie odległości
    pionków od linii promocji, liczenie różnych hash-key, różnych statystyk,
    spamiętywanie częściowych wyników, itd. Zwykle jak się zmieni strukturę danych
    żeby np. szybciej znajdować ruchy, to wolniej działa jakiś inny fragment.
    Dlatego implementacja w szachach była tak trudna, trzeba było znaleźć
    strukturę danych na które będzie działał wydajnie główny algorytm i wszystkie
    algorytmy poboczne.


    > Tobie o to chodzi, ja mówiłem o intuicyjności. W sensie "relacyjnego
    > mapowania sposobu myślenia na kod" ;).
    Hmmm... relacyjne mapowanie sposobu myślenia na kod... ładnie brzmi,
    sprzedam to dalej :)

    > Jasne, ostatecznie liczy się szybkośc działania a nie intuicyjność
    > kodu.


    > Wiesz, widziałem takich, którzy na podwójne kseony napisali
    > program wielowątkowy tak, że jeden wątek działał a inne czekały.
    > Czy to czegoś tak ogólnie dowodzi? Bo ja "widziałem".
    No mamy problem z ustaleniem co jest implementacją rozsądną :)


    > Niemożliwe do sprawdzenia. Do sprzwdzenia możliwe tylko jeżeli M$
    > będzie porównywał .Net do reszty świata, czyli Perla, Pythona
    > i co tam jeszcze jest najwolniejsze na świecie - wtedy będzie
    > odpowiedni wynik badania.
    Byśmy musieli wiedzieć na krzywej postępu leży dany program wraz
    zastosowanymi w nim optymalizacjami algorytmicznymi i impementacyjnymi.
    Jeśli leży w okolicach 0.9, to jest jak piszesz i każda próba
    polepszenia nie ma sensu. Problem w tym, że nie wiemy czy jesteśmy w
    okolicach 0.3 czy 0.9.

    > Ja to faktycznie lubiłem, nie musiałem "trenować". Dzisiaj wciąż lubię,
    > ale preferuję rozgrywkę po łyskaczu :).
    Ja lubię patrzyć jak po implementacji jakiegoś algorytmu uczącego
    mój program w każdym turnieju zdobywa więcej punktów :)

    Pozdrawiam

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: