-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
0.net!news.glorb.com!news-in-01.newsfeed.easynews.com!easynews!core-easynews-01
!easynews.com!en-nntp-15.dc1.easynews.com.POSTED!not-for-mail
From: A.L. <l...@a...com>
Newsgroups: pl.comp.programming
Subject: Re: Taki problem programistyczny...
Message-ID: <6...@4...com>
References: <m...@4...com>
<ji2mi1$rds$1@node2.news.atman.pl>
X-Newsreader: Forte Agent 4.2/32.1118
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: 8bit
Lines: 69
X-Complaints-To: a...@e...com
Organization: Forte Inc. http://www.forteinc.com/apn/
X-Complaints-Info: Please be sure to forward a copy of ALL headers otherwise we will
be unable to process your complaint properly.
Date: Wed, 22 Feb 2012 08:52:16 -0600
X-Received-Bytes: 3552
Xref: news-archive.icm.edu.pl pl.comp.programming:195625
[ ukryj nagłówki ]On Wed, 22 Feb 2012 13:20:15 +0100, bartekltg <b...@g...com>
wrote:
>W dniu 2012-02-21 22:52, A.L. pisze:
>> Od niejakiego czasu zaprzata mnie nastepujacy problem:
>>
>> Dany jest skierowany graf acykliczny. Jak wiadomo, taki graf mozna
>> posortowac topologicznie. Takich porzadkow topologicznych jest
>> olbrzymia ilosc.
>>
>> I teraz problem:
>>
>> 1. W praktycznych zadaniach ten graf moze byc bardzo duzy - setki
>> tysiecy wezlow
>> 2. Graf nie musi byc spojny
>> 3. Dane jest uporzadkowanie topologiczne, jedno z mozliwych
>> 4. Chce sie zmienic polozenie N wezlow w tym porzadku, gdzie N jest
>> nieduze (kilka). Wezly sa wybrane przypadkowo
>>
>> Pytanie:
>>
>> 1. Czy ta zmiana polozenia N wezlow narusza uporzadkowanie
>> topologiczne, to znaczy czy po przestawieniu otrzymamy znow porzadek
>> topologiczny czy nie
>> 2. Takie sprawdzenie musi byc EXTREMALNIE wydajne, bo powtarzane jest
>> miliony razy, a program musi sie wykonywac bardzo szybko.
>>
>> Oczywiscie, "brute force" jest trywialne. Ale "nie brute force"
>
>Rozumiem, że brute force to przejście od naszych N przesuwanych
>wierzchołków krawędziami w przód i w tył (ok, trzeba mieć
>krawedzie wstaczne) i sprawdzenie, czy nie odwróciliśmy
>kierunku w porządku.
>
>
>> niekoniecznie jest trywialne. Tyle ze "brute force" strasznie dlugo
>> sie wykonuje, nawet przy maksymalnej optymalizacji kodu
>>
>> Rzecz potrzebna w pewnych algorytmach "constraint programming"
>> zwiazanymi z planowaniem kalendarzowym i routingiem. Dopuszczalny jest
>> "preprocessing" grafu w celu utworzenia struktur danych
>> przyspieszajacych proces. Pamiec nie jest ograniczeniem.
>>
>> Jak ktos nie ma nad czym myslec, to proponuje nad tym
>
>
>Ciężko będzie szybciej:) Mam coś, co samo sprawdzenie robi
>w O(N) + sprawdzenie czy w nasze N wierzchołkow jest ok,
>ale potem i tak trzeba 'poprawić dane' we wszystkich
>wierzchołkach z którymi styka się zbiór N. Więc
>jeśli nie wpadne, jak ro zrobić 'leniwie' wychodzi
>to samo co BF powyżej. (Trzymam listę krawędzi
>posortowaną po pozycjach w porządku. Sprawdzenie
>czy przesuniecie wierzchołka zachowuje porzadek
>jest natychmiastowe, ale trzeba jeszcze rozpropagować
>informacje o zmianie swojej pozycji).
>
BF to takie ze dla kazdego wezla oblicze sei "follower set" czyli
zbior wezlow ktore musa byc pozniej niz dany wezel, i "predecessor
set" ktory zawiera zbior wierzcholkow ktore musza byc wczesniej. Gdy
sie chce pzrestawic wezly, tzreba zprawdzic czy ktoryz z wezlow by nie
"wypadl" z follower set czy predecessor set. Co wymaga sprawdzenia
wszystkich wezlow.
Pytanei wiec, czy nei da sie testowac tylko niektorych wezlow, a
jezeli tak, to ktore?
A.L.
Następne wpisy z tego wątku
- 22.02.12 15:04 A.L.
- 22.02.12 18:03 Piotr Chamera
- 22.02.12 19:21 Piotr Chamera
- 22.02.12 23:24 n...@m...invalid
- 23.02.12 07:55 Piotr Chamera
- 23.02.12 10:47 Piotr Chamera
- 23.02.12 19:23 A.L.
- 23.02.12 23:14 Piotr Chamera
- 24.02.12 14:01 A.L.
- 24.02.12 16:37 Piotr Chamera
Najnowsze wątki z tej grupy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- 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??
Najnowsze wątki
- 2025-02-12 Warszawa => Expert Recruiter 360 <=
- 2025-02-12 Ostrów Wielkopolski => Area Sales Manager OZE <=
- 2025-02-12 Bieruń => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-02-12 Dęblin => Node.js / Fullstack Developer <=
- 2025-02-12 Kraków => PHP Full Stack Developer <=
- 2025-02-12 Karta dźwiękowa stereo
- 2025-02-12 Dęblin => JavaScript / Node / Fullstack Developer <=
- 2025-02-12 Gdańsk => Specjalista ds. Sprzedaży <=
- 2025-02-12 Łódź => NodeJS Developer <=
- 2025-02-12 Błonie => Sales Specialist <=
- 2025-02-12 Dziwne zachowanie magistrali adresowej w 8085
- 2025-02-11 Mini pecet
- 2025-02-10 Spalił się spaliniak
- 2025-02-10 zarowka wifi - z sensowna apka lub lepiej albo lokalnie lub przez web. I zeby harmonogram miala
- 2025-02-10 Chrzanów => Programista NodeJS <=