Log, polynominal Funktion aufsteigend sortieren

Aufrufe: 747     Aktiv: 15.01.2021 um 14:33

0

Hallo zusammen

Wenn ich so eine Reihe sortieren muss, setze ich für n = 4 und schaue, was ich für Werte erhalte und sortiere es nach dem Wert. Aber wenn man keinen TA hat, wie sollte man hier vorgehen?

 

 

Vielen Dank!

 

 

Diese Frage melden
gefragt

Student, Punkte: 205

 
Kommentar schreiben
1 Antwort
2

Hallo sayuri,

du irrst dich .... leider reicht es nicht aus lediglich \(n=4\) einzusetzen. Theoretische reicht es auch nicht aus \(n=100\) einzusetzen. Du musst überlegen, welche Ausdrücke für sehr sehr große \(n\) größer werden als die anderen. Das geht auch gut ohne Taschenrechner. 

Sagt dir zufällig die Landau-Notation aus der theoretischen Informatik etwas? Dabei geht es zum Beispiel um die maximale Laufzeit, die ein Algorithmus braucht um im Worst-Case zu enden. Man sagt ein Algorithmus ist \(\in \mathcal{O} (n^k)\), wenn dieser eine polynomielle maximale Laufzeit hat. Beziehungsweise ist der Algorithmus \(\in \mathcal{O} (\log(n))\), wenn dieser eine logarithmische maximale Laufzeit hat. 

Der Gedanke dahinter ist wie folgt: Es werden sich Klassen von Funktionen überlegt, welche für sehr große \(n\) immer in einer Komplexitätsklasse sind. Dabei gilt folgende aufsteigende Reihenfolge für die verschiedenen Funktionsklassen:

\(a< \log(n) < \sqrt{n} <n < n\cdot \log(n) < n\cdot \log^2(n) <\ldots <n\cdot \log^k (n) < n^2 < n^2 \cdot \log(n) <n^3 < \ldots n^k < n^k \cdot \log(n) < 2^n < 3^n < \ldots <a^n <n! <n^n\)

Dabei soll \(a\) immer als beliebige Konstante stehen. Generell haben konstante Faktoren immer keinen Einfluss darauf die Klasse der Funktion zu beeinflussen. So sind \(2^n, 100 \cdot 2^n, \dfrac{1}{2021} \cdot 2^n \in \mathcal{O} (2^n)\) aber \(10\cdot 3^n \in \mathcal{O} (3^n)\). Lediglich wenn zwei Funktionen der selben Klasse angehören, wird anhand der Faktoren verglichen welche größer ist.

Jetzt würd ich dir empfehlen einige Terme noch etwas umzustellen und zu vereinfachen, damit du besser erkennen kannst welcher Komplexitätsklasse sie angehören (z.B. \(4\cdot 16^{n/2}\)). Du kannst deine Lösungen auch gerne dann noch mit hochladen und wir schauen nochmal drüber, ob deine Sortierung so stimmt.

Hier ist noch ein Link, der die Komplexitätsklassen etwas erläutert:https://www.dbs.ifi.lmu.de/Lehre/NFInfoSW/WS0708/Skript/Folien09.pdf

 

Hoffe ich konnte dir weiter helfen.

 

Diese Antwort melden
geantwortet

Punkte: 8.84K

 

Ja, die Landau-Notation kenne ich :). Woow maqu vielen herzlichen Dank für deine ausführliche Antwort! Kennst du dich zufälligerweise mit subsitutionsmethode T (n) = T (n=5) + 2T (2n=5) + Θ(n) mit solchen Termen aus? Ich werde in Kürze meine Lösung hochladen, kannst du dann darüber schauen, ob es stimmt?   ─   sayuri 09.01.2021 um 11:03

Meinst du zufällig das Master-Theorem?   ─   maqu 09.01.2021 um 11:07

Hab meine Lösung hochgeladen. Nicht ganz Master Theorem hat ja die Struktur T(n) = aT(n/b) + c. Dann gibt es eben noch die substitutions methode, welche dabei hilft solche Terme zu lösen.

Zur meiner Lösung noch: Nur die letzte Zeile habe ich berechnet, die anderen habe ich mittels deiner Reihenfolge definiert. Das einzige, was ich mir nicht sicher bin ist sqrt(n) = n^1/2 sehr wahrscheinlich kommt es vor n^4
  ─   sayuri 09.01.2021 um 11:11

Hmm sagt mir jetzt nichts ich kenn nur das Master-Theorem .... aber ich kann nachher nochmal schauen, vllt finde ich was dazu .... die Wurzelterme kommen zwischen die logarithmischen und linearen Terme (siehe meine Antwort :) ). Es gilt \(\ldots < \log(n) < \ldots < \log^k(n) < \sqrt[k]{n} < \ldots <\sqrt{n} < n < n \cdot \log(n) <\ldots ....\)

Der Rest sieht soweit gut aus ;)
  ─   maqu 09.01.2021 um 11:36

super, danke!!! Die letzte Zeile habe ich auch richtig berechnet?   ─   sayuri 09.01.2021 um 11:37

Immer gern :) ... Jap stimmt so ist in \(\mathcal{O}(4^n)\) mit Vorfaktor 4 ;)   ─   maqu 09.01.2021 um 11:56

cool super, danke! eine weitere Frage kennst du dich mit Rekursion aus?   ─   sayuri 09.01.2021 um 12:00

oh man @sayuri tut mir Leid Berechenbarkeit ist lange hergewesen :D ... also meinst du vielleicht die Methode, dass man sich dieses Rekursionsbaum aufstellt, dann eine Vermutung daran aufstellt und diese mit Hilfe von Induktion beweis, oder so ähnlich? .... Wenn ja :D .... da habe ich mich damals selbst durch ein Beispiel gequält .... leider ist davon nicht mehr so viel hängen geblieben wie von den Komplexitätsklassen oder vom Master-Theorem. Aber habe mal etwas heraus gesucht, was dir vielleicht weiter helfen könnte:
https://moves.rwth-aachen.de/wp-content/uploads/SS15/dsal/Loesung3.pdf
https://www2.informatik.uni-hamburg.de/fachschaft/wiki/images/3/3e/AD-Skript_%28WS16-17%29.pdf
Habe leider jetzt nicht die Zeit mich da wieder einzuarbeiten >.<, aber ich hoffe das hilft dir vielleicht weiter.
  ─   maqu 09.01.2021 um 14:10

genau maqu!!! super, vielen herzlichen Dank. Ein andere Frage, weisst du wie man bei solchen Aufgaben vorgeht?

Restaurant placement. Justin Bieber has surprisingly decided to open a series of
restaurants along the highway between Geneva and Bern. The n possible locations are along a
straight line, and the distances of these locations from the start of the highway in Geneva are,
in kilometers and in arbitrary order, m1; m2; : : : ; mn. The constraints are as follows:
ˆ At each location, Justin may open at most one restaurant. The expected prot from
opening a restaurant at location i is pi, where pi > 0 and i = 1; 2; : : : ; n.
ˆ Any two restaurants should be at least k kilometers apart, where k is a positive integer.
As Justin is not famous for his algorithmic skills, he needs your help to nd an optimal solution,
i.e., design and analyze an ecient algorithm to compute the maximum expected total prot
subject to the given constraints
  ─   sayuri 09.01.2021 um 14:58

Hey sayuri sry für die späte Antwort :D ... also gelöst bekomme ich es nicht aber wenn du es zufällig mit dieser rekursion (mit Baum, Vermutung und Induktionsvoraussetzung) lösen sollst hätte ich vllt wenigstens einen Ansatz: dadurch das du Variablen \(m_i, p_i,k\) und \(n\) für dein Problem hast und keine expliziten Werte dafür, kann ich mir vorstellen, dass du einen Algorithmus in pseudocode mit einem rekursiven Aufruf angeben sollst, wovon du die Laufzeit in mit Hilfe der rekursionsvorschrift aufstellen sollst .... dann machst du deinen Baum, stellst die Vermutung auf und beweist diese .... das wäre aber nur mein ansatz^^bedeutet nicht zwingend das das richtig sein muss .... würde aber meiner Meinung nach nahe liegen, wenn du dich gerade mit dieser rekursion von Laufzeiten bei algorithmen herumschlägst ... ich glaube mehr kann ich dir da auch nicht wirklich helfen, ist zu lange her bei mir .... ansonsten stell die Frage dazu nochmal separat hier im Forum oder auf Informatik-fragen.de ;) ... hoffe das hilft dir weiter :)   ─   maqu 10.01.2021 um 13:42

Hey maqu, vielen herzlichen Dank, dass du daran gedacht hast und versuchst zu erklären!!! Bei Informatik-fragen.de erhält man nicht soo schnell die Antwort...leider   ─   sayuri 10.01.2021 um 23:49

Man gibt sein bestes :D   ─   maqu 11.01.2021 um 00:00

heheh :) vielleicht weisst du das gerade, folgende Fragen habe ich. Vlt hast du meine Posts gesehen..

Hast du ne Idee, wo man das nachschlagen kann? Es gibt immer die Theorie, wie sie funktionieren, aber wann und wo man die einsetzt, wird irgendwie in der Vorlesung nie erwähnt.
Gibt hierzu ein Beispiel, welches Algorithmen für welche Probleme angewendet werden? Bei welchen Fragenstellungen werden diese Algos verwendet?

Shortest Problem: Dijkstra, Bellman-Ford
Merge Sort, Insertion Sort, Quicksort?
Flow Problem: Ford Fulkerson
Max-Heap
Strassen'smatrix
Binary Search, BST, hash Table
Union Find, priortiy queue, Linked List
Max-flow, Min cut, probabilitstic analysis
Minimum Spanning Tree (Kruskal, Prims)

Vielen Dank!




  ─   sayuri 14.01.2021 um 22:56

@sayuri das ist tatsächlich schwer zu beantworten ... ich kann dir aber ein paar Literaturempfehlungen geben, welche ich damals als sehr hilfreich empfand:
Algorithmen kompakt und verständlich (Markus von Rimscha)
Algorithmen - kurz gefasst (Uwe Schöning)
Theoretische Informatik - kurz gefasst (Uwe Schöning) (hat damit wenig zu tun, ist aber ein gutes Buch :))
Taschenbuch der Algorithmen (Vöcking et.al)
Gerade die Bücher von Uwe Schöning sind zwar etwas älter aber mit einigen hilfreichen Beispielen und Beweisen verwesen. Diese habe ich selbst sogar noch im Schrank stehen :D. Die gibt es bei medimops und co. auch für den kleinen Geldbeutel des Studenten gebraucht zu kaufen ;)
Hoffe damit kannst du etwas anfangen :)
  ─   maqu 15.01.2021 um 00:37

danke dir maqu :) werde mal nachsehen!   ─   sayuri 15.01.2021 um 14:33

Kommentar schreiben