Voor mijn eindwerk

Published:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

Inleiding

Voor mijn eindwerk in het zesde middelbaar heb ik gekozen voor het vak wiskunde. In overleg met mijn begeleidende leerkracht heb ik besloten om algoritmen als onderwerp te kiezen. Bij het op zoek gaan naar een geschikte onderzoeksvraag heb ik mij laten leiden door mijn voorliefde voor multimedia en meer bepaald voor pc's. Hierdoor kwam ik bij de onderzoeksvraag "Op welke manier beïnvloedt de keuze van een algoritme de snelheid van een computer?"

Om een antwoord te vinden op deze onderzoeksvraag, moest ik eerst een antwoord zien te vinden op enkele andere vragen zoals "Wat is een algoritme?", "Hoe bepaalt men de snelheid van een algoritme?" en "Wanneer wordt er een beroep gedaan op een algoritme?".

Deze eerste deelvraag, die het begrip "algoritme" duidt, heb ik kunnen onderverdelen in ten eerste de etymologie van een algoritme, ten tweede de definitie van een algoritme, ten derde de voorwaarden om een juist algoritme op te stellen en ten vierde de doelen waarvoor algoritmen gebruikt worden. Dit alles wordt besproken in hoofdstuk 1.

Een volgende deelvraag ging over de twee grote delen van een computer, namelijk de hardware en de software. Deze vielen weer onder te verdelen in subdelen. Dit alles wordt beschreven in hoofdstuk 2.

In het derde hoofdstuk heb ik het over de relatie tussen deze algoritmen met de computersnelheid en in hoofdstuk 4 uiteindelijk staat mijn besluit.

Voor het maken van dit eindwerk en voor het vinden van de informatie heb ik gebruik gemaakt van het internet en verschillende publicaties, waaronder enkele cursussen uit de richting informatica.

1 Algoritmen

1.1 Etymologie

1.1.1 Volgens professor Veerle Fack[1]

Professor Veerle Fack vertelt in haar cursus "Algoritmen en datastructuren" dat het woord algoritme oorspronkelijk van de naam van een Perzische wiskundige, al-Khw-arizm-l genaamd, komt. Ze vertelt hierbij hoe deze in de negende eeuw een werk schreef dat in de twaalfde eeuw werd vertaald als "Algoritmi de numero Indorum", wat in het Nederlands "Algoritmen over de getallen van de Indiërs" wordt. Hierbij zegt ze dat het woord "Algoritmi" in deze titel een verbastering is van al-Khw-arizm-l, de naam van de auteur van het oorspronkelijk werk. Later werd deze echter verkeerd geïnterpreteerd: men beschouwde het namelijk als een Latijnse meervoudsvorm. Hieruit ontstond het Latijnse woord "Algorithmus", waarvan wij nu de verwante vorm gebruiken.

1.1.2 Volgens Wikipedia[2]

Op wikipedia is echter terug te vinden hoe het woord algoritme afkomstig zou zijn van het Oud-Engelse woord "algorism". Dit zou afgeleid zijn van het Latijnse woord "algorismus", dat op zijn beurt komt van het Arabische woord "algawarizmiat": ???????????, wat afgeleid zou zijn, van de Arabische wiskundige Al-Chwarizmi: ????????? ???? ?? ????. Deze leefde van circa 780 tot circa 845 en schreef het boek "al-Kitab al-mukhtasar fi hisab al-jabr w'al-muqabala" (Boek van de beknopte rekenkundige algebra en handelsbalans). Dit boek introduceerde de algebra in de Westerse wereld. Verder wordt er in dat artikel ook nog verteld over hoe het woord "algorisme" oorspronkelijk alleen maar verwees naar het rekenen met Arabische cijfers. Later, in de achtiende eeuw, veranderde "algorisme" dan naar "algoritme".

1.2 Definitie

Voor de definitie heb ik allereerst gebruik gemaakt van het woordenboek van Dale, vervolgens van enkele online woordenboeken, de cursus van professor Veerle Fack en als laatste een Engelse cursus.

1.2.1 Volgens van Dale

"algorit'me, o. (-n), rekenschema, voorschrift voor het uitvoeren van rekenkundige operaties en de volgorde daarvan."[3]

1.2.2 Volgens online woordenboeken[4]

  • een aantal nauwkeurig gedefinieerde bewerkingsregels of methoden die zijn opgesteld om een bepaald resultaat te verkrijgen uit een eindig aantal bewerkingen;
  • nauwkeurig gedefinieerde regels of procedure om een gesteld resultaat te verkrijgen uit een eindig aantal bewerkingen;
  • rekenschema, bewijsschema of werkschema, opgebouwd uit een rij eenduidige vragen en opdrachten die één voor één na elkaar uitgevoerd moeten worden in een voorop bepaalde volgorde;
  • een eindige reeks stappen waarin een bepaald wiskundig probleem kan worden opgelost. Goede algoritmes vormen vaak de basis van een efficiënt computerprogramma;
  • bij elkaar behorende instructies in een programmeertaal die een bepaald probleem oplossen of een bepaalde taak uitvoeren.

1.2.3 Volgens professor Veerle Fack[5]

Professor Veerle Fack meent dat het woord "algoritme" wordt gebruikt met als betekenis "berekeningsmethode". Het is een oplossingsmethode die met de computer kan worden uitgevoerd. De methode is van toepassing wanneer men een algoritmisch probleem[6] wil oplossen. Hiervoor bekijken we het probleem als een functie, waarbij het algoritme de input met behulp van deze functie omvormt tot de gewenste output. Kenmerkend is dat er verschillende algoritmes kunnen bestaan om een probleem op te lossen. Er zijn namelijk ook verschillende recepten voor één bepaald gerecht. Echter een bepaald algoritme heeft maar één bepaalde oplossing: wanneer men hetzelfde recept gebruikt met dezelfde ingrediënten, dan is het uiteindelijk product steeds hetzelfde. Hier kom ik nog op terug bij de voorwaarden.

1.2.4 Volgens een Engelse cursus

"Informally, an algorithm is any well-defined computational procedure that takes some value, or set of values, as input and produces some value, or set of values, as output. An algorithm is thus a sequence of computational steps that transform the input into the output.

We can also view an algorithm as a tool for solving a well-specified computational problem. The statement of the problem specifies in general terms the desired input/output relationship. The agorithm describes a specific computational procedure for achieving that input/output relationship."[7]

1.3 Doel

Algoritmen worden in verscheidene situaties gebruikt. Telkens gaat het om een bepaalde input die moet worden omgezet naar een output. Het algoritme wordt hierbij beschouwd als de functie en wordt vaak vergeleken met een recept: wanneer men de juiste ingrediënten (input) heeft en het recept (het algoritme) correct volgt, bekomt men het gewenste resultaat (de output).

1.4 Voorwaarden

Bij het opstellen van zo een algoritme zijn er wel enkele voorwaarden waar men aan moet voldoen. In de cursus van Veerle Fack[8] worden volgende voorwaarden opgesomd:

  1. correct: Allereerst moet men zorgen dat het algoritme de gegeven input telkens opnieuw naar de juiste output omzet;
  2. concrete stappen: Ten tweede moeten de stappen in een algoritme te begrijpen en uitvoerbaar zijn in een eindige hoeveelheid tijd;
  3. niet dubbelzinnig: Als derde voorwaarde moet het duidelijk zijn wat de volgende stap is. Bij een programmeertaal wordt vaak de if-opdracht gebruikt, waardoor er een keuze van de volgende, uit te voeren stap, ontstaat, maar deze keuze mag niet dubbelzinnig zijn;
  4. eindig aantal stappen: Een vierde voorwaarde is dat een algoritme moet bestaan uit een eindig aantal stappen. Zo niet zou het algoritme onuitvoerbaar zijn, wat in strijd is met de tweede voorwaarde. While- en for-opdrachten kunnen wel gebruikt worden. Deze worden gebruikt voor herhaaldelijk uit te voeren handelingen en noemen we constructies voor iteratie;
  5. eindig algoritme: De vijfde en laatste voorwaarde gaat verder op de vierde voorwaarde: wanneer men gebruik maakt van een while- of for-lus, dan moet men rekening houden dat het algoritme niet in een oneindige lus terecht komt.

2 De computer

2.1 De hardware[9]

Onder hardware verstaan we alle fysische componenten van de computer. De belangrijkste delen hiervan zijn de CPU, het geheugen en de in- en output apparaten (I/O).

2.1.1 De CPU

De CPU (in het Engels "Central Processing Unit"[10]) of processor wordt door sommige bronnen als het hart van de computer beschouwd, maar persoonlijk vergelijk ik de CPU het liefst met de hersenen. Het bestaat uit miljoenen transistors (te vergelijken met de connecties in onze hersenen) die via elektrische signalen informatie doorgeven.

De belangrijkste taken van de CPU zijn het inladen van algoritmen en het uitvoeren van de instructies in deze algoritmen.

De snelheid van een CPU wordt uitgedrukt in het aantal klokslagen van de centrale klok per tijdseenheid, wat vaak wordt weergegeven in megahertz (MHz) of gigahertz (GHz)[11].

De rekenkracht wordt dan weer uitgedrukt in FLOPS (Floating Point Operations per Second)[12].

Opmerking:

De CPU kan maar één handeling tegelijk uitvoeren. Door het snelle afwisselen tussen de verschillende taken lijkt het wel dat deze simultaan verlopen. Het is daarom dat men in de computers van tegenwoordig een CPU steekt die in meerdere onafhankelijke delen (kernen) is opgedeeld. Zo kunnen er dus ook meerdere processen tegelijk worden uitgevoerd en is de computer bijgevolg ook sneller.

Voorbeelden:

Intel® Pentium® 4 (3,4 GHz), AMD AthlonTM (2,7 GHz) [1 proces tegelijk];

Intel® duo core (met twee kernen) [2 processen tegelijk];

Intel® quad core (met vier kernen) [4 processen tegelijk].

2.1.2 Het geheugen

Het geheugen wordt gebruikt om programma's en data (gegevens) op te slaan. Dit gebeurt in de vorm van bits[13].

Er bestaan twee vormen, namelijk het primaire en het secundaire geheugen.

Het primaire geheugen bestaat uit het snelle[14] cache-geheugen, dat meestal op de CPU chip zit ingebouwd, en het RAM (Random Acces Memory) geheugen dat iets minder snel is dan het cache-geheugen en op aparte chips is geïmplementeerd. Ze zijn beiden snel, hebben een kleine capaciteit en zijn vluchtig, wat wil zeggen dat ze elektrische stroom nodig hebben om de informatie, die erop opgeslagen is, niet te verliezen. Ook is er ROM (Read Only Memory) geheugen waarvan enkel gelezen kan worden en bijgevolg enkel wordt gebruikt voor de belangrijke, permanente software die nodig is om een computer op te starten. Het ROM geheugen behoort niet tot het primaire geheugen.

Wanneer men meer capaciteit wil en permanente opslag zonder blijvende elektrische stroom, moet men kiezen voor het secundaire geheugen. Hieronder vallen onder andere de harde schrijven, diskettes, usb-sticks, CD's en DVD's. Hun lees- en schrijfsnelheid is echter lager.

Bij het samenstellen van een computer moet men dus een juist evenwicht vinden.

2.1.3 In- en output apparaten (I/O)

Onder Input en Output apparaten (I/O) verstaan we onder andere het toetsenbord, de muis, het scherm, een scanner, ... Ook bij deze gebeurt de communicatie met de CPU via bits. Het is niet moeilijk te verstaan dat, hoe meer randapparatuur er gebruikt wordt, hoe trager een computer kan zijn, aangezien de CPU maar één communicatieaanvraag per keer kan afhandelen.

2.2 De software[15]

De software van een computer zijn de programma's die draaien op de hardware. We kunnen deze onderverdelen in toepassingssoftware en in systeemsoftware.

2.2.1 Toepassingssoftware

Onder toepassingssoftware worden programma's als tekstverwerkers, programma's voor grafisch ontwerp en voor toegang tot het web verstaan. Als we weten dat de programmacode van dergelijke programma's geschreven wordt met verschillende korte commando's en dat de CPU maar één commando tegelijk kan uitvoeren, kunnen we afleiden dat hoe meer commando's er nodig zijn om het programma te laten werken, hoe meer tijd de CPU hiervoor nodig heeft en hoe trager wij de computer ervaren.

Voorbeelden:

Tekstverwerkers: Microsoft Word, Open Office;

Programma's voor grafisch ontwerp: Adobe Photoshop, GIMP;

Programma's voor toegang tot het web: Internet Explorer, Mozilla Firefox.

2.2.2 Systeemsoftware

Systeemsoftware daarentegen staat in voor de juiste werking van de hardware (door middel van drivers) en het gedrag van de computer. Het belangrijkste stukje systeemsoftware is het besturingssysteem. Hierin worden de drivers geïnstalleerd, die moeten zorgen voor een juiste samenwerking van de I/O apparaten met het geheugen en de CPU. Een andere taak van het besturingssysteem is het gemakkelijker en aangenamer maken van de interactie tussen gebruiker en computer door middel van een grafische userinterface (GUI). De belangrijkste taak echter is, in mijn ogen, het gebruiken van scheduling-algoritmen die bepalen welk programma of I/O apparaat op welk moment toegang krijgt tot de CPU, omdat deze algoritmen mee de snelheid van een computer bepalen.

Voorbeelden van besturingssystemen:

Microsoft Windows, Mac OS en Linux.

3. Relatie algoritmen - computersnelheid

In dit hoofdstuk gaan we het hebben over de snelheid van een algoritme, de snelheid van de computer en het onderlinge verband.

3.1 Snelheid

3.1.1 De snelheid van een algoritme[16]

Net zoals in de cursus van Frank De Proft gaan we ter verduidelijking gebruik maken van een voorbeeld. We gaan uit van het volgende: we zoeken de leeftijd van de oudste persoon in een groep mensen.

Het eerste algoritme dat we hiervoor opstellen bevat de volgende stappen:

  1. we zetten de mensen in een willekeurige volgorde in een rij;
  2. we vragen aan de eerste persoon in de rij zijn leeftijd en onthouden deze;
  3. we vragen de leeftijd van de tweede persoon. Is de tweede persoon ouder dan mag deze blijven staan en gaat de vorige persoon weg, zo niet gaat de tweede persoon weg;
  4. we herhalen stappen 2 en 3 tot er maar één persoon meer overblijft.

Bij dit algoritme hangt de tijd die we eraan spenderen af van het aantal personen in de kamer en de tijd die we erover doen per persoon. Stel dat er 50 mensen in de kamer zijn en per persoon doet men 5 seconden, dan duurt het algoritme 50 x 5 = 250 seconden. Hoe meer mensen in de rij, hoe langer het algoritme duurt. Men zegt dat dit algoritme een algoritme is, "Big-Oh" genaamd, waarbij de uitvoeringstijd evenredig is met de grootte van het probleem.

Voor dit probleem kunnen we ook een ander algoritme opstellen, namelijk het volgende:

1. we zetten de mensen in een willekeurige volgorde in een rij;

2. wanneer er meer dan één persoon in de rij staat:

  • zetten we de mensen per twee. Wanneer het aantal mensen oneven is, blijft de laatste gewoon staan;
  • we laten elk koppel hun leeftijd vergelijken;
  • we verwijderen de jongste van elk koppel uit de rij;

3. we herhalen stap 2 tot er maar één persoon meer overblijft.

Bij dit algoritme worden er meerdere handelingen tegelijk uitgevoerd. Hieruit kunnen we afleiden dat de tijd om het algoritme uit te voeren evenredig is met het aantal stappen nodig om maar één persoon meer over te houden. Stellen we nu dat er 8 personen aanwezig zijn, dan zijn er 3 stappen nodig, namelijk: . Bij 16 personen is dit 4 stappen. Dit halveringseffect bekomen we met het logaritme [17].

Dit algoritme noemt men dus een algoritme, omdat de uitvoeringstijd evenredig is met het logaritme van de probleemgrootte. Dit wil dus zeggen dat als de grootte van het probleem verdubbelt, de tijd om het algoritme uit te voeren met een constante hoeveelheid tijd, gelijk aan de tijd nodig voor één extra schiftingsproces, toeneemt.

Het is dus duidelijk dat er een groot verschil in tijd (en dus in snelheid) bestaat tussen deze twee soorten algoritmen. Zeker wanneer het probleem dat zich stelt extreem groot is.[18]

3.1.2 De snelheid van een computer[19]

De snelheid van een computer hangt af van de soort processor (CPU) die men gebruikt en van het algoritme dat men gebruikt om de processen aan de processor toe te wijzen.

Om dit te illustreren maken we gebruik van de eerder beschreven algoritmen waarbij we ervan uitgaan dat elke groep bestaat uit dertien personen.

Elk algoritme moet hier 12 keer vergelijken om de oudste van 13 personen te vinden. Voor beide algoritmen heeft de computer dus evenveel tijd nodig, aangezien hij maar één vergelijking (= 1 proces) tegelijkertijd kan doen. De uitvoeringstijd zal dus gelijk blijven.

3.1.2.2 De snelheid van een algoritme bij een CPU met 2 kernen

Wanneer we op een computer met een CPU met 2 kernen het algoritme zouden gebruiken, dan zou de uitvoeringstijd hetzelfde blijven als bij een computer met een CPU met maar 1 kern. Dit komt omdat bij het algoritme de verschillende stappen na elkaar moeten gebeuren aangezien men moet wachten op de vorige stap (de vorige vergelijking) eer men aan de volgende stap kan beginnen.

Het algoritme echter zou de stappen kunnen opsplitsen over de twee kernen. Hierbij zou de ene kern bijvoorbeeld het linker deel van het schema kunnen uitvoeren en parallel daarvan de tweede kern het rechter deel:

3.2 Algoritmen in de software

Zoals in het vorige hoofdstuk al vermeld, komen algoritmen voor in de software. Wederom maken we de opsplitsing tussen toepassingssoftware en systeemsoftware.

3.2.1 Toepassingssoftware

3.2.1.1 Sorteeralgoritmen[20]

Een sorteeralgoritme wordt, zoals de naam het al zegt, gebruikt om elementen (input) te ordenen in een bepaalde volgorde. Naar gelang de aard van de te sorteren input, is de keuze verschillend. Ze verschillen allemaal in snelheid, geheugengebruik en gedrag wanneer het aantal te sorteren elementen toeneemt.

Ook worden deze sorteeralgoritmen gebruikt bij datacompressie.

Voorbeelden:

Bubblesort, Insertion sort, Selection sort, Straight selection sort, Shellsort, Mergesort, Heapsort, Quicksort, Hashsort, Counting sort en Bogosort.

3.2.1.2 Optimalisatiealgoritmen[21]

Net zoals bij sorteeralgoritmen, verraadt ook de naam optimalisatiealgoritmen waarvoor ze dienen, namelijk het vinden van de beste oplossing voor zeer grote problemen. Doordat ze zo een grote oplossingsruimte hebben, is het moeilijk om alle mogelijke oplossingen af te gaan.

Ze worden gebruikt bij operationeel onderzoek waarbij het niet veel uitmaakt wat de verhouding is tussen de kwaliteit van de te bekomen oplossing en de kwaliteit van de beste oplossing. Dit is in tegenstelling tot benaderingsalgoritmen zoals de lineaire optimalisatiealgoritmen, de globale optimalisatiealgoritmen en de lokale optimalisatiealgoritmen.

Voorbeelden:

Van globale optimalisatiealgoritmen: genetisch algoritme, simulated annealing, mierenkoloniealgoritme;

Van lokale optimalisatiealgoritmen: Newton-Raphson, Steepest descent, Tabu search en Variable Metric.

3.2.1.3 Andere toepassingen

  • evolutionaire algoritmen
  • compressie en decompressie
  • encryptie en decryptie
  • coderen en decoderen

3.2.2 Systeemsoftware[22]

De systeemsoftware heeft, zoals in hoofdstuk 2.2.2 besproken, veel belangrijke taken. De belangrijkste die invloed heeft op de snelheid van een computer is het bepalen van de volgorde waarin hardware en software toegang krijgen tot de CPU (CPU-scheduling). Dit wordt bepaald door scheduling-algoritmen, welke ik in de volgende paragrafen ga bespreken.

3.2.2.1 First-Come-First-Served (FCFS)-algoritme

Dit is het eenvoudigste algoritme dat, zoals de naam al zegt, het eerste proces dat toegang tot de CPU vraagt, ook het eerst de toegang geeft. Hierbij wordt elk nieuw proces telkens aan het einde van de wachtrij toegevoegd.

Dit algoritme zal altijd de optimale gemiddelde wachttijd bezorgen, maar de duur van een proces is nooit van te voren geweten. De computer kan deze wel voorspellen.

3.2.2.3 Prioriteits-algoritmen

Soms zijn er processen, zoals systeemprocessen van de systeemsoftware, die belangrijker zijn dan andere processen, zoals deze van de toepassingssoftware omdat ze de goede werking van de computer moeten garanderen. We zeggen dat deze processen een hogere prioriteit hebben.

Wanneer men alleen maar de prioriteit in acht neemt, gebruikt men dus een prioriteits-algoritme.

3.2.2.4 Round-Robin (RR)-algoritme

Het round-robin-algoritme maakt gebruik van een bepaalde tijdsduur, tussen de 10 en de 100 milliseconden. Het proces dat aan de beurt is, krijgt dus gedurende deze tijdsduur de tijd om de CPU te gebruiken. Is het proces niet klaar met zijn gebruik, dan wordt de vordering opgeslagen en is het volgende proces aan de beurt. Het proces komt achteraan de wachtrij terecht en wacht tot het weer aan de beurt is, waarbij de vordering wordt geladen en het proces verdergaat. Is het proces eerder klaar, dan wordt de tijd niet opgebruikt en is direct het volgende proces in de wachtrij aan de beurt.

3.2.2.5 Andere scheduling-algoritmen

In de nieuwste computers zijn er meerdere CPU's aanwezig. Het spreekt voor zich dat er in deze gevallen een algoritme gebruikt moet worden dat gebruik kan maken van de meerdere kernen.

4. Besluit

Een algoritme is een methode om een bepaald probleem op te lossen. Als oplossing kunnen er meerdere mogelijkheden zijn. Het algoritme moet bestaan uit een eindig aantal concrete stappen en correct, niet dubbelzinnig en eindig zijn.

De door een algoritme bekomen snelheid hangt af van de te verwerken data (input) en de manier van oplossen: er is een verschil in uitvoeringstijd tussen een probleem dat opgelost wordt met een algoritme en een probleem dat opgelost wordt met een algoritme. Men moet hierbij echter wel rekening houden bij het feit of de computer waarop het algoritme wordt uitgevoerd, beschikt over een CPU met één kern of een CPU met meerdere kernen. Een algoritme kan nog zo snel zijn, het zal altijd begrensd worden door de hardware van de computer.

De snelheid van een computer hangt dan weer af van de gebruikte hardware en de manier waarop de software geprogrammeerd is; dus welke algoritmen er in gebruikt worden. Dit is vooral van toepassing op de CPU waar de kloksnelheid en het aantal kernen het belangrijkste zijn. Hieraan moeten de gebruikte algoritmen aangepast zijn.

Om een snelle computer samen te stellen, moet men dus een goede keuze maken voor de hardware die men nodig zal hebben om de beoogde software te kunnen gebruiken. Anderzijds moeten softwaremakers rekening houden met de beschikbare hardware die de computergebruiker ter beschikking heeft. Hieraan moet men de gebruikte algoritmen in de software aanpassen.

5. Literatuurlijst

5.1 Boeken

  1. FACK, V., Algoritmen en datastructuren, Acco, Leuven, 2007, p. 2.
  2. WIKIPEDIA, Algoritme, internet, 3 februari, (http://nl.wikipedia.org/wiki/Algoritme).
  3. GEERTS, G. en HEESTERMANS, H., van Dale, Groot woordenboek der Nederlandse taal, Elfde herziene druk, 1984, Eerste deel A-I, p 161.
  4. ENCYCLO, Algoritme (Betekenis/Definitie van), internet, 3 februari, (http://www.encyclo.nl/begrip/algoritme).
  5. FACK, V., Algoritmen en datastructuren, Acco, Leuven, 2007, p. 3
  6. Algoritmisch probleem: Een eindige of oneindige verzameling van toegelaten inputwaarden, samen met een specificatie van de gewenste output als functie van de input, noemt men een algoritmisch probleem als er ten minste één oplossingsmethode bestaat die voor elke legale input de gewenste output voortbrengt.
  7. CORMEN H. T., Introduction to algorithms, Second Edition, The MIT Press, Cambridge, Massachusetts London, England, 2002, p. 5.
  8. Vertaling:

    Informeel is een algoritme elk welgedefinieerde mathematische procedure die een gegeven waarde of set van waarden, als input neemt en daaruit een waarde of set van waarden produceert als output. Een algoritme is dus eenopeenvolging van mathematische bewerkingen die de input ombouwt tot output. We kunnen ook een algoritme beschouwen als een werktuig om een gespecificeerd mathematisch probleem op te lossen. De beschrijving van het probleem specificeert in algemene termen de verwachte relatie tussen de input en de output. Het algoritme beschrijft een mathematische procedure om de relatie tussen input en output te verwezenlijken..

  9. FACK, V., Algoritmen en datastructuren, Acco, Leuven, 2007, p. 3-4
  10. DE PROFT, F., cursus hoofdstuk 1, internet, (http://homepages.vub.ac.be/~fdeprof/Hoofdstuk1.pdf), p. 13-19.
  11. In het Nederlands de "centrale verwerkingseenheid".
  12. 1 MHz = 1 miljoen cycli per seconde; 1 GHz = 1 miljard cycli per seconde.
  13. In het Nederlands: drijvende-kommabewerkingen per seconde. Ter vergelijking: huidige CPU's halen tussen 20 en 100 GFlops.
  14. Een bit kan ofwel een 0 of een 1 zijn. Een byte is een verzameling van 8 bits en kan dus 28=256 mogelijke waarden weergeven. Een kilobyte (KB) is gelijk aan ongeveer 1000 bytes, een megabyte (MB) ongeveer een 1 miljoen bytes en een gigabyte (GB) aan ongeveer 1 miljard bytes. Nu komt ook de terabyte (TB) op die ongeveer overeenstemt met 1000 miljard bytes. + zie bijlage 2: Bitpatronen en veel gebruikte eenheden voor data opslag.
  15. De snelheid wordt bepaald door de transfer van het aantal bits.
  16. DE PROFT, F., cursus hoofdstuk 1, internet, (http://homepages.vub.ac.be/~fdeprof/Hoofdstuk1.pdf), p. 19-20.
  17. DE PROFT, F., cursus hoofdstuk 1, internet, (http://homepages.vub.ac.be/~fdeprof/Hoofdstuk1.pdf), p. 8-11.
  18. duidt aan dat er afgerond moet worden naar het volgende gehele getal, indien nodig. Zie bijlage 1.
  19. MAAR dit gaat enkel op wanneer de computer over een CPU bezit met meerdere kernen, waarbij men dus meerdere stappen tegelijk kan uitvoeren.
  20. Met dank aan Luc Smets, burgerlijk ingenieur in de computer wetenschappen.
  21. WIKIPEDIA, Sorteeralgoritme, internet, 3 februari, (http://nl.wikipedia.org/wiki/Sorteeralgoritme).
  22. WIKIPEDIA, Optimalisatiealgoritme, internet, 3 februari, (http://nl.wikipedia.org/wiki/Optimalisatiealgoritme).
  23. SILBERSCHATZ, A., Operating Systems met Java, Academic Service, Den Haag, 2004, p. 153-160.
  24. De tijd wordt in milliseconden gegeven.
  25. Overgenomen van http://homepages.vub.ac.be/~fdeprof/Hoofdstuk1.pdf, Cursus door Frank De Proft, p. 10.
  26. Overgenomen van http://homepages.vub.ac.be/~fdeprof/Hoofdstuk1.pdf, Cursus door Frank De Proft, p. 16.
  27. Met dank aan Luc Smets, burgerlijk ingenieur in de computerwetenschappen.

Writing Services

Essay Writing
Service

Find out how the very best essay writing service can help you accomplish more and achieve higher marks today.

Assignment Writing Service

From complicated assignments to tricky tasks, our experts can tackle virtually any question thrown at them.

Dissertation Writing Service

A dissertation (also known as a thesis or research project) is probably the most important piece of work for any student! From full dissertations to individual chapters, we’re on hand to support you.

Coursework Writing Service

Our expert qualified writers can help you get your coursework right first time, every time.

Dissertation Proposal Service

The first step to completing a dissertation is to create a proposal that talks about what you wish to do. Our experts can design suitable methodologies - perfect to help you get started with a dissertation.

Report Writing
Service

Reports for any audience. Perfectly structured, professionally written, and tailored to suit your exact requirements.

Essay Skeleton Answer Service

If you’re just looking for some help to get started on an essay, our outline service provides you with a perfect essay plan.

Marking & Proofreading Service

Not sure if your work is hitting the mark? Struggling to get feedback from your lecturer? Our premium marking service was created just for you - get the feedback you deserve now.

Exam Revision
Service

Exams can be one of the most stressful experiences you’ll ever have! Revision is key, and we’re here to help. With custom created revision notes and exam answers, you’ll never feel underprepared again.