eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingGrafy - eliminacja wierzchołkówRe: Grafy - eliminacja wierzchołków
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!.POSTED!not-for-mail
    From: bartekltg <b...@g...com>
    Newsgroups: pl.comp.programming
    Subject: Re: Grafy - eliminacja wierzchołków
    Date: Wed, 02 Jul 2014 11:52:38 +0200
    Organization: ATMAN - ATM S.A.
    Lines: 56
    Message-ID: <lp0kp6$mld$1@node2.news.atman.pl>
    References: <louf2u$njl$1@node1.news.atman.pl> <louokg$ohi$1@node2.news.atman.pl>
    <louv5q$v6m$1@node2.news.atman.pl> <lovcqp$dnf$1@node2.news.atman.pl>
    <lp04ps$f9n$1@node1.news.atman.pl>
    NNTP-Posting-Host: 89-73-81-145.dynamic.chello.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: node2.news.atman.pl 1404294758 23213 89.73.81.145 (2 Jul 2014 09:52:38 GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Wed, 2 Jul 2014 09:52:38 +0000 (UTC)
    User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101
    Thunderbird/24.6.0
    In-Reply-To: <lp04ps$f9n$1@node1.news.atman.pl>
    Xref: news-archive.icm.edu.pl pl.comp.programming:206110
    [ ukryj nagłówki ]

    On 02.07.2014 07:19, Borneq wrote:
    > W dniu 2014-07-02 00:30, bartekltg pisze:
    >> http://en.wikipedia.org/wiki/Maximum_disjoint_set
    >>
    >> Zastępujesz punkty kolami o srednicy równej minimalnemu dystansowi.
    >>
    >> Nadal NP-trudne.
    >
    > A to coś zmienia? Ja zastępuję prostokąty różnych wielkości otaczające
    > elipsoidalne kształty punktami w ich środku. A odległość traktuję
    > binarnie - bliżej/nie bliżej

    Przypadek ogólniejszy jest trudniejszy. NA dzień dobry w oryginalnym
    masz heurystki oparte o gozkład geometryczny.

    >
    >> Najprostszy zachłanny będzie liniowy względem rozmiaru grafu (V+E).
    >
    > Tych punktów jest na tyle mało, że czas kwadratowy nie za bardzo
    > przeszkadza, ale w jaki sposób uzyskać czas liniowy?

    Bierzesz wierzchołek, wszystkich sąsiadów wyrzucasz. Bierzesz
    pierwszy wolny wierzchołek, wyrzucasz wszystkich jego sąsiadów.
    Powtarzasz do wyczerpania nieprzetworzonych wierzchołków.

    Jest maksymalny, po dodanie jakiegokolwiek wyrzuconego nie jest
    możliwe, stykał się z jakimś pozostawionym.

    Czas to liczba krawędzi + liczba wierzchołków.

    > Pierwszą częścią jest w ogóle uzyskanie grafu - tu biorę odległość każdy
    > z każdym, choć nie ma sensu brać odległości dwóch odległych punktów.

    Jeśli rozmiar obszaru jest przyzwoicie większy od rozmiaru
    kulki/kwadratu, użyj jakiejś modyfikacji algorytmu zamiatania.
    będzie znacznie szybciej.


    > Potem jest właściwy algorytm. Liczba krawędzi wychodząca z każdego
    > wierzchołka jest mała w porównaniu z liczbą wierzchołków - mniejsza niż
    > pierwiastek, raczej kilka. Ale algorytm który stosuję jest kwadratowy,
    > ponieważ jedno szukanie maksymalnego wierzchołka jest liniowe -
    > przelatuje przez wszystkie wierzchołki, choć wiele ma po tyle samo
    > krawędzi.

    Skoro musisz wyrzucać je w tej kolejności, użyj jakiejś struktury,
    gdzie masz kolejność i możesz 'pogarszać priorytet'. W najgorszym
    przypadku ze std::set (drzewo binarne).

    pzdr
    bartekltg





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: