🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: alt.pl.matematyka
Article #10462

Re: Algorytm mrówkowy

#10462
From: Maciek
Date: Thu, 08 Oct 2009 11:36
62 lines
3645 bytes
Użytkownik "Maciek" <maciek@elkomtech.com.pl.nospam>
napisał w wiadomości news:hakdt4$5bj$1@opal.futuro.pl...
>
> Użytkownik "Mateusz Piąty" <x@y.z> napisał
> w wiadomości news:19pva9lnlf400$.1qqgz3d3va30l.dlg@40tude.net...
>> D
>>>
>>> Zły symbol: nie P, tylko Pij powinno być - prawdopodobieństwo
>>> w węźle "i" wyboru przejścia do węzła "j".
>>>
>>
>> (...........................)
>>
>> W praktyce działa ale nie chodzi mi o odkrywanie
>> Ameryki ale o prawidłową implementację algorytmu.
>
> WYOBRAŹ sobie podział przedziału jednostkowego na części
> o długościach P(i,1), P(i,2), P(i,3), ... P(i,N) - gdzie N
> maksymalny numer węzła, do którego można przejść z bieżącego
> i-tego węzła. Masz wylosować liczbę z przedziału (0,1)
> i sprawdzić w którą część trafiłeś -- tą drogą pójdzie mrówka.
>
> Sprawdź więc, czy wylosowana liczba L jest mniejsza od P(i,1)
> - jeśli tak, idziesz do 1. W przeciwnym razie odejmij od niej
> P(i,1) i sprawdź, czy wynik jest mniejszy od P(i,2) - jeśli tak,
> to idziesz do węzła 2, w przeciwnym razie od bieżącej, już raz
> zmniejszonej wartości L, odejmujesz P(i,2), i porównujesz
> z P(i,3) -- i tak dalej.
> Wskutek błędów zaokrągleń może się zdarzyć, gdy wylosowane L
> będzie bardzo bliskie 1, że odejmiesz wszystkie wartości P,
> i wciąż pozostanie znikoma dodatnia reszta. Zalicz ją wtedy
> do ostatniego przedziału.


W Pascalu to będzie jakoś tak (nie pisałem w tym języku już
wiele lat, ale mam nadzieję, że to przypomina Pascala):


var
    P : array[ 1 .. MaxN ] of real;  { prawopodobieństwa }
    N : integer;                     { liczba elementów P[] }
    L : real;                        { liczba losowa od 0 do 1 }
    i : integer;                     { licznik }

    ....

    { zakładam, że N > 0, elementy P[i] od i=1 do i=N
      są nieujemne a ich suma wynosi (prawie równo) 1 }

    L := random;
    i := 0;
    repeat
        inc( i );
        L := L - P[ i ];
    until (L <= 0) or (i = N);

    wynik := i;                      { tą drogą pójdzie mrówka }



Maciek
Technical Details
Message-ID: <hakir9$g3u$1@opal.futuro.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.task.gda.pl!opal.futuro.pl!not-for-mail
References: <1bj1om8p4hc15$.1s3f8dy2bdiaf.dlg@40tude.net> <daf21b38-0694-45e4-a60d-5598e632c0ec@p15g2000vbl.googlegroups.com> <1o9equyr0ocwq$.2rh8ncdf4zlo.dlg@40tude.net> <a534a00e-af75-4b4b-b430-e5659a769b54@e18g2000vbe.googlegroups.com> <12yfgl5l4m4fe$.2xmz42mrjx8c$.dlg@40tude.net> <5af4213a-219b-4f3e-9546-b6566abc361f@j9g2000vbp.googlegroups.com> <5crvrx34iiyh.1cq98i8tw1fsa$.dlg@40tude.net> <a8a95c80-37cc-4033-a1c4-23b7e42b4fa6@v20g2000vbs.googlegroups.com> <17uzkoerj49cg$.cdb84ramqvld$.dlg@40tude.net> <hakc8v$24l$1@opal.futuro.pl> <19pva9lnlf400$.1qqgz3d3va30l.dlg@40tude.net> <hakdt4$5bj$1@opal.futuro.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.task.gda.pl!opal.futuro.pl!not-for-mail
From: "Maciek" <maciek@elkomtech.com.pl.nospam>
Newsgroups: alt.pl.matematyka
Subject: Re: Algorytm mrówkowy
Date: Thu, 8 Oct 2009 13:36:06 +0200
Organization: Bractwo Smocze
Lines: 63
Message-ID: <hakir9$g3u$1@opal.futuro.pl>
References: <1bj1om8p4hc15$.1s3f8dy2bdiaf.dlg@40tude.net> <daf21b38-0694-45e4-a60d-5598e632c0ec@p15g2000vbl.googlegroups.com>  <1o9equyr0ocwq$.2rh8ncdf4zlo.dlg@40tude.net> <a534a00e-af75-4b4b-b430-e5659a769b54@e18g2000vbe.googlegroups.com> <12yfgl5l4m4fe$.2xmz42mrjx8c$.dlg@40tude.net> <5af4213a-219b-4f3e-9546-b6566abc361f@j9g2000vbp.googlegroups.com> <5crvrx34iiyh.1cq98i8tw1fsa$.dlg@40tude.net> <a8a95c80-37cc-4033-a1c4-23b7e42b4fa6@v20g2000vbs.googlegroups.com> <17uzkoerj49cg$.cdb84ramqvld$.dlg@40tude.net> <hakc8v$24l$1@opal.futuro.pl> <19pva9lnlf400$.1qqgz3d3va30l.dlg@40tude.net> <hakdt4$5bj$1@opal.futuro.pl>
NNTP-Posting-Host: ns.elkomtech.com.pl
Mime-Version: 1.0
X-Trace: opal.futuro.pl 1255001769 16510 62.233.147.142 (8 Oct 2009 11:36:09 GMT)
X-Complaints-To: usenet@futuro.pl
NNTP-Posting-Date: Thu, 8 Oct 2009 11:36:09 +0000 (UTC)
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.5843
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit