Seminar - Cheatsheet.pdf

Seminar - Cheatsheet
Formale Sprachen und Automaten Definition: Mathematikbasierte Systeme zur Beschreibung und Analyse von Sprachen und Automaten. Zentral für die Theoretische Informatik, speziell zur Sprachverarbeitung und zur Untersuchung von Berechenbarkeiten. Details: Formale Sprachen: Mengen von Zeichenfolgen, definiert durch formale Grammatiken. Automaten: Abstrakte Maschinen, die auf Eingaben reagieren, z.B. D...

© StudySmarter 2024, all rights reserved.

Formale Sprachen und Automaten

Definition:

Mathematikbasierte Systeme zur Beschreibung und Analyse von Sprachen und Automaten. Zentral für die Theoretische Informatik, speziell zur Sprachverarbeitung und zur Untersuchung von Berechenbarkeiten.

Details:

  • Formale Sprachen: Mengen von Zeichenfolgen, definiert durch formale Grammatiken.
  • Automaten: Abstrakte Maschinen, die auf Eingaben reagieren, z.B. DFA (Deterministische Endliche Automaten), NFA (Nichtdeterministische Endliche Automaten) und PDA (Kellerautomaten).
  • Grammatiktypen (Chomsky-Hierarchie): Typ-0 (rekursiv aufzählbar), Typ-1 (kontextsensitiv), Typ-2 (kontextfrei), Typ-3 (regulär).
  • \textbf{Reguläre Ausdrücke} für reguläre Sprachen.
  • \textbf{Pumping-Lemma} zur Identifikation nicht-regulärer Sprachen.

Komplexitätstheorie

Definition:

Untersuchung der Effizienz von Algorithmen bezüglich ihrer benötigten Ressourcen wie Zeit und Speicher.

Details:

  • Komplexitätsklassen: P, NP, NP-komplett, NP-schwer
  • Zeitkomplexität: O(f(n)), Ω(f(n)), Θ(f(n))
  • Raumkomplexität
  • Reduktionen und Vollständigkeit
  • Polynomialzeitreduktion

Algorithmenanalyse

Definition:

Evaluation der Effizienz von Algorithmen in Bezug auf Zeit- und Platzkomplexität.

Details:

  • Asymptotische Notationen: \(O(f(n))\), \(\Omega(f(n))\), \(\Theta(f(n))\)
  • Best Case, Average Case, Worst Case Analyse
  • Wichtige Klassen: \(P\), \(NP\), \(NP\)-vollständig, \(NP\)-schwer
  • Divide and Conquer, Dynamic Programming und Greedy-Algorithmen
  • Amortisierte Analyse: Durchschnittliche Kosten über eine Sequenz von Operationen
  • Analyse von Rekursionsgleichungen mittels Master-Theorem

Objektorientierte Programmierung

Definition:

Konzepte und Paradigmen zur Modellierung und Entwicklung von Software mithilfe von Objekten.

Details:

  • Klassen und Objekte: Klasse = Bauplan, Objekt = Instanz
  • Kapselung: Zugangskontrolle durch public/private/protected
  • Vererbung: Ableitung von Klassen \rightarrow Wiederverwendbarkeit
  • Polymorphie: Methoden können überladen/überschrieben werden
  • Abstraktion: Reduktion der Komplexität durch Modelle

SQL-Datenbanken

Definition:

Relationale Datenbankenverwaltungssysteme, die SQL (Structured Query Language) nutzen zur Definition, Manipulation und Abfrage von Daten.

Details:

  • Primärschlüssel (Primary Key): Eindeutige Identifikation jeder Zeile in einer Tabelle.
  • Fremdschlüssel (Foreign Key): Verknüpft Zeilen zwischen Tabellen.
  • Normalisierung: Prozess zur Strukturierung einer Datenbank, um Redundanz zu minimieren.
  • Wichtige SQL-Befehle:
    • SELECT: Daten abfragen.
    • INSERT: Daten einfügen.
    • UPDATE: Daten aktualisieren.
    • DELETE: Daten löschen.
  • Anfragen mit Bedingungen: SELECT ... FROM ... WHERE ...
  • Joins: Tabellen zusammenführen, z.B. INNER JOIN, LEFT JOIN.

Entwurfsmuster

Definition:

Wiederverwendbare Lösung für häufig auftretende Probleme in der Softwareentwicklung.

Details:

  • Erleichtern Kommunikation zwischen Entwicklern.
  • Unterteilen in Erzeugungsmuster, Strukturmuster und Verhaltensmuster.
  • Beispiele: Singleton, Factory, Observer.
  • Reduzieren Komplexität und erhöhen Wartbarkeit des Codes.

Maschinelles Lernen

Definition:

Ein Teilgebiet der künstlichen Intelligenz, bei dem Algorithmen aus Daten lernen, ohne explizit programmiert zu werden.

Details:

  • Arten: überwachtes Lernen, unüberwachtes Lernen, bestärkendes Lernen
  • Wichtige Modelle: Entscheidungsbäume, Neuronale Netze, Support Vector Machines
  • Grundlage: Training mit einem Datensatz, Validierung und Testen
  • Wichtige Begriffe: Trainingsdaten, Testdaten, Validierungsdaten
  • Fehlermetriken: Mean Squared Error, Accuracy, Precision, Recall
  • Verfahren: Gradient Descent, Backpropagation
  • Wichtige Bibliotheken: TensorFlow, PyTorch, Scikit-Learn

Künstliche Neuronale Netze

Definition:

Künstliche Neuronale Netze (KNN) sind Modelle der Informatik, die auf das Verhalten von biologischen neuronalen Netzen basieren, genutzt für maschinelles Lernen und Künstliche Intelligenz.

Details:

  • Bestehen aus Schichten: Eingabeschicht, verborgene Schichten, Ausgabeschicht
  • Jeder Knoten (Neuron) berechnet eine gewichtete Summe der Eingaben und wendet eine Aktivierungsfunktion an
  • Häufige Aktivierungsfunktionen: Sigmoid, ReLU, Tanh
  • Training durch Anpassung der Gewichte mittels Backpropagation und Optimierungsalgorithmen (z.B. Gradient Descent)
  • KNN-Arten: Feedforward-Netze, Rekurrente Netze, Convolutional Neural Networks (CNN)
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