Diskrete Mathematik - Cheatsheet.pdf

Diskrete Mathematik - Cheatsheet
Grundlagen von Graphen: Knoten, Kanten, Pfade und Zyklen Definition: Definitionen von Knoten, Kanten, Pfade und Zyklen in Graphen; verwendet in der diskreten Mathematik zur Darstellung und Analyse vernetzter Strukturen. Details: Knoten (V): Grundelement eines Graphen; Repräsentiert Objekte oder Zustände. Kanten (E): Verbindung zwischen zwei Knoten; Repräsentiert Beziehungen oder Übergänge. Pfad: F...

© StudySmarter 2024, all rights reserved.

Grundlagen von Graphen: Knoten, Kanten, Pfade und Zyklen

Definition:

Definitionen von Knoten, Kanten, Pfade und Zyklen in Graphen; verwendet in der diskreten Mathematik zur Darstellung und Analyse vernetzter Strukturen.

Details:

  • Knoten (V): Grundelement eines Graphen; Repräsentiert Objekte oder Zustände.
  • Kanten (E): Verbindung zwischen zwei Knoten; Repräsentiert Beziehungen oder Übergänge.
  • Pfad: Folge von Knoten, bei der jede angrenzende Paarung durch Kanten verbunden ist; bezeichnet auch als Weg.
  • Zyklus: Pfad, der zum Startknoten zurückkehrt ohne Knoten zu wiederholen (außer dem Startknoten).
  • Notation: Ein Graph wird durch \( G = (V, E) \) dargestellt, wobei \( V \) die Menge der Knoten und \( E \) die Menge der Kanten ist.
  • Adjazenzmatrix: \( A = (a_{ij}) \) , wobei \( a_{ij} = 1 \) , wenn Kante zwischen Knoten \( v_i \) und \( v_j \) existiert, sonst\( = 0 \).

Graphenalgorithmen: Tiefensuche (DFS) und Breitensuche (BFS)

Definition:

Tiefensuche (DFS) und Breitensuche (BFS) sind grundlegende Graphsuchalgorithmen, die zur Erkundung und Traversierung von Graphen verwendet werden.

Details:

  • Tiefensuche (DFS):
    • Traversiert Graph durch vollständige Erschöpfung eines Pfads, bevor ein neuer Pfad begonnen wird.
    • Verwendet Stack (LIFO-Prinzip).
    • Rekursive Implementierung möglich.
  • Breitensuche (BFS):
    • Traversiert Graph schichtweise.
    • Verwendet Queue (FIFO-Prinzip).
    • Erster gefundener Pfad in ungewichteten Graphen ist der kürzeste.
  • Komplexität:
    • Beide haben Zeitkomplexität von \(\text{O}(V + E)\), wobei \(\text{V}\) die Anzahl der Knoten und \(\text{E}\) die Anzahl der Kanten ist.
    • Speicherkomplexität bei DFS kann bis zu \(\text{O}(V)\) betragen, wobei \(\text{V}\) die maximale Rekursionstiefe ist.
    • Speicherkomplexität bei BFS \(\text{O}(V)\), erforderlich, um den gesamten Frontlevel der Suche zu speichern.

Inklusions-Exklusions-Prinzip in der Kombinatorik

Definition:

Methode zur Berechnung der Anzahl Elemente in der Vereinigung mehrerer Mengen unter Berücksichtigung von Überlappungen.

Details:

  • Formel für zwei Mengen A und B: \( |A \cup B| = |A| + |B| - |A \cap B| \)
  • Formel für drei Mengen A, B und C: \( |A \cup B \cup C| = |A| + |B| + |C| - |A \cap B| - |A \cap C| - |B \cap C| + |A \cap B \cap C| \)
  • Allgemeine Formel für n Mengen:\[ |A_1 \cup A_2 \cup ... \cup A_n| = \sum_{i=1}^n |A_i| - \sum_{1 \le i < j \le n} |A_i \cap A_j| + \sum_{1 \le i < j < k \le n} |A_i \cap A_j \cap A_k| - ... + (-1)^{n+1} |A_1 \cap A_2 \cap ... \cap A_n| \]

Beweistechniken: Indirekter Beweis, Widerspruchsbeweis und Induktionsbeweis

Definition:

Beweistechniken in der Diskreten Mathematik: Indirekter Beweis, Widerspruchsbeweis und Induktionsbeweis

Details:

  • Indirekter Beweis: Zeige, dass die Negation der Aussage zu einem Widerspruch führt.
  • Widerspruchsbeweis: Gehe von der Richtigkeit der zu widerlegenden Aussage aus und zeige, dass dies zu einem Widerspruch führt.
  • Induktionsbeweis: Nutze die mathematische Induktion, um die Gültigkeit einer Aussage für alle natürlichen Zahlen zu beweisen.
  • Induktionsbasis: Zeige, dass die Aussage für den Startwert (meistens 0 oder 1) gilt.
  • Induktionsschritt: Zeige, dass aus der Gültigkeit der Aussage für einen beliebigen Schritt die Gültigkeit für den nächsten Schritt folgt.
  • Formeln:Induktionsbasis: \(P(0)\) oder \(P(1)\)Induktionsannahme: \(P(k)\) giltInduktionsschritt: \(P(k) \Rightarrow P(k+1)\)

Primzahlen und ihre Eigenschaften: Primzahltests

Definition:

Primzahlen sind Zahlen größer als 1, die nur durch 1 und sich selbst teilbar sind.

Details:

  • Ein Primzahltest überprüft, ob eine Zahl prim ist.
  • Kleine Teilerregel: Eine Zahl ist nicht prim, wenn sie einen Teiler kleiner gleich ihrem Quadratwurzel hat.
  • Miller-Rabin-Test: Probabilistischer Test für große Zahlen.
  • Fermat-Test: Basierend auf Fermat's kleinem Satz.
  • AKS-Algorithmus: Deterministischer, polynomialzeitiger Test.
  • Wenn ein Test keine Teiler findet, ist die Zahl wahrscheinlich prim.

Grundbegriffe der Algorithmenanalyse: Laufzeitanalyse und Big-O-Notation

Definition:

Bestimmt die Effizienz eines Algorithmus hinsichtlich der benötigten Zeit in Abhängigkeit von der Eingabegröße. Big-O-Notation beschreibt das asymptotische Verhalten der Laufzeit.

Details:

  • Big-O-Notation: \(\text{O}(f(n))\)
  • Beschreibt das Wachstumsverhalten einer Funktion im schlimmsten Fall
  • Typische Komplexitätsklassen: \(\text{O}(1)\), \(\text{O}(\text{log } n)\), \(\text{O}(n)\), \(\text{O}(n \log n)\), \(\text{O}(n^2)\), \(\text{O}(2^n)\), \(\text{O}(n!)\)
  • wichtige Begriffe: obere Schranke (worst-case), durchschnittliche Laufzeit (average-case), untere Schranke (best-case)
  • Vergleich von Algorithmen basierend auf deren Komplexitätsklassen

Kongruenzen und modulares Rechnen

Definition:

Werkzeuge zur Lösung und Vereinfachung von Problemen, wo Zahlen nach einem bestimmten Modul betrachtet werden.

Details:

  • Kongruenz: \(a \equiv b \pmod{m}\) bedeutet, dass \(a - b\) durch \(m\) teilbar ist.
  • Eigenschaften: Reflexivität, Symmetrie, Transitivität.
  • Arithmetik: Addition, Subtraktion, Multiplikation (jeweils modulo m).
  • Modulo-Operator: \(a \% m\) gibt den Rest, wenn \(a\) durch \(m\) geteilt wird.
  • Exponentiation: \(a^b \mod m\) effizient mit Modularexponentiation berechnen.

Algorithmendesign-Paradigmen: Greedy-Methoden, Divide and Conquer und dynamische Programmierung

Definition:

Algorithmenansätze zur Lösung komplexer Probleme.

Details:

  • Greedy-Methoden: Wähle Schrittweise die beste Option, basierend auf einer lokalen Heuristik.
  • Divide and Conquer: Zerteile das Problem in kleinere, einfachere Teilprobleme, löse diese rekursiv und kombiniere die Lösungen.
  • Dynamische Programmierung: Zerlege Problem in überlappende Teilprobleme, speichere bereits berechnete Teillösungen zur Vermeidung doppelter Berechnungen.
Sign Up

Melde dich kostenlos an, um Zugriff auf das vollständige Dokument zu erhalten

Mit unserer kostenlosen Lernplattform erhältst du Zugang zu Millionen von Dokumenten, Karteikarten und Unterlagen.

Kostenloses Konto erstellen

Du hast bereits ein Konto? Anmelden