Do czego grafy, drzewa?

0

Jak w temacie, mamy na AiSD różne algorytmy związane z drzewami, grafami. Czy takie rzeczy się wykorzystuje przy programowaniu jakiś aplikacji biurowych czy grach? Jak często? Czy to po prostu jakaś fanaberia fanatyków algorytmicznych

0

algorytmy oparte na grafach znajdują wiele praktycznych zastosowań. Przykładowo, możliwość szybkiego wyliczenia najkrótszej drogi przez komputer jest zastosowana w samochodowych GPSach. Wiem, że większość osób czytających ten artykuł to amatorzy programowania gier. Również w tej dziedzinie grafy są nam niezwykle pomocne. Wyobraźmy sobie, że piszemy sztuczną inteligencję postaci sterowanej przez komputer i chcemy by postać ta była w stanie odnaleźć najkrótszą drogę między jakimiś punktami nie wpadając po drodze na ściany, czy inne przeszkody. Wystarczy w odpowiedni sposób przedstawić mapę gry jako graf. Analogicznie możemy zaprogramować inteligentny pocisk omijający przeszkody, albo komputerowego przeciwnika w jakiejś samochodówce.

0
By.Future napisał(a):

Jak w temacie, mamy na AiSD różne algorytmy związane z drzewami, grafami. Czy takie rzeczy się wykorzystuje przy programowaniu jakiś aplikacji biurowych czy grach? Jak często? Czy to po prostu jakaś fanaberia fanatyków algorytmicznych

To co jest na AiSD na uczelni to totalne podstawy jeśli chodzi o AiSD w ogólności. Świat nie kończy się na sortowaniu bąbelkowym. Oczywiście jeśli pójdziesz programować aplikacje biznesowe to zwykle twój repertuar algorytmiczny będzie się ograniczał do:

  • iterowania po kolekcji,
  • dodawania lub usuwania z kolekcji,
  • podstawowych działań (dodawanie, odejmowanie, dzielenie, mnożenie),
  • gettery/ settery,
    Przy czym podstawowe kolekcje są już gotowe, a takie których nie ma w bibliotece standardowej są bardzo rzadko zupełnie niezbędne. Do tego otwieranie zasobów i parsowanie danych. Słowem - nuda.

Poza tym w bibliotece standardowej jest zaimplementowane sporo z podstawowych AiSD. Dla przykładu:

  • tree mapy/ sety - to są zwykle drzewa czerwono-czarne lub AVLe,
  • kolejki priorytetowe - kopce binarne,
  • sortowanie - zwykle wariacje mergesorta lub quicksorta,
  • hash mapy/ sety - tablice mieszające (jak sama nazwa wskazuje),

Jeśli chodzi o grafy, to grafy robisz za każdym razem jak programujesz, a dokładniej to robisz grafy obiektów. Garbage Collector musi implementować jakieś algorytmy grafowe, żeby móc działać. Algorytmy wyszukiwania ścieżki w grafie wykorzystuje się przede wszystkim w grach.

1 użytkowników online, w tym zalogowanych: 0, gości: 1