-
X-Received: by 10.140.102.203 with SMTP id w69mr626237qge.0.1450361016842; Thu, 17
Dec 2015 06:03:36 -0800 (PST)
X-Received: by 10.140.102.203 with SMTP id w69mr626237qge.0.1450361016842; Thu, 17
Dec 2015 06:03:36 -0800 (PST)
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!
mv3no17373927igc.0!news-out.google.com!x65ni50qgx.1!nntp.google.com!21no470231q
gx.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Thu, 17 Dec 2015 06:03:36 -0800 (PST)
In-Reply-To: <n4ue68$5sk$1@node2.news.atman.pl>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=77.254.47.3;
posting-account=xjvq9QoAAAATMPC2X3btlHd_LkaJo_rj
NNTP-Posting-Host: 77.254.47.3
References: <n4ua7n$20o$1@node2.news.atman.pl>
<a...@g...com>
<n4ue68$5sk$1@node2.news.atman.pl>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <d...@g...com>
Subject: Re: Równoległe przeszukiwanie drzewa
From: "M.M." <m...@g...com>
Injection-Date: Thu, 17 Dec 2015 14:03:36 +0000
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable
Xref: news-archive.icm.edu.pl pl.comp.programming:209047
[ ukryj nagłówki ]On Thursday, December 17, 2015 at 2:43:38 PM UTC+1, bartekltg wrote:
> On 17.12.2015 14:28, M.M. wrote:
> > On Thursday, December 17, 2015 at 1:36:08 PM UTC+1, Borneq wrote:
> >> Normalnie, przy rekurencyjnym przeszukiwaniu zaczyna się od najbardziej
> >> lewego poddrzewa, potem wybiera najbardziej lewą gałąź itd.
> >> A jak przeszukiwać w ten sposób że drzewo (niekoniecznie binarne)
> >> najpierw przeszukuje się do głębokości 1, potem do 2, w międzyczasie się
> >> rozgałęzia, więc więcej gałęzi szukamy. Czy to problem, gdzie przydadzą
> >> się coroutiny?
> >> W szachach jest podobnie, ale tam szukanie na głębokość n+1, zawiera w
> >> sobie szukanie całych poddrzew poczynając od korzenia, z drugiej strony
> >> inaczej trzeba by zapamiętywać pozycje, a przy współczynniku
> >> rozgałęzienia kilkadziesiąt, koszt szukania od nowa jest pomijalny.
> >> Ale co gdy mamy rozgałęzienie zwykle 2, czasami trzy?
> >
> > Odpowiadam mniej/więcej to samo co Bartek. Stos, jakbyś się uparł, można
> > też zastosować, ale nie jeden, lecz dwa :) Można użyć flagi 'odwiedzony'
> > zamiast kolejki, ale wtedy musi być tyle flag, ile wątków i oznacza
> > stały* narzut pamięciowy. W przypadku kolejki na pamięć jest zapotrzebowanie
> > jest tylko wtedy gdy wątki przeszukują.
>
> Dobrze, masz flagę, ale jak przechodzisz drzewo?
Można, ale zupełnie inna sprawa czy to ma praktyczny sens :)
struct Node {
void *data
int *children;
uint flags
};
Node tree[SIZE];
root = 0;
tree[root].flags = 1<<CURR_THREAD;
tree[not_root].flags = 0; // sory za metakod
int queue;
do {
queue = 0;
for( i=0 ; i<SIZE ; i++ ) {
if( tree[i].flags & CURR_THREAD ) {
tree[i].flags ^= 1<<CURR_THRED;
queue++;
print( i );
for( j=0 ; tree[i].children[j] >= 0 ; j++ ) // dowolna kolejność
tree[ tree[i].children[j] ].flags |= 1<<CURR_THREAD;
}
}
} while( queue > 0 );
Pozdrawiam
>
> Co do wątków, mam podejrzenie, że 'równoległe' pojawia się
> w poście z braku znajomośći poprzwnego sformułowania - "w szerz",
> nie dlatego, by zbobić to wielowątkowo.
Hmmmm.
> Wyglada, że chce przeszukać drzewo do zadanej głębokośći lub do
> głębokości, na której znajduje się rozwiązanie, ale nie głębiej.
> Właśnie do tego BFS zostało stworzone;-)
To w mojej wersji jeszcze trzeba dać to ograniczenie głębokości :)
Pozdrawiam
Następne wpisy z tego wątku
- 17.12.15 15:13 M.M.
- 17.12.15 17:09 Borneq
- 18.12.15 16:52 platformowe głupki
Najnowsze wątki z tej grupy
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
Najnowsze wątki
- 2024-06-29 eSIM, praktyczne doświadczenia z różnymi operatorami?
- 2024-06-30 1250 euro za rezygnacje z posiadania samochodu
- 2024-06-29 poszedł na czerwonym i uderzył w motur
- 2024-06-29 Tesla to wóz dla mnie
- 2024-06-30 Podstawa bezpiecznikowa jako rozłącznik DC
- 2024-06-29 Napięcie akumulatora wyłączające UPS / jakie nowe akumulatory do UPS?
- 2024-06-30 Basen i chłodzenie w w wentylacji mechanicznej
- 2024-06-29 na chuj mieć dom?
- 2024-06-29 Marki => ERP Implementer <=
- 2024-06-29 Warszawa => SQL Database Developer <=
- 2024-06-29 Poznań => Senior PHP Developer (Symfony) <=
- 2024-06-29 Warszawa => Senior Cloud DevOps Engineer (Azure) <=
- 2024-06-29 Gdańsk => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-06-29 Ulm => IT Network Engineer <=
- 2024-06-29 Warszawa => Full Stack .Net Engineer <=