bi pary

Transkrypt

bi pary
Matematyka dyskretna
© Andrzej Łachwa, UJ, 2012
[email protected]
Wybrane zagadnienia
Algorytm Halla, wersja 1
Niech A i B będą zbiorami dziewcząt i chłopców, |A|≤|B|.
Warunek, że każde r dziewcząt zna w sumie co najmniej r chłopców, jest
warunkiem koniecznym i wystarczającym na to, by każda z dziewczyn z A
znalazła sobie męża wśród znanych jej chłopców z B.
Algorytm „znajdowania męża”
Niech Bi to zbiór chłopców, które zna dziewczyna ai. Dopóki jest to
możliwe dobieramy kolejnym dziewczynom a1, a2, a3 … aj chłopców b1, b2,
b3 … bj, przy czym b1∈B1 b2∈B2 \{b1}, b3∈B3 \{b1, b2} itd.
Jeżeli uda się to zrobić dla wszystkich dziewczyn, to algorytm znajdowania
mężów zakończy się.
Jeżeli jednak dla pewnej dziewczyny aj zbiór znanych jej chłopców Bj \{b1,
b2 … bj-1} jest już pusty, to trzeba zerwać przynajmniej jedne zaręczyny.
W tym celu dziewczyna aj urządza przyjęcie, na które zaprasza wszystkich
znanych jej chłopców (Bj). Chłopcy ci przychodzą ze swoimi narzeczonymi,
ale te – na wszelki wypadek – zabierają ze sobą swoich znajomych
chłopców, a ci swoje narzeczone itd, aż do momentu gdy na przyjęcie
zostanie zaproszony chłopiec, który nie jest jeszcze zaręczony. Musi się
taki znaleźć, bo każda grupa r dziewcząt zna w sumie co najmniej r
chłopców, czyli dziewczyny zaproszone na przyjęcie znają w sumie co
najmniej tyle samo chłopców a ponadto dziewczyna aj nie jest zaręczona.
Ów niezaręczony chłopiec będzie tańczył z dziewczyną, która go zaprosiła,
jej narzeczony – z dziewczyną która go zaprosiła, itd. aż na parkiecie
znajdzie się chłopiec tańczący z gospodynią przyjęcia. Pary na parkiecie
będą to nowe pary narzeczonych, a te, które nie tańczą pozostaną
niezmienione.
Po przyjęciu wszystkie dziewczyny a1, a2, a3 … aj mają narzeczonych i
możemy kontynuować dobieranie narzeczonych dla kolejnych dziewczyn.
Przykład
Niech A={a, b, c, d, e}, B={A, B, C, D, E, F, G, H} oraz
a zna A i B
b zna A, B, D
c zna A, B, C
d zna A i C
e zna D, E, F, G, H
Łączymy (a, A), (b, B), (c, C) i dla d brakuje narzeczonego. Na przyjęcie d
zaprasza chłopców A, C, ci swoje narzeczone a, c, te swoich znajomych A,
B, C. Chłopiec B zaprasza narzeczoną b, a ona swoich znajomych A, B, D,
z których tylko ostatni nie był jeszcze zaproszony (a ponadto nie ma
narzeczonej).
Pary na parkiecie: (D, b), (B, c), (C, d). Nie tańczą (A, a).
Na koniec dobieramy narzeczonego dla e, np. G.
Algorytm Halla, wersja 2
Niech rodzina (B1, B2, … Bk) składa się z niepustych podzbiorów
skończonego zbioru B.
Transwersalą rodziny (B1, B2, … Bk) nazywamy różnowartościowy ciąg
reprezentantów (b1, b2, … bk) taki, że bi∈Bi dla i=1, 2, … k.
Rodzina zbiorów skończonych (B1, B2, … Bk) ma transwersalę wtw gdy dla
dowolnego J⊆{1, 2, … k} zachodzi |J|≤| U Bi |.
i∈J
Algorytm Halla, wersja 3
Niech G(V1∪V2, E) będzie grafem dwudzielnym, a funkcja Φ(A) zwraca dla
A⊆V1 zbiór tych wierzchołków z V2, które są sąsiednie z przynajmniej
jednym wierzchołkiem w zbiorze A.
Skojarzenie w grafie dwudzielnym G nazwiemy podzbiór krawędzi, w
którym żadne dwie krawędzie nie wychodzą z tego samego wierzchołka.
Powiemy, że wierzchołek v∈Vi jest skojarzony, jeśli istnieje w∈V3-i taki,
że krawędź vw należy do skojarzenia. Pełne skojarzenie V1 z V2 w grafie
dwudzielnym G to skojarzenie, w którym każdy wierzchołek z V1 jest
skojarzony.
Pełne skojarzenie V1 z V2 istnieje wtedy i tylko wtedy, gdy |A|≤
≤|Φ
Φ(A)|
dla każdego podzbioru A zbioru V1.
Algorytm „znajdowania męża” przedstawimy w wersji z losowym
doborem narzeczonych. Oznacza to zbudowanie dowolnego skojarzenia w
grafie G. Mamy wtedy podzbiór krawędzi M⊆E i podzbiór „dziewcząt”
(podzbiór V1) ze skojarzonymi narzeczonymi z V2.
Jeżeli wylosowane skojarzenie nie jest pełne (i nie da się rozszerzyć do
pełnego) to musimy znaleźć dla M tzw. ścieżkę alternującą i zastąpić M
skojarzeniem M’ opartym na tej ścieżce. Skojarzenie M’ ma moc większą
o 1 od mocy M.
Jeżeli M’ nie jest pełne to tworzymy ścieżkę alternującą dla M’ i
zastępujemy M’ skojarzeniem M” opartym na tej ostatniej ścieżce.
Postępujemy tak aż do otrzymania skojarzenia pełnego.
Zadanie z hasłami (numerami rejestracyjnymi)
Tworzymy 5-cyfrowe hasła (z cyfr 0, 1, … 9). Hasła uważamy za podobne,
gdy zbiory cyfr, z których się składają są takie same. Np. hasło 27311 jest
podobne do hasła 77312, bo ich zbiory cyfr to {1,2,3,7}.
Ile jest niepodobnych haseł?
Rozwiązanie pierwsze
10 
Klasy haseł o 5 różnych cyfrach można utworzyć na   sposobów.
5


Zbiór haseł o 4 takich samych cyfrach składa się z haseł, w których jedna
cyfra powtarza się dwukrotnie. Każdą taką klasę haseł można utworzyć
przez wybór cyfry powtarzającej się i wybór trzech innych cyfr, czyli na
9
10 ⋅   = 840 sposobów.
 3
Każda klasa haseł o 3 cyfrach składa się z haseł, w których albo dwie cyfry
występują dwukrotnie, albo jedna cyfra występuje trzykrotnie. Klasę
pierwszego rodzaju można wybrać na 10 ⋅ 9 ⋅ 8 = 720 sposobów, bo
najpierw wybieramy cyfrę pojedynczą, potem inną cyfrę podwójną i
znowu jeszcze inną cyfrę podwójną. Klasę drugiego rodzaju na 10 ⋅ 
9

 2
sposobów, bo ...
To rozwiązanie nie jest poprawne!
Rozwiązanie poprawne
Zbiór cyfr 5-cyfrowego hasła może mieć od 5 do 1 elementów. Każdy taki
zbiór reprezentuje klasę haseł podobnych. Trzeba więc dodać do siebie
liczby podzbiorów pięcio, cztero, trzy, dwu i jednoelementowych:
10 
  = 252 ,
5
10 
  = 210 ,
4
10 
  = 120 ,
3
10 
  = 45 ,
2
10 
  = 10
1
Szukanych klas jest 252+210+120+45+10 = 637.
W rozwiązaniu pierwszym wybór grupy haseł 4-cyfrowych polegał na
wyborze cyfry powtarzającej się, a następnie 3 cyfr z pozostałych
dziewięciu. Wybór taki można dla konkretnego przypadku oznaczyć jako
{8, {7, 6, 5}}, a różnych grup jest 840.
W rozwiązaniu poprawnym odpowiedni wybór możemy oznaczyć jako {8,
7, 6, 5}, a różnych grup jest 210. Dlaczego jest ich 4 razy mniej?
Bo grupa {8, 7, 6, 5} składa się z haseł podobnych należących do 4
podgrup postaci:
{8, {7,6,5}}
{7, {8,6,5}}
{6, {8,7,5}}
{5, {8,7,6}} .
A gdyby to były hasła 3-cyfrowe?
Wtedy dodajemy
10 
  = 120 ,
3
10 
  = 45 ,
2
10 
  = 10 , czyli
1
120+45+10=175.
Dla takich 3-cyfrowych haseł policzmy ile jest elementów w każdej
grupie haseł podobnych?
Na przykład niech „345” oznacza grupę haseł złożonych z tych trzech cyfr.
Można je uporządkować na 3! sposobów, więc w każdej takiej grupie jest
6 haseł podobnych. Niech „34” oznacza grupę haseł złożonych tylko z
dwóch takich cyfr. Należą do niej 334, 343, 433, 443, 434, 344, czyli 6
haseł. Niech „3” oznacza grupę haseł zbudowanych z cyfry 3. Należy do
niej tylko jedno hasło.
Sprawdzamy: 120 grup po 6 haseł i 45 grup do 6 haseł i 10 grup do 1 haśle
daje łącznie 720+270+10=1000. I to się zgadza, bo 3-cyfrowych liczb
dziesiętnych jest 103.
Przeprowadźmy podobne rozumowanie dla haseł 4-cyfrowych.
Mamy
10 
  = 210 ,
4
10 
  = 120 ,
3
10 
  = 45 ,
2
10 
  = 10
1
grup cztero, trzy, dwu i
jednoelementowych, łącznie 210+120+45+10 = 385 grup.
W każdej grupie typu „2345” mamy 4! różnych haseł. W grupie typu
„234” – 36 haseł, bo na 3 sposoby wybieramy cyfrę, która wystąpi
dwukrotnie (np. będzie to cyfra 4), pozostałe dwie cyfry mogą wystąpić w
różnej kolejności (2 przypadki: 23 i 32), a wybraną cyfrę można wstawić
do każdej pary cyfr na 6 sposobów (4423, 4243, 4234, 2443, 2434, 2344).
W grupie typu „56” będzie 14 haseł, bo 8 haseł z potrojoną cyfrą (5556,
5565, 5655, 6555, 6665, 6656, 6566, 5666) i 6 haseł z podwojonymi
cyframi (5566, 5656, 5665, 6655, 6565, 6556). I na koniec w grupie typu
„5” będzie jedno hasło postaci 5555.
Sprawdzamy: 210⋅24+120⋅36+45⋅14+10=5040+4320+630+10=10000.
I dla haseł 5-cyfrowych.
W każdej grupie typu „34567” mamy 5! różnych haseł, a grup takich jest
10 
  = 252 , łącznie mamy tu
5
Grup typu „3456” jest
252⋅120=30240.
10 
  = 210 , a
4
w każdej z nich jest 240 haseł, mamy
bowiem 4!=24 permutacje i dla każdej z nich 10 haseł (np. dla permutacji
6543 mamy hasła 66543, 65643, 65463, 65436, 56643, 56463, 56436,
54663, 54636, 54366). Łącznie jest tu 210⋅24⋅10=50400.
Grup typu „345” jest
10 
  = 120 .
3
Każdą taką grupę podzielimy na podgrupę
z potrojoną cyfrą i podgrupę z dwoma podwojonymi cyframi. W pierwszej
z nich najpierw wybieramy potrojoną cyfrę (3 sposoby wyboru), następnie
ustalamy kolejność dwóch pozostałych (2 sposoby) i wstawiamy cyfrę
potrojoną na 10 sposobów. Razem jest w takiej podgrupie 60 haseł.
Przykład: potrojona niech będzie cyfra 5, a wybrana kolejność
pozostałych, to 34. Wtedy mamy hasła: 55534, 55354, 55345, 53554,
53545, 53455, 35554, 35545, 35455, 34555.
W drugiej podgrupie mamy 90 haseł. Bierze się to stąd, że najpierw
wybieramy cyfrę niepodwojoną (3 sposoby). Dalej, cyfry podwojone mogą
utworzyć ciągi 3355, 3535, 3553, 5335, 5353, 5533. Do każdego z tych
ciągów można wstawić cyfrę niepodwojoną na 5 sposobów, np. do ciągu
3355 wstawiamy cyfrę 4: 43355, 34355, 33455, 33545, 33554.
Każda grupa typu „345” ma ostatecznie 150 haseł. Razy 120 grup daje
nam 18000 haseł.
Grup typu „34” jest
10 
  = 45 , a
2
w każdej z nich jest 30 haseł. Jest tak
dlatego, że 5-elementowych łańcuchów z dwóch znaków można
zbudować 25 czyli 32, ale dwa z nich nas nie interesują (33333, 44444).
Wreszcie grup typu „3” jest 10.
Sprawdzamy:
30240+210⋅240+120⋅(60+90)+45⋅30+10=30240+50400+18000+1350+10 =
100 000.
Pytania na egzamin licencjacki
z zakresu matematyki dyskretnej
Omów metody obliczania sum skończonych
Liczby Fibonacciego a "złoty podział"; wniosek Keplera
Twierdzenie Halla i algorytm łączenia w pary
Trójkąt Stirlinga (dla podziałów) i liczby Bella
Zasada szufladkowa Dirichleta

Podobne dokumenty