×
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

Melden Sie sich entweder mit Ihrem Benutzernamen oder Ihrer E-Mail-Adresse bei Ihrem Konto an

EIN KONTO ERSTELLEN PASSWORT VERGESSEN?

VERGESSEN SIE IHRE DETAILS?

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

Zertifizierungsstelle

EITCI Institut

Brüssel, Europäische Union

Anwendung des europäischen Standards für die IT-Zertifizierung (EITC) zur Unterstützung der IT-Professionalität und der Digital Society

  • 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-ZERTIFIKATNEUES
    • EITC-ZERTIFIKATE
      • INTERNET-ZERTIFIKATE
      • CRYPTOGRAPHY-ZERTIFIKATE
      • BUSINESS IT-ZERTIFIKATE
      • TELEWORK-ZERTIFIKATE
      • PROGRAMMIERZERTIFIKATE
      • DIGITAL PORTRAIT ZERTIFIKAT
      • ZERTIFIKATE FÜR DIE WEBENTWICKLUNG
      • TIEFE LERNZERTIFIKATENEUES
    • 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 EXPERTENNEUES
  • 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 Administrator / Montag, 03 Mai 2021 / Veröffentlicht in Allgemein
Aktueller Status
Nicht eingeschrieben
PREIS
€110
Los geht’s
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.

Das Curriculum der EITC/IS/CCTF Computational Complexity Theory Fundamentals umfasst theoretisches Wissen zu Grundlagen der Informatik und Computermodelle zu grundlegenden Konzepten wie deterministischen und nichtdeterministischen endlichen Automaten, regulären Sprachen, kontextfreien Grammatiken und Sprachentheorie, Automatentheorie, Turing Maschinen, Entscheidbarkeit von Problemen, Rekursion, Logik und Komplexität der Algorithmik für grundlegende Sicherheitsanwendungen innerhalb der folgenden Struktur, umfassend umfassende videodidaktische Inhalte als Referenz für diese EITC-Zertifizierung.

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 entscheidende Ressource ist die Menge an Computerspeicher, die für die Ausführung 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 Worst-Case- und Average-Case-Komplexität sind notorisch schwer richtig zu berechnen. Darüber hinaus haben diese genauen Werte wenig praktische Anwendung, da jede Änderung des Maschinen- oder Berechnungsparadigmas die Komplexität geringfügig verändern würde. Darüber hinaus ist die Ressourcennutzung für kleine Werte von n nicht entscheidend, daher ist eine einfache Implementierung für kleine n 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 darin besteht, die wesentlichen Operationen anzugeben, die in einer Zeiteinheit durchgeführt werden, ist entscheidend für die Bestimmung der Komplexität. Dies wird manchmal als Multitape-Turing-Maschine 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 EITC/IS/CCTF-Zertifizierungscurriculum für Grundlagen der Berechnungskomplexitätstheorie verweist auf frei zugängliche didaktische Materialien in Videoform. Der Lernprozess ist in eine schrittweise Struktur (Programme -> Lektionen -> Themen) unterteilt, die relevante Lehrplanteile abdeckt. Unbegrenzte Beratung durch Domänenexperten wird ebenfalls angeboten.
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/

Curriculum des Zertifizierungsprogramms

Alles anzeigen
Einleitung 1-Thema
Erweitern
Inhalt der Lektion
0% abgeschlossen 0/1-Schritte
Theoretische Einführung
Finite-State-Maschinen 6-Themen
Erweitern
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
Erweitern
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
Erweitern
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
Erweitern
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
Erweitern
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
Erweitern
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
Erweitern
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
Erweitern
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
Erweitern
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
Erweitern
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
  • Tweet

Über Uns Administrator

Home » Mein Konto

Zertifizierungszentrum

Programm Home Alles anzeigen
Einleitung
1-Thema
Theoretische Einführung
Finite-State-Maschinen
6-Themen
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
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
Einführung in kontextfreie Grammatiken und Sprachen
Beispiele für kontextfreie Grammatiken
Arten von kontextfreien Sprachen
Fakten zu kontextfreien Sprachen
Kontextsensitive Sprachen
3-Themen
Chomsky Normalform
Chomsky-Hierarchie und kontextsensitive Sprachen
Das Pump-Lemma für CFLs
Pushdown-Automaten
3-Themen
PDAs: Pushdown-Automaten
Gleichwertigkeit von CFGs und PDAs
Schlussfolgerungen aus der Äquivalenz von CFGs und PDAs
Turing-Maschinen
9-Themen
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
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
Programm, das sich selbst druckt
Turing Machine, die eine Beschreibung von sich selbst schreibt
Rekursionssatz
Ergebnisse aus dem Rekursionssatz
Der Fixpunktsatz
Logik
4-Themen
Prädikatenlogik erster Ordnung - Übersicht
Wahrheit, Bedeutung und Beweis
Wahre Aussagen und nachweisbare Aussagen
Gödels Unvollständigkeitssatz
Komplexität
8-Themen
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Ü

  • Meine Buchungen

ZERTIFIKATSKATEGORIE

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

Wonach suchst du?

  • Einleitung
  • Wie funktioniert es?
  • EITCA-Akademien
  • EITCI DSJC-Subvention
  • Vollständiger EITC-Katalog
  • Ihre Bestellung
  • Ausgewählte Auktionen
  •   IT ID
  • Über Uns
  • Kontakt

    Verwaltungsbüro der EITCA Academy

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

    Die EITC/EITCA-Zertifizierungsstelle
    Regelung des europäischen IT-Zertifizierungsstandards
    Starten Kontakt Formular oder rufen Sie an: +32 25887351

    Vor 13 TagenDie #EITC/WD/WPF WordPress-Grundlagenzertifikat (Teil der #EITCA/WD) bescheinigt Sachkunde in #WordPress CMS, im … https://t.co/A2jjXPeKgj
    Folgen Sie @EITCI

    Automatisch in Ihre Sprache übersetzen

    Geschäftsbedingungen | Datenschutz
    Folgen Sie @EITCI
    EITCA-Akademie
    • EITCA Academy in sozialen Medien
    EITCA-Akademie


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

    TOPS
    Chatten Sie mit dem Support
    Chatten Sie mit dem Support
    Fragen, Zweifel, Probleme? Wir sind hier, um dir zu helfen!
    Ende des Gesprächs
    Verbindung wird hergestellt ...
    Hast du eine Frage? Frag uns!
    Hast du eine Frage? Frag uns!
    :
    :
    :
    Absenden
    Hast du eine Frage? Frag uns!
    :
    :
    Chat beginnen
    Die Chat-Sitzung wurde beendet. Vielen Dank!
    Bitte bewerten Sie die Unterstützung, die Sie erhalten haben.
    Gut Badewanne