×
1 Kies EITC/EITCA-certificaten
2 Online examens leren en afleggen
3 Laat uw IT-vaardigheden certificeren

Bevestig uw IT-vaardigheden en -competenties onder het Europese IT-certificeringskader van overal ter wereld, volledig online.

EITCA Academie

Standaard voor attestering van digitale vaardigheden door het European IT Certification Institute ter ondersteuning van de ontwikkeling van de digitale samenleving

LOG IN OP UW ACCOUNT

MAAK EEN ACCOUNT WACHTWOORD VERGETEN?

WACHTWOORD VERGETEN?

AAH, WACHT, ik herinner me NOW!

MAAK EEN ACCOUNT

REEDS EEN ACCOUNT HEEFT?
EUROPESE INFORMATIETECHNOLOGIEËN CERTIFICATIE ACADEMIE - UW PROFESSIONELE DIGITALE VAARDIGHEDEN PROBEREN
  • INSCHRIJVEN
  • LOG IN
  • INFO

EITCA Academie

EITCA Academie

Het European Information Technologies Certification Institute - EITCI ASBL

Certificeringsaanbieder

EITCI Instituut ASBL

Brussel, Europese Unie

Beheer van het Europese IT-certificeringskader (EITC) ter ondersteuning van IT-professionalisme en de digitale samenleving

  • CERTIFICATEN
    • EITCA-ACADEMIES
      • CATALOGUS VAN EITCA ACADEMIES<
      • EITCA/CG-COMPUTERGRAFIEK
      • EITCA/IS INFORMATIEBEVEILIGING
      • EITCA/BI BEDRIJFSINFORMATIE
      • EITCA/KC BELANGRIJKSTE COMPETENTIES
      • EITCA/EG E-REGERING
      • EITCA/WD WEBONTWIKKELING
      • EITCA/AI KUNSTMATIGE INTELLIGENTIE
    • EITC-CERTIFICATEN
      • CATALOGUS VAN EITC-CERTIFICATEN<
      • COMPUTER GRAFISCHE CERTIFICATEN
      • WEB ONTWERP CERTIFICATEN
      • 3D ONTWERP CERTIFICATEN
      • KANTOOR IT-CERTIFICATEN
      • BITCOIN BLOCKCHAIN ​​CERTIFICAAT
      • WORDPRESS CERTIFICAAT
      • CLOUD PLATFORM CERTIFICAATNIEUW
    • EITC-CERTIFICATEN
      • INTERNET CERTIFICATEN
      • CRYPTOGRAFIE CERTIFICATEN
      • BUSINESS IT-CERTIFICATEN
      • TELEWERKCERTIFICATEN
      • PROGRAMMERING VAN CERTIFICATEN
      • DIGITAAL PORTRETCERTIFICAAT
      • WEBONTWIKKELINGSCERTIFICATEN
      • DIEPE LEREN CERTIFICATENNIEUW
    • CERTIFICATEN VOOR
      • EU-OPENBARE ADMINISTRATIE
      • LERAREN EN ONDERWIJS
      • IT-BEVEILIGINGSPROFESSIONALS
      • GRAFISCHE ONTWERPERS & KUNSTENAARS
      • ZAKENLIEDEN EN MANAGERS
      • BLOCKCHAIN ​​ONTWIKKELAARS
      • WEB ONTWIKKELAARS
      • CLOUD AI-EXPERTSNIEUW
  • FEATURED
  • SUBSIDIE
  • HOE WERKT HET?
  •   IT ID
  • OVER ONS
  • CONTACT
  • MIJN BESTELLING
    Uw huidige bestelling is leeg.
EITCIINSTITUTE
CERTIFIED

EITC/IS/CCTF Grondbeginselen van computationele complexiteitstheorie

by EITCA Academie / Maandag 03 mei 2021 / Gepubliceerd in

Current Status

Niet ingeschreven
Schrijf je in voor dit programma om toegang te krijgen

Prijs

€110.00

STARTEN

Schrijf u in voor deze certificering

EITC/IS/CCTF Computational Complexity Theory Fundamentals is het Europese IT-certificeringsprogramma voor theoretische aspecten van de grondslagen van de informatica die ook de basis vormen van klassieke asymmetrische cryptografie met openbare sleutels die veel wordt gebruikt op internet.

Het curriculum van de EITC/IS/CCTF Computational Complexity Theory Fundamentals omvat theoretische kennis over de grondslagen van de computerwetenschappen en computationele modellen op basisconcepten zoals deterministische en niet-deterministische eindigetoestandsautomaten, reguliere talen, contextvrije grammatica's en taaltheorie, automatentheorie, Turingmachines, beslisbaarheid van problemen, recursie, logica en complexiteit van algoritmiek voor fundamentele beveiligingstoepassingen binnen de volgende structuur, die een uitgebreid en gestructureerd EITCI-certificeringscurriculum en zelfstudiematerialen omvat, ondersteund door gerefereerde open-access video-didactische content als basis voor de voorbereiding op het behalen van deze EITC-certificering door het behalen van een bijbehorend examen.

De computationele complexiteit van een algoritme is de hoeveelheid middelen die nodig is om het te laten werken. Tijd en geheugenbronnen krijgen speciale aandacht. De complexiteit van een probleem wordt gedefinieerd als de complexiteit van de beste algoritmen om het op te lossen. Analyse van algoritmen is de studie van de complexiteit van expliciet gegeven algoritmen, terwijl computationele complexiteitstheorie de studie is van de complexiteit van probleemoplossingen met de bekendste algoritmen. Beide domeinen zijn met elkaar verweven omdat de complexiteit van een algoritme altijd een bovengrens is voor de complexiteit van het probleem dat het oplost. Bovendien is het vaak nodig om de complexiteit van een bepaald algoritme te vergelijken met de complexiteit van het op te lossen probleem bij het construeren van efficiënte algoritmen. In de meeste gevallen is de enige beschikbare informatie over de moeilijkheidsgraad van een probleem dat het minder is dan de complexiteit van de meest efficiënte bekende technieken. Als gevolg hiervan is er veel overlap tussen algoritmeanalyse en complexiteitstheorie.

Complexiteitstheorie speelt niet alleen een belangrijke rol bij de fundamenten van rekenmodellen als basis voor informatica, maar ook bij de grondslagen van klassieke asymmetrische cryptografie (de zogenaamde public-key cryptografie) die wijdverbreid is in moderne netwerken, vooral op internet. De codering met openbare sleutels is gebaseerd op rekenmoeilijke van bepaalde asymmetrische wiskundige problemen, zoals bijvoorbeeld het ontbinden van grote getallen in priemfactoren (deze bewerking is een moeilijk probleem in de classificatie van de complexiteitstheorie, omdat er geen efficiënte klassieke algoritmen bekend zijn om op te lossen het met middelen die polynoom schalen in plaats van exponentieel met de toename van de invoergrootte van het probleem, wat in tegenstelling is tot een zeer eenvoudige omgekeerde bewerking van vermenigvuldigen met bekende priemfactoren om het oorspronkelijke grote getal te geven). Door deze asymmetrie te gebruiken in een architectuur van de public-key cryptografie (door een computationeel asymmetrische relatie te definiëren tussen de publieke sleutel, die gemakkelijk kan worden berekend uit een privésleutel, terwijl de privésleutel niet gemakkelijk kan worden computer van een openbare sleutel, kan men publiekelijk de openbare sleutel aankondigen en andere communicatiepartijen in staat stellen deze te gebruiken voor asymmetrische codering van gegevens, die dan alleen kunnen worden gedecodeerd met de gekoppelde privésleutel, die rekenkundig niet beschikbaar is voor derden, waardoor de communicatie veilig wordt).

De computationele complexiteitstheorie is voornamelijk ontwikkeld op basis van prestaties van pioniers op het gebied van informatica en algoritmiek, zoals Alan Turing, wiens werk cruciaal was voor het doorbreken van het Enigma-cijfer van nazi-Duitsland, dat een belangrijke rol speelde bij het winnen van de Tweede Wereldoorlog door bondgenoten. Cryptanalyse gericht op het bedenken en automatiseren van de computationele processen van het analyseren van gegevens (voornamelijk gecodeerde communicatie) om de verborgen informatie te ontdekken, werd gebruikt om cryptografische systemen te doorbreken en toegang te krijgen tot de inhoud van gecodeerde communicatie, meestal van strategisch militair belang. Het was ook cryptanalyse die de ontwikkeling van de eerste moderne computers katalyseerde (die aanvankelijk werden toegepast op een strategisch doel van het breken van codes). De Britse Colossus (beschouwd als de eerste moderne elektronische en programmacomputer) werd voorafgegaan door de Poolse "bom", een elektronisch rekenapparaat ontworpen door Marian Rejewski om te helpen bij het breken van Enigma-cijfers, en door de Poolse inlichtingendienst aan Groot-Brittannië overgedragen, samen met de buitgemaakte Duitse Enigma-coderingsmachine, nadat Polen in 1939 door Duitsland was binnengevallen. Op basis van dit apparaat ontwikkelde Alan Turing zijn meer geavanceerde tegenhanger om met succes Duitse gecodeerde communicatie te breken, die later is ontwikkeld tot moderne computers.

Omdat de hoeveelheid resources die nodig is om een ​​algoritme uit te voeren varieert met de grootte van de invoer, wordt de complexiteit meestal uitgedrukt als een functie f(n), waarbij n de invoergrootte is en f(n) ofwel de complexiteit in het slechtste geval is ( de maximale hoeveelheid middelen die nodig zijn voor alle inputs van grootte n) of de gemiddelde complexiteit van het geval (het gemiddelde van de hoeveelheid middelen over alle inputs van grootte n). Het aantal vereiste elementaire bewerkingen op een invoer van grootte n wordt gewoonlijk aangegeven als tijdcomplexiteit, waarbij wordt aangenomen dat elementaire bewerkingen een constante hoeveelheid tijd in beslag nemen op een bepaalde computer en slechts met een constante factor veranderen wanneer ze op een andere machine worden uitgevoerd. De hoeveelheid geheugen die een algoritme nodig heeft op een ingang van grootte n staat bekend als ruimtecomplexiteit.

Tijd is de meest beschouwde hulpbron. Wanneer de term "complexiteit" zonder kwalificatie wordt gebruikt, verwijst dit meestal naar de complexiteit van tijd.

De traditionele tijdseenheden (seconden, minuten, enzovoort) worden niet gebruikt in de complexiteitstheorie omdat ze te afhankelijk zijn van de gekozen computer en de vooruitgang van de technologie. Een computer van vandaag kan bijvoorbeeld een algoritme aanzienlijk sneller uitvoeren dan een computer uit de jaren zestig, maar dit is te wijten aan technologische doorbraken in computerhardware en niet zozeer aan een inherente kwaliteit van het algoritme. Het doel van de complexiteitstheorie is om de inherente tijdbehoeften van algoritmen te kwantificeren, of de fundamentele tijdsbeperkingen die een algoritme zou opleggen aan een computer. Dit wordt bereikt door te tellen hoeveel basisbewerkingen tijdens de berekening worden uitgevoerd. Deze procedures worden gewoonlijk stappen genoemd omdat ze geacht worden een constante tijd in beslag te nemen op een bepaalde machine (dwz ze worden niet beïnvloed door de hoeveelheid input).

Een andere belangrijke hulpbron is de hoeveelheid computergeheugen die nodig is om algoritmen uit te voeren.

Een andere veelgebruikte hulpbron is het aantal rekenkundige bewerkingen. In dit scenario wordt de term "rekenkundige complexiteit" gebruikt. De tijdcomplexiteit is over het algemeen het product van de rekenkundige complexiteit met een constante factor als een bovengrens bekend is voor de grootte van de binaire representatie van de getallen die tijdens een berekening optreden.

De grootte van de gehele getallen die tijdens een berekening worden gebruikt, is voor veel methoden niet beperkt, en het is onrealistisch om aan te nemen dat rekenkundige bewerkingen een vaste hoeveelheid tijd vergen. Hierdoor kan de tijdcomplexiteit, ook wel bitcomplexiteit genoemd, aanzienlijk hoger zijn dan de rekenkundige complexiteit. De rekenkundige moeilijkheid bij het berekenen van de determinant van een nn-geheeltallige matrix is ​​bijvoorbeeld O(n^3) voor standaardtechnieken (Gaussiaanse eliminatie). Omdat de grootte van de coëfficiënten tijdens de berekening exponentieel kan toenemen, is de bitcomplexiteit van dezelfde methoden exponentieel in n. Als deze technieken worden gebruikt in combinatie met multimodulaire rekenkunde, kan de bitcomplexiteit worden verlaagd tot O(n^4).

De bitcomplexiteit verwijst in formele termen naar het aantal bewerkingen op bits dat nodig is om een ​​algoritme uit te voeren. Het is gelijk aan de temporele complexiteit tot een constante factor in de meeste rekenparadigma's. Het aantal bewerkingen op machinewoorden dat computers nodig hebben, is evenredig met de bitcomplexiteit. Voor realistische rekenmodellen zijn de tijdcomplexiteit en bitcomplexiteit dus identiek.

De bron die vaak wordt overwogen bij het sorteren en zoeken, is het aantal itemvergelijkingen. Als de data goed geordend is, is dit een goede indicator voor de tijdscomplexiteit.

Op alle mogelijke ingangen is het tellen van het aantal stappen in een algoritme onmogelijk. Omdat de complexiteit van een invoer toeneemt met zijn grootte, wordt deze gewoonlijk weergegeven als een functie van de invoergrootte n (in bits), en dus is de complexiteit een functie van n. Voor ingangen van dezelfde grootte kan de complexiteit van een algoritme echter aanzienlijk variëren. Dientengevolge wordt routinematig een verscheidenheid aan complexiteitsfuncties gebruikt.

De complexiteit in het slechtste geval is de som van alle complexiteit voor alle inputs van grootte n, terwijl de complexiteit van het gemiddelde geval de som is van alle complexiteit voor alle inputs van grootte n (dit is logisch, aangezien het aantal mogelijke inputs van een bepaalde grootte gelijk is aan eindig). Wanneer de term "complexiteit" wordt gebruikt zonder nadere definitie, wordt rekening gehouden met de worst-case tijdcomplexiteit.

Het is bekend dat de complexiteit in het slechtste en gemiddelde geval moeilijk correct te berekenen is. Bovendien hebben deze exacte waarden weinig praktische toepassing, omdat elke verandering in het machine- of berekeningsparadigma de complexiteit enigszins zou variëren. Bovendien is het gebruik van hulpbronnen niet belangrijk voor kleine waarden van n, daarom is implementatiegemak vaak aantrekkelijker dan lage complexiteit voor kleine n.

Om deze redenen wordt de meeste aandacht besteed aan het gedrag van de complexiteit voor hoge n, dat wil zeggen, het asymptotische gedrag als n oneindig nadert. Als gevolg hiervan wordt de grote O-notatie vaak gebruikt om complexiteit aan te geven.

rekenmodellen

De keuze voor een rekenmodel, dat bestaat uit het specificeren van de essentiële handelingen die in een tijdseenheid worden uitgevoerd, is van belang bij het bepalen van de complexiteit. Dit wordt soms een multitape Turing-machine genoemd als het rekenparadigma niet specifiek wordt beschreven.

Een deterministisch rekenmodel is er een waarin de volgende toestanden van de machine en de uit te voeren bewerkingen volledig worden bepaald door de vorige toestand. Recursieve functies, lambda-calculus en Turing-machines waren de eerste deterministische modellen. Random-access machines (ook bekend als RAM-machines) zijn een populair paradigma voor het simuleren van echte computers.

Als het rekenmodel niet is gedefinieerd, wordt meestal uitgegaan van een multitape Turing-machine. Op Turing-machines met meerdere tapes is de tijdscomplexiteit voor de meeste algoritmen hetzelfde als op RAM-machines, hoewel er veel aandacht nodig kan zijn voor de manier waarop gegevens in het geheugen worden opgeslagen om deze gelijkwaardigheid te bereiken.

Bij sommige stappen van de berekening kunnen verschillende keuzes worden gemaakt in een niet-deterministisch computermodel, zoals niet-deterministische Turing-machines. In complexiteitstheorie worden alle haalbare opties tegelijkertijd overwogen, en niet-deterministische tijdscomplexiteit is de hoeveelheid tijd die nodig is wanneer altijd de beste keuzes worden gemaakt. Anders gezegd, de berekening wordt gelijktijdig uitgevoerd op zoveel (identieke) processors als nodig zijn, en de niet-deterministische rekentijd is de tijd die de eerste processor nodig heeft om de berekening te voltooien. Dit parallellisme kan worden gebruikt in kwantumcomputing door gesuperponeerde verstrengelde toestanden te gebruiken bij het uitvoeren van gespecialiseerde kwantumalgoritmen, zoals Shor's factorisatie van kleine gehele getallen bijvoorbeeld.

Zelfs als een dergelijk rekenmodel momenteel niet uitvoerbaar is, heeft het theoretische betekenis, met name met betrekking tot het P = NP-probleem, dat vraagt ​​of de complexiteitsklassen die worden geproduceerd door gebruik te maken van "polynomiale tijd" en "niet-deterministische polynomiale tijd" als de minste bovenste grenzen zijn hetzelfde. Op een deterministische computer vereist het simuleren van een NP-algoritme "exponentiële tijd". Als een taak kan worden opgelost in polynomiale tijd op een niet-deterministisch systeem, behoort deze tot de moeilijkheidsklasse NP. Als een probleem in NP zit en niet eenvoudiger is dan enig ander NP-probleem, wordt het NP-compleet genoemd. Het Knapzakprobleem, het handelsreizigerprobleem en het Booleaanse vervulbaarheidsprobleem zijn allemaal combinatorische NP-compleetproblemen. Het meest bekende algoritme heeft een exponentiële complexiteit voor al deze problemen. Als een van deze problemen zou kunnen worden opgelost in polynomiale tijd op een deterministische machine, dan zouden alle NP-problemen ook in polynomiale tijd kunnen worden opgelost en zou P = NP worden vastgesteld. Vanaf 2017 wordt algemeen aangenomen dat P NP, wat inhoudt dat de ergste situaties van NP-problemen fundamenteel moeilijk op te lossen zijn, dat wil zeggen dat ze veel langer duren dan elke haalbare tijdspanne (decennia) gegeven interessante invoerlengtes.

Parallel en gedistribueerd computergebruik

Parallel en gedistribueerd computergebruik omvat het verdelen van de verwerking over meerdere processors die allemaal tegelijkertijd werken. Het fundamentele onderscheid tussen de verschillende modellen is de manier waarop gegevens tussen processors worden verzonden. Gegevensoverdracht tussen processors is typisch erg snel bij parallel computergebruik, terwijl gegevensoverdracht tussen processors bij gedistribueerd computergebruik plaatsvindt via een netwerk en dus aanzienlijk langzamer is.

Een berekening op N processors neemt ten minste het quotiënt met N in beslag van de tijd die een enkele processor in beslag neemt. In werkelijkheid, omdat sommige subtaken niet kunnen worden geparalleliseerd en sommige processors mogelijk moeten wachten op een resultaat van een andere processor, zal deze theoretisch ideale grens nooit worden bereikt.

De belangrijkste complexiteitskwestie is dus om algoritmen te ontwikkelen zodat het product van rekentijd door het aantal processors zo dicht mogelijk bij de tijd ligt die nodig is om dezelfde berekening op een enkele processor uit te voeren.

Kwantumberekening

Een kwantumcomputer is een computer met een op kwantummechanica gebaseerd rekenmodel. De stelling van de kerk-Turing geldt voor kwantumcomputers, wat impliceert dat elk probleem dat een kwantumcomputer kan oplossen, ook door een Turing-machine kan worden opgelost. Sommige taken kunnen echter theoretisch worden opgelost met behulp van een kwantumcomputer in plaats van een klassieke computer met een aanzienlijk lagere temporele complexiteit. Voorlopig is dit strikt theoretisch, want niemand weet hoe je een praktische kwantumcomputer moet ontwikkelen.

De kwantumcomplexiteitstheorie is ontwikkeld om de verschillende soorten problemen te onderzoeken die door kwantumcomputers kunnen worden opgelost. Het wordt gebruikt in post-kwantumcryptografie, het proces van het maken van cryptografische protocollen die bestand zijn tegen aanvallen van kwantumcomputers.

Complexiteit van het probleem (ondergrenzen)

De complexiteit van de algoritmen die het probleem kunnen oplossen, inclusief onontdekte technieken, is de complexiteit van het probleem. Als gevolg hiervan is de complexiteit van een probleem gelijk aan de complexiteit van elk algoritme dat het oplost.

Als gevolg hiervan vertegenwoordigt elke complexiteit in grote O-notatie een complexiteit van zowel het algoritme als het bijbehorende probleem.

Aan de andere kant is het vaak moeilijk om niet-triviale ondergrenzen te krijgen voor de complexiteit van een kwestie, en er zijn maar weinig strategieën om dit te doen.

Om de meeste problemen op te lossen, moeten alle invoergegevens worden gelezen, wat tijd kost in verhouding tot de omvang van de gegevens. Als gevolg hiervan hebben dergelijke problemen op zijn minst lineaire complexiteit, of, in grote omega-notatie, een complexiteit van Ω(n).

Sommige problemen, zoals die in computeralgebra en computationele algebraïsche meetkunde, hebben zeer grote oplossingen. Omdat de uitvoer moet worden geschreven, wordt de complexiteit beperkt door de maximale grootte van de uitvoer.

Het aantal vergelijkingen dat nodig is voor een sorteeralgoritme heeft een niet-lineaire ondergrens van Ω(nlogn). Als gevolg hiervan zijn de beste sorteeralgoritmen het meest efficiënt omdat hun complexiteit O(nlogn) is. Het feit dat er n! manieren om n dingen te organiseren leidt tot deze ondergrens. Omdat elke vergelijking deze verzameling van n verdeelt! bestellingen in twee stukken, het aantal N-vergelijkingen dat nodig is om alle bestellingen te onderscheiden, moet 2N > n! zijn, wat O (nlogn) impliceert volgens de formule van Stirling.

Het reduceren van een probleem tot een ander probleem is een veelgebruikte strategie voor het verkrijgen van verminderde complexiteitsbeperkingen.

Algoritme ontwikkeling

Het evalueren van de complexiteit van een algoritme is een belangrijk onderdeel van het ontwerpproces, omdat het nuttige informatie geeft over de te verwachten prestaties.

Het is een veel voorkomend misverstand dat, als gevolg van de wet van Moore, die de exponentiële groei van moderne computerkracht voorspelt, het evalueren van de complexiteit van algoritmen minder relevant zal worden. Dit is onjuist omdat het toegenomen vermogen de verwerking van enorme hoeveelheden data (big data) mogelijk maakt. Elk algoritme zou bijvoorbeeld in minder dan een seconde goed moeten werken bij het alfabetisch sorteren van een lijst van enkele honderden vermeldingen, zoals de bibliografie van een boek. Aan de andere kant, voor een miljoen vermeldingen (bijvoorbeeld de telefoonnummers van een grote stad), zouden de basisalgoritmen die O(n2)-vergelijkingen vereisen een biljoen vergelijkingen moeten uitvoeren, wat drie uur zou duren met een snelheid van 10 miljoen vergelijkingen per seconde. Quicksort en merge sort, aan de andere kant, vereisen alleen nlogn-vergelijkingen (als gemiddelde complexiteit voor de eerste, als worst-case complexiteit voor de laatste). Dit levert ongeveer 30,000,000 vergelijkingen op voor n = 1,000,000, wat slechts 3 seconden zou duren bij 10 miljoen vergelijkingen per seconde.

Als gevolg hiervan kan het beoordelen van de complexiteit het mogelijk maken om veel inefficiënte algoritmen te elimineren voordat ze worden geïmplementeerd. Dit kan ook worden gebruikt om complexe algoritmen te finetunen zonder alle mogelijke varianten te hoeven testen. De studie van complexiteit maakt het mogelijk om de inspanningen voor het verhogen van de efficiëntie van een implementatie te concentreren door de duurste stappen van een complex algoritme te bepalen.

Om u in detail vertrouwd te maken met het certificeringscurriculum kunt u onderstaande tabel uitvouwen en analyseren.

Het EITC/IS/CCTF Computational Complexity Theory Fundamentals Certification Curriculum verwijst naar open-access didactisch materiaal in een videovorm. Het leerproces is verdeeld in een stapsgewijze structuur (programma's -> lessen -> onderwerpen) die relevante curriculumonderdelen bestrijkt. Deelnemers kunnen antwoorden raadplegen en relevantere vragen stellen in het gedeelte Vragen en antwoorden van de e-learninginterface onder het momenteel gevorderde EITC-programmacurriculumonderwerp. Direct en onbeperkt advies van domeinexperts is ook toegankelijk via het geïntegreerde online berichtensysteem van het platform, evenals via het contactformulier.
Voor meer informatie over de certificeringsprocedure, zie Hoe het werkt.

Primair ondersteunend leesmateriaal voor het curriculum

S. Arora, B. Barak, Computationele complexiteit: een moderne aanpak
https://theory.cs.princeton.edu/complexity/book.pdf

Secundair ondersteunend leesmateriaal voor het curriculum

O. Goldreich, Inleiding tot de complexiteitstheorie:
https://www.wisdom.weizmann.ac.il/~oded/cc99.html

Ondersteunend leesmateriaal voor het curriculum over discrete wiskunde

J. Aspnes, opmerkingen over discrete wiskunde:
https://www.cs.yale.edu/homes/aspnes/classes/202/notes.pdf

Ondersteunend leesmateriaal voor het curriculum over grafentheorie

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

Download het volledige offline zelflerende voorbereidende materiaal voor het EITC/IS/CCTF Computational Complexity Theory Fundamentals-programma in een PDF-bestand

PDF-pictogram EITC/IS/CCTF voorbereidingsmaterialen – standaardversie

PDF-pictogram EITC/IS/CCTF voorbereidend materiaal – uitgebreide versie met evaluatievragen

Certificeringsprogramma Curriculum

Introductie 1 Onderwerp
Je hebt momenteel geen toegang tot deze content
Lesinhoud
0% voltooid 0/1 stappen
Theoretische inleiding
Eindige-toestandsmachines 6 Hoofdstukken
Je hebt momenteel geen toegang tot deze content
Lesinhoud
0% voltooid 0/6 stappen
Inleiding tot eindige-toestandsmachines
Voorbeelden van eindige toestandsmachines
Operaties op reguliere talen
Inleiding tot niet-deterministische eindige-toestandsmachines
Formele definitie van niet-deterministische eindige-toestandsmachines
Gelijkwaardigheid van deterministische en niet-deterministische FSM's
Reguliere talen 5 Hoofdstukken
Je hebt momenteel geen toegang tot deze content
Lesinhoud
0% voltooid 0/5 stappen
Sluiting van reguliere operaties
Normale uitdrukkingen
Gelijkwaardigheid van reguliere expressies en reguliere talen
Lemma pompen voor reguliere talen
Samenvatting van reguliere talen
Contextvrije grammatica's en talen 4 Hoofdstukken
Je hebt momenteel geen toegang tot deze content
Lesinhoud
0% voltooid 0/4 stappen
Inleiding tot contextvrije grammatica's en talen
Voorbeelden van contextvrije grammatica's
Soorten contextvrije talen
Feiten over contextvrije talen
Contextgevoelige talen 3 Hoofdstukken
Je hebt momenteel geen toegang tot deze content
Lesinhoud
0% voltooid 0/3 stappen
Chomsky Normale vorm
Chomsky Hiërarchie en contextgevoelige talen
Het pompende Lemma voor CFL's
Pushdown-automaten 3 Hoofdstukken
Je hebt momenteel geen toegang tot deze content
Lesinhoud
0% voltooid 0/3 stappen
PDA's: Pushdown-automaten
Gelijkwaardigheid van CFG's en PDA's
Conclusies van gelijkwaardigheid van CFG's en PDA's
Turing Machines 9 Hoofdstukken
Je hebt momenteel geen toegang tot deze content
Lesinhoud
0% voltooid 0/9 stappen
Inleiding tot Turing-machines
Voorbeelden van Turing Machine
Definitie van TM's en gerelateerde taallessen
De stelling van de kerk-Turing
Turing Machine programmeertechnieken
Multitape Turing-machines
Non-determinisme in Turing Machines
Turingmachines als probleemoplossers
tellers
Beslisbaarheid 17 Hoofdstukken
Je hebt momenteel geen toegang tot deze content
Lesinhoud
0% voltooid 0/17 stappen
Beslisbaarheid en beslisbare problemen
Meer beslissende problemen voor DFA's
Problemen met contextvrije talen
Universele Turing Machine
Oneindigheid - telbaar en ontelbaar
Talen die niet Turing-herkenbaar zijn
Onbeslisbaarheid van het stopprobleem
Taal die niet herkenbaar is voor Turing
Reduceerbaarheid - een techniek om onbeslisbaarheid te bewijzen
Stop probleem - een bewijs door reductie
Accepteert een TM elke string?
Computable functies
Gelijkwaardigheid van Turing-machines
De ene taal terugbrengen naar de andere
Het probleem met de postcorrespondentie
Besluiteloosheid van de PCP
Lineair gebonden automaten
Recursie 5 Hoofdstukken
Je hebt momenteel geen toegang tot deze content
Lesinhoud
0% voltooid 0/5 stappen
Programma dat zichzelf afdrukt
Turing Machine die een beschrijving van zichzelf schrijft
Recursiestelling
Resultaten van de recursiestelling
De stelling van het vaste punt
Logica 4 Hoofdstukken
Je hebt momenteel geen toegang tot deze content
Lesinhoud
0% voltooid 0/4 stappen
Predikaatlogica van de eerste orde - overzicht
Waarheid, betekenis en bewijs
Ware uitspraken en aantoonbare uitspraken
Godel's onvolledigheidsstelling
Ingewikkeldheid 8 Hoofdstukken
Je hebt momenteel geen toegang tot deze content
Lesinhoud
0% voltooid 0/8 stappen
Tijdcomplexiteit en big-O-notatie
De looptijd van een algoritme berekenen
Tijdscomplexiteit met verschillende rekenmodellen
Tijdscomplexiteitsklassen P en NP
Definitie van NP en polynoom verifieerbaarheid
NP-volledigheid
Bewijs dat SAT NP compleet is
Ruimtecomplexiteitsklassen
EITC/IS/CCTF Grondbeginselen van computationele complexiteitstheorie
Je hebt momenteel geen toegang tot deze content
Home » Mijn Account

Certificatiecentrum

Programma Home
Introductie
Theoretische inleiding
Eindige-toestandsmachines
Inleiding tot eindige-toestandsmachines
Voorbeelden van eindige toestandsmachines
Operaties op reguliere talen
Inleiding tot niet-deterministische eindige-toestandsmachines
Formele definitie van niet-deterministische eindige-toestandsmachines
Gelijkwaardigheid van deterministische en niet-deterministische FSM's
Reguliere talen
Sluiting van reguliere operaties
Normale uitdrukkingen
Gelijkwaardigheid van reguliere expressies en reguliere talen
Lemma pompen voor reguliere talen
Samenvatting van reguliere talen
Contextvrije grammatica's en talen
Inleiding tot contextvrije grammatica's en talen
Voorbeelden van contextvrije grammatica's
Soorten contextvrije talen
Feiten over contextvrije talen
Contextgevoelige talen
Chomsky Normale vorm
Chomsky Hiërarchie en contextgevoelige talen
Het pompende Lemma voor CFL's
Pushdown-automaten
PDA's: Pushdown-automaten
Gelijkwaardigheid van CFG's en PDA's
Conclusies van gelijkwaardigheid van CFG's en PDA's
Turing Machines
Inleiding tot Turing-machines
Voorbeelden van Turing Machine
Definitie van TM's en gerelateerde taallessen
De stelling van de kerk-Turing
Turing Machine programmeertechnieken
Multitape Turing-machines
Non-determinisme in Turing Machines
Turingmachines als probleemoplossers
tellers
Beslisbaarheid
Beslisbaarheid en beslisbare problemen
Meer beslissende problemen voor DFA's
Problemen met contextvrije talen
Universele Turing Machine
Oneindigheid - telbaar en ontelbaar
Talen die niet Turing-herkenbaar zijn
Onbeslisbaarheid van het stopprobleem
Taal die niet herkenbaar is voor Turing
Reduceerbaarheid - een techniek om onbeslisbaarheid te bewijzen
Stop probleem - een bewijs door reductie
Accepteert een TM elke string?
Computable functies
Gelijkwaardigheid van Turing-machines
De ene taal terugbrengen naar de andere
Het probleem met de postcorrespondentie
Besluiteloosheid van de PCP
Lineair gebonden automaten
Recursie
Programma dat zichzelf afdrukt
Turing Machine die een beschrijving van zichzelf schrijft
Recursiestelling
Resultaten van de recursiestelling
De stelling van het vaste punt
Logica
Predikaatlogica van de eerste orde - overzicht
Waarheid, betekenis en bewijs
Ware uitspraken en aantoonbare uitspraken
Godel's onvolledigheidsstelling
Ingewikkeldheid
Tijdcomplexiteit en big-O-notatie
De looptijd van een algoritme berekenen
Tijdscomplexiteit met verschillende rekenmodellen
Tijdscomplexiteitsklassen P en NP
Definitie van NP en polynoom verifieerbaarheid
NP-volledigheid
Bewijs dat SAT NP compleet is
Ruimtecomplexiteitsklassen
EITC/IS/CCTF Grondbeginselen van computationele complexiteitstheorie

GEBRUIKERSMENU

  • Mijn Account

CERTIFICAATCATEGORIE

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

Waar ben je naar op zoek?

  • Introductie
  • Hoe werkt het?
  • EITCA-academies
  • EITCI DSJC-subsidie
  • Volledige EITC-catalogus
  • Jouw order
  • Uitgelicht
  •   IT ID
  • EITCA beoordelingen (Medium publ.)
  • Over ons
  • Contact

EITCA Academy maakt deel uit van het Europese IT-certificeringskader

Het Europese IT-certificeringskader is in 2008 opgericht als een in Europa gevestigde en leveranciersonafhankelijke standaard voor breed toegankelijke online certificering van digitale vaardigheden en competenties op vele gebieden van professionele digitale specialisaties. Het EITC-kader wordt beheerst door de Europees IT-certificeringsinstituut (EITCI), een certificeringsinstantie zonder winstoogmerk die de groei van de informatiemaatschappij ondersteunt en de kloof in digitale vaardigheden in de EU overbrugt.

Geschiktheid voor EITCA Academy 80% EITCI DSJC Subsidie-ondersteuning

80% van de EITCA Academy-vergoedingen gesubsidieerd bij inschrijving door

    Secretariaat van de EITCA Academie

    Europees IT-certificeringsinstituut ASBL
    Brussel, België, Europese Unie

    Operator van het EITC/EITCA-certificeringskader
    Geldende Europese IT-certificeringsnorm
    Toegang tot Contactformulier of bel + 32 25887351

    Volg EITCI op X
    Bezoek EITCA Academy op Facebook
    Neem contact op met EITCA Academy op LinkedIn
    Bekijk EITCI- en EITCA-video's op YouTube

    Gefinancierd door de Europese Unie

    Gefinancierd door de Europees Fonds voor Regionale Ontwikkeling (EFRO) en Europees Sociaal Fonds (ESF) in een reeks projecten sinds 2007, momenteel beheerd door de Europees IT-certificeringsinstituut (EITCI) sinds 2008

    Informatiebeveiligingsbeleid | DSRRM en AVG-beleid | Gegevensbeschermingsbeleid | Registratie van verwerkingsactiviteiten | HSE-beleid | Anticorruptiebeleid | Beleid inzake moderne slavernij

    Automatisch vertalen naar uw taal

    Algemene Voorwaarden | Privacybeleid
    EITCA Academie
    • EITCA Academy op sociale media
    EITCA Academie


    © 2008-2025  Europees IT-certificeringsinstituut
    Brussel, België, Europese Unie

    TOP
    Chat met ondersteuning
    Chat met ondersteuning
    Vragen, twijfels, problemen? Wij zijn hier om u te helpen!
    Einde gesprek
    Verbinden...
    Heb je nog vragen?
    Heb je nog vragen?
    :
    :
    :
    Verstuur
    Heb je nog vragen?
    :
    :
    Start Chat
    De chatsessie is beëindigd. Dank u!
    Beoordeel de ondersteuning die u heeft ontvangen.
    Goed slecht