×
1 Wählen Sie EITC/EITCA-Zertifikate
2 Online-Prüfungen lernen und ablegen
3 Lassen Sie sich Ihre IT-Kenntnisse zertifizieren

Bestätigen Sie Ihre IT-Fähigkeiten und -Kompetenzen im Rahmen des europäischen IT-Zertifizierungsrahmens von überall auf der Welt vollständig online.

EITCA-Akademie

Zertifizierungsstandard für digitale Fähigkeiten des European IT Certification Institute mit dem Ziel, die Entwicklung der digitalen Gesellschaft zu unterstützen

LOGGEN SIE SICH IN IHR KONTO EIN

EIN KONTO ERSTELLEN PASSWORT VERGESSEN?

PASSWORT VERGESSEN?

AAH, warten, ich erinnere mich jetzt!

EIN KONTO ERSTELLEN

HAST DU SCHON EIN KONTO?
EUROPÄISCHE ZERTIFIZIERUNGSAKADEMIE FÜR IT - BESCHEINIGUNG IHRER PROFESSIONELLEN DIGITALEN FÄHIGKEITEN
  • ANMELDEN
  • ANMELDEN
  • INFOS

EITCA-Akademie

EITCA-Akademie

Das European Information Technologies Certification Institute - EITCI ASBL

Zertifizierungsanbieter

EITCI Institut ASBL

Brüssel, Europäische Union

Der Rahmen für die europäische IT-Zertifizierung (EITC) zur Unterstützung der IT-Professionalität und der digitalen Gesellschaft

  • ZERTIFIKATE
    • EITCA-AKADEMIEN
      • EITCA ACADEMIES KATALOG<
      • EITCA/CG COMPUTERGRAFIKEN
      • EITCA/IST INFORMATIONSSICHERHEIT
      • EITCA/BI-GESCHÄFTSINFORMATIONEN
      • EITCA/KC-SCHLÜSSELKOMPETENZEN
      • EITCA/EG E-REGIERUNG
      • EITCA/WD-WEBENTWICKLUNG
      • EITCA/AI KÜNSTLICHE INTELLIGENZ
    • EITC-ZERTIFIKATE
      • EITC-ZERTIFIKATSKATALOG<
      • COMPUTERGRAFIK-ZERTIFIKATE
      • WEBDESIGN-ZERTIFIKATE
      • 3D-DESIGN-ZERTIFIKATE
      • BÜRO IT-ZERTIFIKATE
      • BITCOIN BLOCKCHAIN-ZERTIFIKAT
      • WORDPRESS-ZERTIFIKAT
      • CLOUD-PLATTFORM-ZERTIFIKATNEU
    • EITC-ZERTIFIKATE
      • INTERNET-ZERTIFIKATE
      • CRYPTOGRAPHY-ZERTIFIKATE
      • BUSINESS IT-ZERTIFIKATE
      • TELEWORK-ZERTIFIKATE
      • PROGRAMMIERZERTIFIKATE
      • DIGITAL PORTRAIT ZERTIFIKAT
      • ZERTIFIKATE FÜR DIE WEBENTWICKLUNG
      • TIEFE LERNZERTIFIKATENEU
    • ZERTIFIKATE FÜR
      • ÖFFENTLICHE VERWALTUNG DER EU
      • LEHRER UND BILDER
      • IT-SICHERHEITSPROFIS
      • GRAFIKDESIGNER & KÜNSTLER
      • GESCHÄFTSFÜHRER UND MANAGER
      • BLOCKCHAIN ​​ENTWICKLER
      • WEB-ENTWICKLER
      • CLOUD AI EXPERTENNEU
  • EMPFOHLEN
  • SUBVENTION
  • WIE FUNKTIONIERT ES?
  •   IT ID
  • ÜBER UNS
  • Kontakt
  • MEINE BESTELLUNGEN
    Ihre aktuelle Bestellung ist leer.
EITCIINSTITUTE
CERTIFIED

Grundlagen der EITC/IS/CCTF Computational Complexity Theory

by EITCA-Akademie / Montag, 03 Mai 2021 / Veröffentlicht in

Aktueller Status

Nicht eingeschrieben
Melden Sie sich für dieses Programm an, um Zugriff zu erhalten

Preis

€85.00

Loslegen

Melden Sie sich für diese Zertifizierung an

EITC/IS/CCTF Computational Complexity Theory Fundamentals ist das europäische IT-Zertifizierungsprogramm zu theoretischen Aspekten der Grundlagen der Informatik, die auch eine Grundlage der im Internet weit verbreiteten klassischen asymmetrischen Public-Key-Kryptographie sind.

Der Lehrplan der EITC/IS/CCTF Computational Complexity Theory Fundamentals umfasst theoretisches Wissen zu den Grundlagen der Informatik und Computermodellen zu grundlegenden Konzepten wie deterministischen und nichtdeterministischen Finite-State-Maschinen, regulären Sprachen, kontextfreier Grammatik und Sprachtheorie, Automatentheorie, Turingmaschinen, Entscheidbarkeit von Problemen, Rekursion, Logik und Komplexität der Algorithmik für grundlegende Sicherheitsanwendungen innerhalb der folgenden Struktur und umfasst umfassende und strukturierte Selbstlernmaterialien zum EITCI-Zertifizierungslehrplan, unterstützt durch referenzierte Open-Access-Video-Didaktikinhalte als Grundlage für die Vorbereitung auf den Erwerb dieser EITC-Zertifizierung durch Bestehen einer entsprechenden Prüfung.

Die Rechenkomplexität eines Algorithmus ist die Menge an Ressourcen, die für seinen Betrieb erforderlich sind. Zeit- und Speicherressourcen werden besondere Aufmerksamkeit gewidmet. Die Komplexität eines Problems ist definiert als die Komplexität der besten Algorithmen zu deren Lösung. Die Analyse von Algorithmen ist das Studium der Komplexität explizit gegebener Algorithmen, während die Computational Complexity Theory das Studium der Komplexität von Problemlösungen mit den bekanntesten Algorithmen ist. Beide Domänen sind miteinander verflochten, da die Komplexität eines Algorithmus immer eine obere Beschränkung der Komplexität des von ihm gelösten Problems ist. Darüber hinaus ist es bei der Konstruktion effizienter Algorithmen häufig erforderlich, die Komplexität eines bestimmten Algorithmus mit der Komplexität des zu lösenden Problems zu vergleichen. In den meisten Fällen ist die einzige verfügbare Information bezüglich der Schwierigkeit eines Problems, dass sie geringer ist als die Komplexität der effizientesten bekannten Techniken. Infolgedessen gibt es viele Überschneidungen zwischen der Algorithmusanalyse und der Komplexitätstheorie.

Die Komplexitätstheorie spielt nicht nur bei der Grundlagenermittlung von Rechenmodellen als Grundlage für die Informatik eine wichtige Rolle, sondern auch bei den Grundlagen der klassischen asymmetrischen Kryptographie (sog. Public-Key-Kryptographie), die in modernen Netzwerken, insbesondere im Internet, weit verbreitet ist. Die Public-Key-Verschlüsselung basiert auf rechnerisch schwierigen bestimmten asymmetrischen mathematischen Problemen wie zum Beispiel der Faktorisierung großer Zahlen in ihre Primfaktoren (diese Operation ist ein schwieriges Problem in der Klassifikation der Komplexitätstheorie, da keine effizienten klassischen Algorithmen bekannt sind, die gelöst werden müssen es mit einer polynomiellen Skalierung der Ressourcen statt einer exponentiellen Skalierung mit der Zunahme der Eingabegröße des Problems, was im Gegensatz zu einer sehr einfachen umgekehrten Operation der Multiplikation mit bekannten Primfaktoren steht, um die ursprüngliche große Zahl zu erhalten). Unter Verwendung dieser Asymmetrie in einer Architektur der Public-Key-Kryptographie (durch Definieren einer rechnerisch asymmetrischen Beziehung zwischen dem öffentlichen Schlüssel, der leicht aus einem privaten Schlüssel berechnet werden kann, während der private Schlüssel nicht einfach aus einem öffentlichen Schlüssel computergesteuert werden kann, kann man öffentlich den öffentlichen Schlüssel bekannt geben und anderen Kommunikationsseiten ermöglichen, ihn zur asymmetrischen Verschlüsselung von Daten zu verwenden, die dann nur noch mit dem gekoppelten privaten Schlüssel entschlüsselt werden können, rechnerisch nicht für Dritte verfügbar, wodurch die Kommunikation sicher wird).

Die Computational Complexity Theory wurde hauptsächlich auf den Errungenschaften von Pionieren der Informatik und der Algorithmik entwickelt, wie Alan Turing, dessen Arbeit entscheidend dazu beigetragen hat, die Enigma-Chiffre von Nazi-Deutschland zu knacken, die eine entscheidende Rolle beim Sieg der Verbündeten im Zweiten Weltkrieg spielte. Kryptoanalyse, die darauf abzielt, die Rechenprozesse der Datenanalyse (hauptsächlich verschlüsselte Kommunikation) zu entwickeln und zu automatisieren, um die versteckten Informationen aufzudecken, wurde verwendet, um kryptografische Systeme zu durchbrechen und Zugang zu den Inhalten der verschlüsselten Kommunikation zu erhalten, die normalerweise von strategischer militärischer Bedeutung ist. Es war auch die Kryptoanalyse, die die Entwicklung der ersten modernen Computer katalysierte (die ursprünglich auf das strategische Ziel des Codeknackens angewendet wurden). Dem britischen Koloss (der als erster moderner elektronischer und programmatischer Computer gilt) ging die polnische „Bombe“ voraus, ein elektronisches Rechengerät, das von Marian Rejewski entwickelt wurde, um beim Brechen der Enigma-Chiffren zu helfen, und vom polnischen Geheimdienst zusammen mit . an Großbritannien übergeben wurde die erbeutete deutsche Enigma-Verschlüsselungsmaschine, nachdem Polen 1939 von Deutschland überfallen wurde. Auf der Grundlage dieses Geräts entwickelte Alan Turing sein fortschrittlicheres Gegenstück, um die deutsche verschlüsselte Kommunikation erfolgreich zu brechen, die später zu modernen Computern weiterentwickelt wurde.

Da die zum Ausführen eines Algorithmus erforderliche Ressourcenmenge mit der Größe der Eingabe variiert, wird die Komplexität normalerweise als Funktion f(n) ausgedrückt, wobei n die Eingabegröße und f(n) entweder die Worst-Case-Komplexität ( die maximal erforderliche Ressourcenmenge über alle Inputs der Größe n) oder die durchschnittliche Fallkomplexität (der Durchschnitt der Ressourcenmenge über alle Inputs der Größe n). Die Anzahl der erforderlichen elementaren Operationen an einer Eingabe der Größe n wird allgemein als Zeitkomplexität angegeben, wobei angenommen wird, dass elementare Operationen auf einem bestimmten Computer eine konstante Zeit benötigen und sich nur um einen konstanten Faktor ändern, wenn sie auf einer anderen Maschine ausgeführt werden. Die Speicherkapazität, die ein Algorithmus für eine Eingabe der Größe n benötigt, wird als Raumkomplexität bezeichnet.

Zeit ist die am häufigsten betrachtete Ressource. Wenn der Begriff „Komplexität“ ohne Qualifier verwendet wird, bezieht er sich normalerweise auf die Komplexität der Zeit.

Die traditionellen Zeiteinheiten (Sekunden, Minuten usw.) werden in der Komplexitätstheorie nicht verwendet, da sie zu stark vom gewählten Computer und dem Fortschritt der Technologie abhängig sind. Zum Beispiel kann ein Computer heute einen Algorithmus wesentlich schneller ausführen als ein Computer aus den 1960er Jahren, jedoch liegt dies eher an technologischen Durchbrüchen in der Computerhardware als an einer inhärenten Qualität des Algorithmus. Das Ziel der Komplexitätstheorie besteht darin, den inhärenten Zeitbedarf von Algorithmen oder die grundlegenden Zeitbeschränkungen zu quantifizieren, die ein Algorithmus jedem Computer auferlegen würde. Dies wird erreicht, indem gezählt wird, wie viele Grundoperationen während der Berechnung ausgeführt werden. Diese Prozeduren werden im Allgemeinen als Schritte bezeichnet, da davon ausgegangen wird, dass sie auf einer bestimmten Maschine eine konstante Zeit benötigen (dh sie werden nicht von der Menge der Eingabe beeinflusst).

Eine weitere wichtige Ressource ist die Menge an Computerspeicher, die zum Ausführen von Algorithmen erforderlich ist.

Eine weitere häufig verwendete Ressource ist die Anzahl der arithmetischen Operationen. In diesem Szenario wird der Begriff „arithmetische Komplexität“ verwendet. Die Zeitkomplexität ist im Allgemeinen das Produkt der arithmetischen Komplexität mit einem konstanten Faktor, wenn eine obere Beschränkung der Größe der binären Darstellung der Zahlen bekannt ist, die während einer Berechnung auftreten.

Die Größe der während einer Berechnung verwendeten ganzen Zahlen ist für viele Verfahren nicht beschränkt, und es ist unrealistisch anzunehmen, dass arithmetische Operationen eine feste Zeitdauer benötigen. Dadurch kann die Zeitkomplexität, auch Bitkomplexität genannt, deutlich höher sein als die arithmetische Komplexität. Die arithmetische Schwierigkeit der Berechnung der Determinante einer ganzzahligen nn-Matrix ist beispielsweise O(n^3) für Standardtechniken (Gaußsche Elimination). Da sich die Größe der Koeffizienten während der Berechnung exponentiell ausdehnen kann, ist die Bitkomplexität der gleichen Verfahren in n exponentiell. Wenn diese Techniken in Verbindung mit multimodularer Arithmetik verwendet werden, kann die Bitkomplexität auf O(n^4) verringert werden.

Die Bitkomplexität bezieht sich formal auf die Anzahl von Operationen an Bits, die zum Ausführen eines Algorithmus erforderlich sind. Sie entspricht der zeitlichen Komplexität bis auf einen konstanten Faktor in den meisten Berechnungsparadigmen. Die Anzahl der von Computern benötigten Operationen an Maschinenwörtern ist proportional zur Bitkomplexität. Für realistische Berechnungsmodelle sind somit die Zeitkomplexität und die Bitkomplexität identisch.

Die Ressource, die beim Sortieren und Suchen häufig berücksichtigt wird, ist die Anzahl der Vergleiche von Einträgen. Wenn die Daten gut geordnet sind, ist dies ein guter Indikator für die zeitliche Komplexität.

Bei allen möglichen Eingaben ist es unmöglich, die Anzahl der Schritte in einem Algorithmus zu zählen. Da die Komplexität einer Eingabe mit ihrer Größe ansteigt, wird sie üblicherweise als Funktion der Größe n der Eingabe (in Bits) dargestellt, und somit ist die Komplexität eine Funktion von n. Bei gleich großen Eingaben kann die Komplexität eines Algorithmus jedoch erheblich variieren. Als Ergebnis werden routinemäßig eine Vielzahl von Komplexitätsfunktionen verwendet.

Die Worst-Case-Komplexität ist die Summe aller Komplexität für alle Inputs der Größe n, während die Average-Case-Komplexität die Summe aller Komplexitäten für alle Inputs der Größe n ist (dies ist sinnvoll, da die Anzahl der möglichen Inputs einer gegebenen Größe endlich). Bei der Verwendung des Begriffs „Komplexität“ ohne weitere Definition wird die Worst-Case-Zeitkomplexität berücksichtigt.

Die Komplexität im schlimmsten und durchschnittlichen Fall lässt sich bekanntermaßen nur schwer korrekt berechnen. Darüber hinaus haben diese genauen Werte kaum praktische Anwendung, da jede Änderung der Maschine oder des Berechnungsparadigmas die Komplexität leicht verändern würde. Darüber hinaus ist die Ressourcennutzung für kleine n-Werte nicht wichtig, daher ist eine einfache Implementierung bei kleinen n-Werten oft attraktiver als eine geringe Komplexität.

Aus diesen Gründen wird dem Verhalten der Komplexität für hohes n die meiste Aufmerksamkeit gewidmet, d. h. seinem asymptotischen Verhalten, wenn n gegen unendlich geht. Daher wird häufig die große O-Notation verwendet, um Komplexität anzuzeigen.

Computermodelle

Die Wahl eines Berechnungsmodells, das aus der Festlegung der wesentlichen Operationen besteht, die in einer Zeiteinheit ausgeführt werden, ist für die Bestimmung der Komplexität wichtig. Dies wird manchmal als Multitape-Turingmaschine bezeichnet, wenn das Berechnungsparadigma nicht speziell beschrieben wird.

Ein deterministisches Berechnungsmodell ist eines, bei dem die nachfolgenden Zustände der Maschine und die auszuführenden Operationen vollständig durch den vorherigen Zustand definiert werden. Rekursive Funktionen, Lambda-Kalkül und Turing-Maschinen waren die ersten deterministischen Modelle. Random-Access-Maschinen (auch als RAM-Maschinen bekannt) sind ein beliebtes Paradigma für die Simulation realer Computer.

Wenn das Berechnungsmodell nicht definiert ist, wird normalerweise von einer Multitape-Turingmaschine ausgegangen. Auf Multitape-Turing-Maschinen ist die Zeitkomplexität für die meisten Algorithmen dieselbe wie auf RAM-Maschinen, obwohl beträchtliche Aufmerksamkeit bei der Speicherung der Daten im Speicher erforderlich sein kann, um diese Äquivalenz zu erreichen.

In einigen Schritten der Berechnung können in einem nicht-deterministischen Berechnungsmodell, wie beispielsweise nicht-deterministischen Turing-Maschinen, verschiedene Entscheidungen getroffen werden. In der Komplexitätstheorie werden alle möglichen Optionen gleichzeitig berücksichtigt, und nichtdeterministische Zeitkomplexität ist die Zeit, die erforderlich ist, wenn immer die besten Entscheidungen getroffen werden. Anders ausgedrückt, die Berechnung erfolgt gleichzeitig auf so vielen (identischen) Prozessoren wie erforderlich, und die nicht-deterministische Berechnungszeit ist die Zeit, die der erste Prozessor benötigt, um die Berechnung abzuschließen. Diese Parallelität kann im Quantencomputing genutzt werden, indem überlagerte verschränkte Zustände verwendet werden, wenn spezielle Quantenalgorithmen ausgeführt werden, wie zum Beispiel die Faktorisierung winziger Ganzzahlen nach Shor.

Auch wenn ein solches Berechnungsmodell derzeit nicht praktikabel ist, hat es theoretische Bedeutung, insbesondere in Bezug auf das P = NP-Problem, das fragt, ob die unter Verwendung von „polynomialer Zeit“ und „nicht deterministischer polynomialer Zeit“ erzeugten Komplexitätsklassen als mindestens obere Grenzen sind gleich. Auf einem deterministischen Computer erfordert die Simulation eines NP-Algorithmus „exponentielle Zeit“. Wenn eine Aufgabe in polynomieller Zeit auf einem nicht-deterministischen System gelöst werden kann, gehört sie zur NP-Schwierigkeitsklasse. Wenn ein Problem in NP liegt und nicht einfacher ist als jedes andere NP-Problem, wird es als NP-vollständig bezeichnet. Das Knapsack-Problem, das Travelling-Salesman-Problem und das Boolesche Erfüllbarkeitsproblem sind alle NP-vollständige kombinatorische Probleme. Der bekannteste Algorithmus weist für all diese Probleme eine exponentielle Komplexität auf. Wenn eines dieser Probleme in polynomieller Zeit auf einer deterministischen Maschine gelöst werden könnte, dann könnten auch alle NP-Probleme in polynomieller Zeit gelöst werden, und P = NP wäre festgelegt. Ab 2017 wird allgemein angenommen, dass P NP ist, was impliziert, dass die schlimmsten Situationen von NP-Problemen grundsätzlich schwer zu lösen sind, dh bei interessanten Eingabelängen viel länger dauern als jede mögliche Zeitspanne (Dekaden).

Paralleles und verteiltes Rechnen

Paralleles und verteiltes Rechnen beinhaltet die Aufteilung der Verarbeitung auf mehrere Prozessoren, die alle gleichzeitig arbeiten. Der grundlegende Unterschied zwischen den verschiedenen Modellen besteht in der Art und Weise, wie Daten zwischen Prozessoren gesendet werden. Die Datenübertragung zwischen Prozessoren ist beim parallelen Rechnen typischerweise sehr schnell, wohingegen die Datenübertragung zwischen den Prozessoren beim verteilten Rechnen über ein Netzwerk erfolgt und somit wesentlich langsamer ist.

Eine Berechnung auf N Prozessoren benötigt mindestens den Quotienten von N der Zeit, die sie auf einem einzelnen Prozessor benötigt. Da einige Teilaufgaben nicht parallelisiert werden können und einige Prozessoren möglicherweise auf ein Ergebnis von einem anderen Prozessor warten müssen, wird diese theoretisch ideale Grenze in Wirklichkeit nie erreicht.

Das Hauptproblem der Komplexität besteht daher darin, Algorithmen zu entwickeln, damit das Produkt der Rechenzeit durch die Anzahl der Prozessoren so nah wie möglich an der Zeit ist, die erforderlich ist, um dieselbe Berechnung auf einem einzelnen Prozessor durchzuführen.

Quantenberechnung

Ein Quantencomputer ist ein Computer mit einem quantenmechanischen Rechenmodell. Für Quantencomputer gilt die Church-Turing-These, die besagt, dass jedes Problem, das ein Quantencomputer lösen kann, auch von einer Turing-Maschine gelöst werden kann. Einige Aufgaben könnten jedoch theoretisch mit einem Quantencomputer und nicht mit einem klassischen Computer mit deutlich geringerer zeitlicher Komplexität gelöst werden. Dies ist vorerst rein theoretisch, da niemand weiß, wie man einen praktischen Quantencomputer entwickelt.

Die Quantenkomplexitätstheorie wurde entwickelt, um die verschiedenen Arten von Problemen zu untersuchen, die von Quantencomputern gelöst werden können. Es wird in der Post-Quanten-Kryptografie verwendet, bei der kryptografische Protokolle erstellt werden, die gegen Angriffe auf Quantencomputer resistent sind.

Komplexität des Problems (untere Schranken)

Die Komplexität der Algorithmen, die das Problem lösen können, einschließlich unentdeckter Techniken, ist die Komplexität des Problems. Als Ergebnis ist die Komplexität eines Problems gleich der Komplexität jedes Algorithmus, der es löst.

Als Ergebnis repräsentiert jede in großer O-Notation angegebene Komplexität eine Komplexität sowohl des Algorithmus als auch des begleitenden Problems.

Andererseits ist es oft schwierig, nichttriviale untere Schranken für die Problemkomplexität zu erhalten, und dafür gibt es nur wenige Strategien.

Um die meisten Probleme zu lösen, müssen alle Eingabedaten gelesen werden, was proportional zur Größe der Daten Zeit in Anspruch nimmt. Als Ergebnis haben solche Probleme mindestens eine lineare Komplexität oder, in Big-Omega-Notation, eine Komplexität von Ω(n).

Für einige Probleme, wie die der Computeralgebra und der computeralgebraischen Geometrie, gibt es sehr umfangreiche Lösungen. Da die Ausgabe geschrieben werden muss, wird die Komplexität durch die maximale Größe der Ausgabe eingeschränkt.

Die für einen Sortieralgorithmus erforderliche Anzahl von Vergleichen hat eine nichtlineare untere Schranke von (nlogn). Als Ergebnis sind die besten Sortieralgorithmen die effizientesten, da ihre Komplexität O(nlogn) beträgt. Die Tatsache, dass es n! Möglichkeiten, n Dinge zu organisieren, führt zu dieser unteren Schranke. Da jeder Vergleich diese Sammlung von n teilt! Ordnungen in zwei Teile zerlegt, muss die Anzahl von N Vergleichen, die erforderlich ist, um alle Ordnungen zu unterscheiden, 2N > n! sein, was O(nlogn) nach der Stirling-Formel impliziert.

Das Reduzieren eines Problems auf ein anderes Problem ist eine übliche Strategie zum Erhalten von Beschränkungen der reduzierten Komplexität.

Algorithmenentwicklung

Die Bewertung der Komplexität eines Algorithmus ist ein wichtiges Element des Entwurfsprozesses, da sie nützliche Informationen über die zu erwartende Leistung liefert.

Es ist ein häufiges Missverständnis, dass aufgrund des Mooreschen Gesetzes, das das exponentielle Wachstum moderner Computerleistung vorhersagt, die Bewertung der Komplexität von Algorithmen an Bedeutung verlieren wird. Dies ist falsch, da die erhöhte Leistung die Verarbeitung riesiger Datenmengen (Big Data) ermöglicht. Zum Beispiel sollte jeder Algorithmus in weniger als einer Sekunde gut funktionieren, wenn er eine Liste mit einigen Hundert Einträgen alphabetisch sortiert, wie zum Beispiel die Bibliographie eines Buches. Andererseits müssten für eine Million Einträge (zum Beispiel die Telefonnummern einer Großstadt) die grundlegenden Algorithmen, die O(n2) Vergleiche erfordern, eine Billion Vergleiche durchführen, was drei Stunden bei einer Geschwindigkeit von 10 Millionen Vergleiche pro Sekunde. Quicksort und Mergesort hingegen erfordern nur nlogn-Vergleiche (als durchschnittliche Komplexität für erstere, als Worst-Case-Komplexität für letztere). Dies ergibt etwa 30,000,000 Vergleiche für n = 1,000,000, was bei 3 Millionen Vergleichen pro Sekunde nur 10 Sekunden dauern würde.

Als Ergebnis kann die Bewertung der Komplexität die Eliminierung vieler ineffizienter Algorithmen vor der Implementierung ermöglichen. Damit lassen sich auch komplexe Algorithmen verfeinern, ohne alle möglichen Varianten testen zu müssen. Die Untersuchung der Komplexität ermöglicht es, den Aufwand zur Steigerung der Effizienz einer Implementierung zu bündeln, indem die teuersten Schritte eines komplexen Algorithmus bestimmt werden.

Um sich im Detail mit dem Zertifizierungscurriculum vertraut zu machen, können Sie die folgende Tabelle erweitern und analysieren.

Das Zertifizierungscurriculum „Computational Complexity Theory Fundamentals“ von EITC/IS/CCTF verweist auf frei zugängliche didaktische Materialien in Videoform. Der Lernprozess ist in eine schrittweise Struktur (Programme -> Lektionen -> Themen) unterteilt, die relevante Lehrplanteile abdeckt. Die Teilnehmer können im Abschnitt „Fragen und Antworten“ der E-Learning-Schnittstelle unter dem aktuell bearbeiteten Lehrplanthema des EITC-Programms auf Antworten zugreifen und relevantere Fragen stellen. Eine direkte und unbegrenzte Beratung durch Fachexperten ist auch über das in die Plattform integrierte Online-Nachrichtensystem sowie über das Kontaktformular möglich.
Einzelheiten zum Zertifizierungsverfahren finden Sie unter So funktioniert es.

Lesematerialien für den primären unterstützenden Lehrplan

S. Arora, B. Barak, Rechenkomplexität: Ein moderner Ansatz
https://theory.cs.princeton.edu/complexity/book.pdf

Lesematerialien für den unterstützenden Lehrplan der Sekundarstufe

O. Goldreich, Einführung in die Komplexitätstheorie:
https://www.wisdom.weizmann.ac.il/~oded/cc99.html

Unterstützendes Lesematerial für den Lehrplan zur diskreten Mathematik

J. Aspnes, Anmerkungen zur Diskreten Mathematik:
https://www.cs.yale.edu/homes/aspnes/classes/202/notes.pdf

Unterstützendes Lesematerial für den Lehrplan zur Graphentheorie

R. Diestel, Graphentheorie:
https://diestel-graph-theory.com/

Laden Sie die vollständigen Vorbereitungsmaterialien zum Offline-Selbstlernen für das EITC/IS/CCTF Computational Complexity Theory Fundamentals-Programm in einer PDF-Datei herunter

PDF Icon EITC/IS/CCTF-Vorbereitungsmaterialien – Standardversion

PDF Icon EITC/IS/CCTF-Vorbereitungsmaterialien – erweiterte Version mit Überprüfungsfragen

Curriculum des Zertifizierungsprogramms

Einführung 1-Thema
Sie haben derzeit keinen Zugriff auf diesen Inhalt
Inhalt der Lektion
0% abgeschlossen 0/1-Schritte
Theoretische Einführung
Finite-State-Maschinen 6-Themen
Sie haben derzeit keinen Zugriff auf diesen Inhalt
Inhalt der Lektion
0% abgeschlossen 0/6-Schritte
Einführung in Finite-State-Maschinen
Beispiele für Finite-State-Maschinen
Operationen mit regulären Sprachen
Einführung in nichtdeterministische endliche Zustandsmaschinen
Formale Definition nichtdeterministischer endlicher Zustandsmaschinen
Äquivalenz von deterministischen und nichtdeterministischen FSMs
Reguläre Sprachen 5-Themen
Sie haben derzeit keinen Zugriff auf diesen Inhalt
Inhalt der Lektion
0% abgeschlossen 0/5-Schritte
Schließung des regulären Betriebs
Reguläre Ausdrücke
Gleichwertigkeit von regulären Ausdrücken und regulären Sprachen
Pumping Lemma für reguläre Sprachen
Zusammenfassung der regulären Sprachen
Kontextfreie Grammatiken und Sprachen 4-Themen
Sie haben derzeit keinen Zugriff auf diesen Inhalt
Inhalt der Lektion
0% abgeschlossen 0/4-Schritte
Einführung in kontextfreie Grammatiken und Sprachen
Beispiele für kontextfreie Grammatiken
Arten von kontextfreien Sprachen
Fakten zu kontextfreien Sprachen
Kontextsensitive Sprachen 3-Themen
Sie haben derzeit keinen Zugriff auf diesen Inhalt
Inhalt der Lektion
0% abgeschlossen 0/3-Schritte
Chomsky Normalform
Chomsky-Hierarchie und kontextsensitive Sprachen
Das Pump-Lemma für CFLs
Pushdown-Automaten 3-Themen
Sie haben derzeit keinen Zugriff auf diesen Inhalt
Inhalt der Lektion
0% abgeschlossen 0/3-Schritte
PDAs: Pushdown-Automaten
Gleichwertigkeit von CFGs und PDAs
Schlussfolgerungen aus der Äquivalenz von CFGs und PDAs
Turing-Maschinen 9-Themen
Sie haben derzeit keinen Zugriff auf diesen Inhalt
Inhalt der Lektion
0% abgeschlossen 0/9-Schritte
Einführung in Turingmaschinen
Beispiele für Turingmaschinen
Definition von TMs und verwandten Sprachklassen
Die kirchliche These
Programmiertechniken der Turing-Maschine
Multitape-Turingmaschinen
Nichtdeterminismus in Turingmaschinen
Turingmaschinen als Problemlöser
Enumeratoren
Entscheidbarkeit 17-Themen
Sie haben derzeit keinen Zugriff auf diesen Inhalt
Inhalt der Lektion
0% abgeschlossen 0/17-Schritte
Entscheidbarkeit und entscheidbare Probleme
Weitere entscheidbare Probleme Für DFAs
Probleme mit kontextfreien Sprachen
Universal-Turingmaschine
Unendlichkeit - zählbar und unzählbar
Sprachen, die Turing nicht erkennbar sind
Unentscheidbarkeit des Halteproblems
Sprache, die Turing nicht erkennbar ist
Reduzierbarkeit - eine Technik zum Nachweis der Unentscheidbarkeit
Halteproblem - ein Beweis durch Reduktion
Akzeptiert ein TM beliebige Zeichenfolgen?
Berechenbare Funktionen
Gleichwertigkeit von Turingmaschinen
Eine Sprache auf eine andere reduzieren
Das Problem nach der Korrespondenz
Unentscheidbarkeit des PCP
Linear gebundene Automaten
Rekursion 5-Themen
Sie haben derzeit keinen Zugriff auf diesen Inhalt
Inhalt der Lektion
0% abgeschlossen 0/5-Schritte
Programm, das sich selbst druckt
Turing Machine, die eine Beschreibung von sich selbst schreibt
Rekursionssatz
Ergebnisse aus dem Rekursionssatz
Der Fixpunktsatz
Logik 4-Themen
Sie haben derzeit keinen Zugriff auf diesen Inhalt
Inhalt der Lektion
0% abgeschlossen 0/4-Schritte
Prädikatenlogik erster Ordnung - Übersicht
Wahrheit, Bedeutung und Beweis
Wahre Aussagen und nachweisbare Aussagen
Gödels Unvollständigkeitssatz
Komplexität 8-Themen
Sie haben derzeit keinen Zugriff auf diesen Inhalt
Inhalt der Lektion
0% abgeschlossen 0/8-Schritte
Zeitkomplexität und Big-O-Notation
Berechnung der Laufzeit eines Algorithmus
Zeitkomplexität mit verschiedenen Rechenmodellen
Zeitkomplexitätsklassen P und NP
Definition der NP- und Polynomprüfbarkeit
NP-Vollständigkeit
Beweis, dass SAT NP vollständig ist
Raumkomplexitätsklassen
Grundlagen der EITC/IS/CCTF Computational Complexity Theory
Sie haben derzeit keinen Zugriff auf diesen Inhalt
Startseite » Mein Konto

Zertifizierungszentrum

Programm Home
Einführung
Theoretische Einführung
Finite-State-Maschinen
Einführung in Finite-State-Maschinen
Beispiele für Finite-State-Maschinen
Operationen mit regulären Sprachen
Einführung in nichtdeterministische endliche Zustandsmaschinen
Formale Definition nichtdeterministischer endlicher Zustandsmaschinen
Äquivalenz von deterministischen und nichtdeterministischen FSMs
Reguläre Sprachen
Schließung des regulären Betriebs
Reguläre Ausdrücke
Gleichwertigkeit von regulären Ausdrücken und regulären Sprachen
Pumping Lemma für reguläre Sprachen
Zusammenfassung der regulären Sprachen
Kontextfreie Grammatiken und Sprachen
Einführung in kontextfreie Grammatiken und Sprachen
Beispiele für kontextfreie Grammatiken
Arten von kontextfreien Sprachen
Fakten zu kontextfreien Sprachen
Kontextsensitive Sprachen
Chomsky Normalform
Chomsky-Hierarchie und kontextsensitive Sprachen
Das Pump-Lemma für CFLs
Pushdown-Automaten
PDAs: Pushdown-Automaten
Gleichwertigkeit von CFGs und PDAs
Schlussfolgerungen aus der Äquivalenz von CFGs und PDAs
Turing-Maschinen
Einführung in Turingmaschinen
Beispiele für Turingmaschinen
Definition von TMs und verwandten Sprachklassen
Die kirchliche These
Programmiertechniken der Turing-Maschine
Multitape-Turingmaschinen
Nichtdeterminismus in Turingmaschinen
Turingmaschinen als Problemlöser
Enumeratoren
Entscheidbarkeit
Entscheidbarkeit und entscheidbare Probleme
Weitere entscheidbare Probleme Für DFAs
Probleme mit kontextfreien Sprachen
Universal-Turingmaschine
Unendlichkeit - zählbar und unzählbar
Sprachen, die Turing nicht erkennbar sind
Unentscheidbarkeit des Halteproblems
Sprache, die Turing nicht erkennbar ist
Reduzierbarkeit - eine Technik zum Nachweis der Unentscheidbarkeit
Halteproblem - ein Beweis durch Reduktion
Akzeptiert ein TM beliebige Zeichenfolgen?
Berechenbare Funktionen
Gleichwertigkeit von Turingmaschinen
Eine Sprache auf eine andere reduzieren
Das Problem nach der Korrespondenz
Unentscheidbarkeit des PCP
Linear gebundene Automaten
Rekursion
Programm, das sich selbst druckt
Turing Machine, die eine Beschreibung von sich selbst schreibt
Rekursionssatz
Ergebnisse aus dem Rekursionssatz
Der Fixpunktsatz
Logik
Prädikatenlogik erster Ordnung - Übersicht
Wahrheit, Bedeutung und Beweis
Wahre Aussagen und nachweisbare Aussagen
Gödels Unvollständigkeitssatz
Komplexität
Zeitkomplexität und Big-O-Notation
Berechnung der Laufzeit eines Algorithmus
Zeitkomplexität mit verschiedenen Rechenmodellen
Zeitkomplexitätsklassen P und NP
Definition der NP- und Polynomprüfbarkeit
NP-Vollständigkeit
Beweis, dass SAT NP vollständig ist
Raumkomplexitätsklassen
Grundlagen der EITC/IS/CCTF Computational Complexity Theory

BENUTZERMENÜ

  • Mein Konto

ZERTIFIKATSKATEGORIE

  • EITC-Zertifizierung (105)
  • EITCA-Zertifizierung (9)

Wonach suchst du?

  • Einführung
  • Wie funktioniert es?
  • EITCA-Akademien
  • EITCI DSJC-Subvention
  • Vollständiger EITC-Katalog
  • Ihre Bestellung
  • Featured
  •   IT ID
  • EITCA-Rezensionen (mittlere Veröffentlichung)
  • Über uns
  • Kontakt

Die EITCA Academy ist Teil des europäischen IT-Zertifizierungsrahmens

Das europäische IT-Zertifizierungsrahmenwerk wurde 2008 als europaweiter und anbieterunabhängiger Standard für die allgemein zugängliche Online-Zertifizierung digitaler Fähigkeiten und Kompetenzen in vielen Bereichen professioneller digitaler Spezialisierungen etabliert. Das EITC-Rahmenwerk wird durch das geregelt Europäisches IT-Zertifizierungsinstitut (EITCI), eine gemeinnützige Zertifizierungsstelle, die das Wachstum der Informationsgesellschaft unterstützt und die Lücke bei digitalen Kompetenzen in der EU schließt.

Berechtigung für die EITCA Academy 90 % EITCI DSJC Subventionsunterstützung

90 % der Gebühren der EITCA Academy werden bei der Einschreibung bezuschusst von

    Sekretariat der EITCA-Akademie

    Europäisches IT-Zertifizierungsinstitut ASBL
    Brüssel, Belgien, Europäische Union

    EITC/EITCA-Zertifizierungsrahmenbetreiber
    Regelung des europäischen IT-Zertifizierungsstandards
    Zugriff Kontaktformular oder rufen Sie an: +32 25887351

    Folgen Sie EITCI auf X
    Besuchen Sie die EITCA Academy auf Facebook
    Treten Sie mit der EITCA Academy auf LinkedIn in Kontakt
    Schauen Sie sich EITCI- und EITCA-Videos auf YouTube an

    Gefördert von der Europäischen Union

    Gefördert durch die Europäischen Fonds für regionale Entwicklung (EFRE) und der Europäischer Sozialfonds (ESF) in einer Reihe von Projekten seit 2007, derzeit geregelt durch die Europäisches IT-Zertifizierungsinstitut (EITCI) seit 2008

    Informationssicherheitsrichtlinie | DSRRM- und DSGVO-Richtlinie | Datenschutzrichtlinie | Verzeichnis der Verarbeitungstätigkeiten | HSE-Richtlinie | Antikorruptionsrichtlinie | Moderne Sklaverei-Politik

    Automatisch in Ihre Sprache übersetzen

    Bedingungen und Konditionen | Datenschutzbestimmungen
    EITCA-Akademie
    • EITCA Academy in sozialen Medien
    EITCA-Akademie


    © 2008-2026  Europäisches IT-Zertifizierungsinstitut
    Brüssel, Belgien, Europäische Union

    TOP
    Chatten Sie mit dem Support
    Sie haben Fragen?
    Wir antworten Ihnen hier und per E-Mail. Ihre Konversation wird mit einem Support-Token protokolliert.