[Algorytmy] Wybór osób na spotkanie

Julia321
Użytkownik
Użytkownik
Posty: 1
Rejestracja: 8 paź 2017, o 10:35
Płeć: Kobieta
Lokalizacja: Bdg

[Algorytmy] Wybór osób na spotkanie

Post autor: Julia321 »

Mam pewne zadanie:

Jan organizuje szkolne spotkanie. Dany uczeń nie zjawi się na spotkanie, jeżeli będzie na nim inny uczeń, którego nie lubi. Wiadomo, że każdy lubi Jana. Zadaniem Jana jest wysłać zaproszenia tak wybranym osobom, by na spotkaniu zjawiło się jak najwięcej osób.

Dane wejściowe:

Kod: Zaznacz cały

n - liczna uczniów do zaproszenia
[n][n] - macierz n x n, z wypełnionymi polami (1 - lubi ucznia, 0 nie lubi)
Wyjście:

Kod: Zaznacz cały

k - maksymalna liczba uczniów, którą Jan może zaprosić
np.
WEJŚCIE:

Kod: Zaznacz cały

5
1 1 0 1 0
1 1 0 1 1
0 0 1 0 0
1 1 0 1 0
0 1 0 0 1
WYJSCIE: Czy ktoś ma pomysł jak najbardziej optymalnie to zrobić?
Ostatnio zmieniony 8 paź 2017, o 19:45 przez Afish, łącznie zmieniany 1 raz.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania. Poprawa wiadomości.
Awatar użytkownika
jutrvy
Użytkownik
Użytkownik
Posty: 1202
Rejestracja: 24 lis 2014, o 18:04
Płeć: Mężczyzna
Podziękował: 10 razy
Pomógł: 239 razy

Re: [Algorytmy] Wybór osób na spotkanie

Post autor: jutrvy »

Czy zakładamy, że człowiek \(\displaystyle{ x}\) lubi człowieka \(\displaystyle{ y}\) wtedy i tylko wtedy, gdy człowiek \(\displaystyle{ y}\) lubi człowieka \(\displaystyle{ x}\), czyli po ludzku, że relacja \(\displaystyle{ x}\) lubi \(\displaystyle{ y}\) jest zwrotna?
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[Algorytmy] Wybór osób na spotkanie

Post autor: Afish »

Julia321 pisze:Czy ktoś ma pomysł jak najbardziej optymalnie to zrobić?
Nie ma „najbardziej optymalnie”, albo coś jest optymalne, albo nie jest.

Co do problemu. Osoby lubiące się nic nie wnoszą, więc zajmujemy się tylko tymi nielubiącymi się. Tworzymy graf, w którym krawędź między A i B jest wtedy i tylko wtedy, gdy A nie lubi B lub B nie lubi A.

Następnie w takim grafie chcemy znaleźć maximum independent set (nie mylić z maximal independent set):

Kod: Zaznacz cały

https://en.wikipedia.org/wiki/Independent_set_%28graph_theory%29#Finding_maximum_independent_sets
ODPOWIEDZ