-
11. Data: 2014-07-02 05:14:20
Temat: Re: Grafy - eliminacja wierzcho?ków
Od: A.L. <a...@a...com>
On Wed, 02 Jul 2014 00:07:31 +0200, bartekltg <b...@g...com>
wrote:
>"An independent vertex set of a graph G is a subset of the vertices
>such that no two vertices in the subset represent an edge of G"
>// http://mathworld.wolfram.com/IndependentVertexSet.ht
ml
>
>Pojedynczy wierzchołek siłą rzeczy zawsze jest zbiorem niezależnym
>(choć niekoniecznie największym czy maksymalnym).
>
>pzdr
>bartekltg
>
>
>"An independent vertex set of a graph G is a subset of the vertices
>such that no two vertices in the subset represent an edge of G""
Ta definicja jest porabana, bo mowa jest o DWOCH wierzcholkach i
krawedzi. Jak dla mnie zupelnie nie wynika co bedzie z JEDNYM
wierzcholkiem.
Inne definicje tez takei sa
Denition 1 Given an undirected graph G = (V;E) a subset of nodes S
V is an independent set (stable set) i there is no edge in E between
any two nodes in S. A subset of nodes S is a clique if every pair of
nodes in S have an edge between them in G.
"Any two nodes" tez nie nasuwa watpliwosci ze musza byc co najmniej
DWA wierzcholki
Inna definicja:
An independent set S of G is a set of vertices such that no unordered
pair of vertices in S is an edge
Prosze o definicje ktora EXPLICITE stwierdzi co sie dzeje dla JEDNEGO
wierzcholka. Jak dla mnie, nie jest to oczywiste
A.L.
-
12. Data: 2014-07-02 05:27:10
Temat: Re: Grafy - eliminacja wierzcho?ków
Od: A.L. <a...@a...com>
On Wed, 02 Jul 2014 00:07:31 +0200, bartekltg <b...@g...com>
wrote:
Jeszcze jedna definicja
A stable (or independent) set in a graph is a set of pairwise
non-adjacent vertices
A.L.
-
13. Data: 2014-07-02 07:19:30
Temat: Re: Grafy - eliminacja wierzchołków
Od: Borneq <b...@a...hidden.pl>
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
> 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?
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.
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.
-
14. Data: 2014-07-02 11:39:16
Temat: Re: Grafy - eliminacja wierzcho?ków
Od: bartekltg <b...@g...com>
On 02.07.2014 05:14, A.L. wrote:
> On Wed, 02 Jul 2014 00:07:31 +0200, bartekltg <b...@g...com>
> wrote:
>
>> "An independent vertex set of a graph G is a subset of the vertices
>> such that no two vertices in the subset represent an edge of G"
>> // http://mathworld.wolfram.com/IndependentVertexSet.ht
ml
>>
>> Pojedynczy wierzchołek siłą rzeczy zawsze jest zbiorem niezależnym
>> (choć niekoniecznie największym czy maksymalnym).
>>
>> pzdr
>> bartekltg
>>
>>
>
>> "An independent vertex set of a graph G is a subset of the vertices
>> such that no two vertices in the subset represent an edge of G""
>
> Ta definicja jest porabana, bo mowa jest o DWOCH wierzcholkach i
> krawedzi. Jak dla mnie zupelnie nie wynika co bedzie z JEDNYM
> wierzcholkiem.
Sformułowanie rzeczywiście nieszczęśliwe, ale czytelne.
Lepsze IMHO byłoby 'żadne dwa wierzchołki zbioru niezależnego
nie są połączone krawędzią'.
I to pokrywa przypadek jednego wierzchołka.
Dla purystów należałoby na początku ndadać, że rozważamy graf
nieskierowany bez pętli (cykli długości 1).
>
> Inne definicje tez takei sa
>
> Denition 1 Given an undirected graph G = (V;E) a subset of nodes S
> V is an independent set (stable set) i there is no edge in E between
> any two nodes in S. A subset of nodes S is a clique if every pair of
> nodes in S have an edge between them in G.
>
> "Any two nodes" tez nie nasuwa watpliwosci ze musza byc co najmniej
> DWA wierzcholki
>
> Inna definicja:
>
> An independent set S of G is a set of vertices such that no unordered
> pair of vertices in S is an edge
To taż mi się nie podoba, nawet bardziej,
"para wierzchołków jest krawędzią".
"Jest połączona krawędzią" byłoby lepiej. Ale nadal jest to czytelne.
>
> Prosze o definicje ktora EXPLICITE stwierdzi co sie dzeje dla JEDNEGO
> wierzcholka. Jak dla mnie, nie jest to oczywiste
W zbiorze jednoelementowym istnieje para, która spełnia jakiś tam warunek?
Oczywiście NIE.
Skoro definicja nie wyklucza przypadku zbioru pustego (wiele tak robi,
gdy potrzeba) to całość jest spełniona.
pzdr
bartekltg
-
15. Data: 2014-07-02 11:52:38
Temat: Re: Grafy - eliminacja wierzchołków
Od: bartekltg <b...@g...com>
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
-
16. Data: 2014-07-02 13:58:44
Temat: Re: Grafy - eliminacja wierzchołków
Od: Borneq <b...@a...hidden.pl>
W dniu 2014-07-02 11:52, bartekltg pisze:
>> 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.
Jak biorę pierwszy wolny wierzchołek zamiast maksymalnego, to mi się nie
udaje. Np. 0-1-2, wyrzucam 0, zostaje 1-2, muszę wyrzucić 1
-
17. Data: 2014-07-02 17:11:28
Temat: Re: Grafy - eliminacja wierzcho?ków
Od: A.L. <a...@a...com>
On Wed, 02 Jul 2014 11:39:16 +0200, bartekltg <b...@g...com>
wrote:
>On 02.07.2014 05:14, A.L. wrote:
>> On Wed, 02 Jul 2014 00:07:31 +0200, bartekltg <b...@g...com>
>> wrote:
>>
>>> "An independent vertex set of a graph G is a subset of the vertices
>>> such that no two vertices in the subset represent an edge of G"
>>> // http://mathworld.wolfram.com/IndependentVertexSet.ht
ml
>>>
>>> Pojedynczy wierzchołek siłą rzeczy zawsze jest zbiorem niezależnym
>>> (choć niekoniecznie największym czy maksymalnym).
>>>
>>> pzdr
>>> bartekltg
>>>
>>>
>>
>>> "An independent vertex set of a graph G is a subset of the vertices
>>> such that no two vertices in the subset represent an edge of G""
>>
>> Ta definicja jest porabana, bo mowa jest o DWOCH wierzcholkach i
>> krawedzi. Jak dla mnie zupelnie nie wynika co bedzie z JEDNYM
>> wierzcholkiem.
>
>Sformułowanie rzeczywiście nieszczęśliwe, ale czytelne.
>Lepsze IMHO byłoby 'żadne dwa wierzchołki zbioru niezależnego
>nie są połączone krawędzią'.
Jedyna rozsadna definicja ktora spotkalem to taka:
Zbor wierzholkow I grafu G jezt sbiorem niezaleznym, jezeli podgraf
G(I) indukowany pzrez te wiercholki nie zawiera krawedzi.
Oczywiscie, wtedy pojedynczy wierzcholek tez jest zbiorem niezaleznym.
Ale 99.99% definicji mowi o "parach" i "przyleganiu"
A.L.
-
18. Data: 2014-07-02 21:35:01
Temat: Re: Grafy - eliminacja wierzchołków
Od: bartekltg <b...@g...com>
On 02.07.2014 13:58, Borneq wrote:
> W dniu 2014-07-02 11:52, bartekltg pisze:
>>> 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.
>
> Jak biorę pierwszy wolny wierzchołek zamiast maksymalnego, to mi się nie
> udaje. Np. 0-1-2, wyrzucam 0, zostaje 1-2, muszę wyrzucić 1
I jest to zbiór niezależny maksymalny. Nikt nie obiecywał
największego;-)
Pewnie Twój średnio daje lepszy wynik, ale nie zawsze.
6
|
5
|
0-1-2-3-4
|
7
|
8
Tutaj Twój algorytm zwróci 4 elementy,
a da się 5.
pzdr
bartekltg