Preskoči na glavno vsebino
 
To je arhiv spletne učilnice za leto 2021/22. Aktualna spletna učilnica je na naslovu https://ucilnica.fmf.uni-lj.si
Učilnica 21/22
  • Slovenščina ‎(sl)‎
    English ‎(en)‎ Slovenščina ‎(sl)‎
Trenutno uporabljate gostujoči dostop (Prijavite se)

Računalništvo 2

  1. Domov
  2. Predmeti
  3. Praktična matematika
  4. 3. letnik
  5. RAČ2
  6. Vaje 21_22
  7. Vaje 3. 3. (Dinamično programiranje 3)

Vaje 3. 3. (Dinamično programiranje 3)

Zahteve zaključka
Odprto: sreda, 2 marec 2022, 00:00 AM
Rok za oddajo: četrtek, 10 marec 2022, 20:00 PM

Na teh vajah se boste v skupinah lotili dveh problemov z dinamičnim programiranjem.

Vse skupine bojo imele za nalogo:

  1. opisati idejo (z vašimi besedami),
  2. zapisati Bellmanovo enačbo,
  3. Implementirati zahtevane funkcije.
  4. Analiza časovne zahtevnosti
  5. Prikaz izvajanja na testnih primerih (Lahko tudi simulirate izvajanje na različnih velikostih in nato vizualizirate rezultate z npr matplotlib

Na zadnji uri vaj boste kolegom predstavili, do kje ste prišli. Za poročilo (na kratko!) opišite idejo algoritma in Bellmanovo enačbo, ter pripnite končno implementacijo ter rezultate izvajanja na testnih primerih. Poleg tega razmislite tudi, kako jasna je bila predstavitev druge skupine (napišite 1-2 stvari, ki sta bili dobri, ter 1-2 stvari, ki bi jih lahko izboljšali).

Izbira intervalov (z utežmi)

Podan imate seznam intervalov z utežmi: (z_i, k_i, d_i) (začetek, konec in dobiček), ki predstavljajo naloge, ki jih lahko opravite (in kolikšno nagrado dobite, če jih opravite). Vaša naloga je, da ugotovite, katere naloge se vam najbolj izplača opraviti, pri čemer lahko hkrati delate na samo eni nalogi (intervali se ne smejo prekrivati).

  • https://en.wikipedia.org/wiki/Activity_selection_problem
  • https://en.wikipedia.org/wiki/Interval_scheduling
  • https://www.cs.princeton.edu/~wayne/kleinberg-tardos/pearson/04GreedyAlgorithms-2x2.pdf
  • https://www.geeksforgeeks.org/weighted-job-scheduling/

Levenshteinova razdalja

Levenshteinova razdalja med dvema nizoma je definirana kot najmanjše število sprememb, potrebnih da pretvorimo en niz v drugega, pri čemer so dovoljene spremembe: vstavljanje, brisanje, ali zamenjava enega samega znaka. Sestavi funkcijo, ki za dana dva niza izračuna Levenshteinovo razdaljo med njima. Primer: Levenshteinova razdalja med nizoma "ornitologija" in "otorinolaringolog" je 12.

  • http://rosettacode.org/wiki/Levenshtein_distance
  • http://en.wikipedia.org/wiki/Levenshtein_distance
  • http://wiki.fmf.uni-lj.si/wiki/Levenshteinova_razdalja
  • http://www-igm.univ-mlv.fr/~lecroq/seqcomp/node2.html (lepa animacija)


Vsota podmnožic

Imamo seznam celih števil A ter celo število s. Zanima nas, ali obstaja podmnožica množice A, tako da je vsota njenih elementov enaka s. Sestavite funkcijo, ki odgovori na to vprašanje. Kaj pa če nas zanima število takih podmnožic?

Kaj pa, če poleg A in s poznamo še pozitivno število k. Sedaj nas zanima, ali obstajajo podmnožice A_1, ..., A_k, kjer so med seboj disjunktne njihova unija pa je množica A. Poleg tega mora biti vsota vsake podmnožice A_i enaka s. Sestavite funkcijo, ki odgovori na to vprašanje.

  • https://www.geeksforgeeks.org/subset-sum-problem-dp-25/
  • https://ucilnica.fmf.uni-lj.si/pluginfile.php/58726/mod_resource/content/0/Algorithms-JeffE-dec2018.pdf
  • https://en.wikipedia.org/wiki/Subset_sum_problem



◄ Vaje 24.2.2022 Dinamično programiranje 2
Vaje1 0.3.2022 podzaporedja ►
Preskoči Navigacija
Navigacija
  • Domov

    • Strani spletnega mesta

      • Moji predmeti

      • Oznake

    • Moji predmeti

    • Predmeti

      • Praktična matematika

        • 1. letnik

        • 2. letnik

        • 3. letnik

          • MM (PRA)

          • MEH

          • NUM2 (PRA)

          • PDE (PRA)

          • PB1

          • PU

          • PROG3

          • RAČ1

          • RAČ2

            • Splošno

            • Vaje 21_22

              • NalogaVaje 17. 2 (Dinamično programiranje uvod)

              • NalogaVaje 24.2.2022 Dinamično programiranje 2

              • NalogaVaje 3. 3. (Dinamično programiranje 3)

              • NalogaVaje1 0.3.2022 podzaporedja

              • NalogaVaje 17.3.2022 Floyd Warshall

              • NalogaVaje 24.3.2022 Dijkstrov algoritem

              • NalogaVaje 31.3.2022 Bellman Ford, A*

              • NalogaTekmovanje 31.3.2022 Iskanje najkrajših poti

              • NalogaVaje 7.4.2022 Minimalna vpeta drevesa

              • NalogaVaje 14.4.2022 Minimalna vpeta drevesa 2

              • NalogaVaje 21.4.2022 Zgoščevalne funkcije

              • NalogaZaključna oddaja poročil

            • Seminarska naloga

            • O algoritmih in Strategije razvoja algoritmov

            • Dinamično programiranje - splošno

            • Dinamično programiranje - Matrično množenje

            • Dinamično programiranje - podzaporedja

            • Problem najkrajših poti

            • Dinamično programiranje - najkrajše poti

            • Problem najkrajših poti - Dijkstra

            • Najkrajše poti - Bellman Ford / A*

            • Minimalno vpeto drevo (MVD)

            • Zgoščena tabela / Zgoščevalna funkcija

            • Za konec ...

        • ŠTUD (PRA)

      • Matematika

      • Finančna matematika

      • Pedagoška matematika

      • IŠRM

      • Fizika

      • Aplikativna fizika

      • Fizikalna merilna tehnika

      • Zunanji predmeti

      • Razno

Trenutno uporabljate gostujoči dostop (Prijavite se)
RAČ2
  • Slovenščina ‎(sl)‎
    • English ‎(en)‎
    • Slovenščina ‎(sl)‎
Povzetek hrambe podatkov
Pridobi mobilno aplikacijo