Standaard Algoritmen
Algoritmen zijn een vast onderdeel van iedere applicatie. Zoals bekend is SaaS standaard software, die dus net als andere software gebruik maakt van algoritmen.
Wikipedia zegt daar over het volgende:
In wiskunde en informatica is een algoritme is een eindige reeks van goed gedefinieerde instructies, typisch gebruikt om een klasse van specifieke problemen of een berekening uit te voeren. Algoritmen worden gebruikt als specificaties voor het uitvoeren van berekeningen, gegevensverwerking, geautomatiseerd redeneren, geautomatiseerde besluitvorming en andere taken.
De computerwereld zit vol met modewoorden: AI, supercomputers, machine learning, de cloud, kwantumcomputing en meer. Eén woord in het bijzonder wordt gebruikt door het hele computergebruik – algoritme. Algoritmen zijn al duizenden jaren oud, en ik kan me niet aan de indruk onttrekken dat programmeertalen bedacht zijn om algoritmen te formaliseren en geautomatiseerd uit te kunnen voeren.
Theconversation.com schrijft daar over:
In de meest algemene zin is een algoritme een reeks instructies die een computer vertellen hoe een reeks feiten over de wereld in bruikbare informatie kan worden omgezet. De feiten zijn data, en de bruikbare informatie is kennis voor mensen, instructies voor machines of input voor weer een ander algoritme.
Dit maakt het algoritme tot het belangrijkste onderdeel van een programma, namelijk dat deel dat doet waar voor het programma is geschreven. Een programma bestaat echter uit nog veel meer onderdelen. Denk bijvoorbeeld aan:
Deze elementen zijn vaak veel omvangrijker en complexer dan het algoritme zelf. Dit is meestal maar een kort stukje code. Maar er bestaan ook zeer complexe algoritmen, bijvoorbeeld voor Artificial Intelligence en Machine Learning.
Computeralgoritmen werken via input en output. Ze nemen de invoer en passen elke stap van het algoritme toe op die informatie om een uitvoer te genereren.
Een zoekmachine is bijvoorbeeld een algoritme dat een zoekopdracht als invoer neemt en de database doorzoekt naar items die relevant zijn voor de woorden in de zoekopdracht. Vervolgens voert het de resultaten uit.
We kunnen algoritmen eenvoudig visualiseren als een stroomdiagram. De input leidt tot stappen en vragen die het programma in volgorde moet afhandelen. Wanneer elke sectie van het stroomdiagram is voltooid, is het gegenereerde resultaat de uitvoer.
Een maatwerk algoritme is een algoritme dat speciaal voor ons geprogrammeerd is om een probleem voor ons op te lossen. Dit zijn waardevolle algoritmes die onze organisatie uniek maken. De betekenis van Standaard Algoritmen is anders, zij lossen een eenvoudige veel voorkomende vraagstukken op. Het is veel te duur om ze te laten programmeren terwijl we ze gratis of goedkoop van de plak kunnen halen.
Er zijn veel voorkomende voorbeelden van algoritmen, van het zoeken van data, of het sorteren van getallenreeksen tot het vinden van routes via kaarten tot het weergeven van informatie op een scherm. Veel standaard algoritmen hebben te maken met datumverwerking zoals kalenders, berekenen van looptijden, bepalen van vervaldatums of de notificatie van feestdagen. Andere algoritmen zijn weer financieel van aard. Denk bijvoorbeeld aan renteberekeningen, hypotheken, belastingen of het overboeken van bedragen.
Een goed voorbeeld van algoritmen in actie is met business-software. Dit komt omdat bedrijfsprocessen werken door vaste regels te volgen om taken te voltooien. Die regels vormen een algoritme.
Business-software bestaat dus uit vele algoritmen die samen onze bedrijfsprocessen automatiseren.
Een van onze bedrijfsprocessen vereist bijvoorbeeld dat onze business-software alle per e-mail ontvangen facturen in een spreadsheet zet. Om dit te doen, stellen we een reeks regels en voorwaarden op die het programma moet volgen – een algoritme.
In dit geval is de invoer elke inkomende e-mail. Elk van deze e-mails wordt vervolgens door elke stap – of regel – geleid om de taak te voltooien. Dit kan inhouden dat het programma elke e-mail scant op belangrijke termen. E-mails die deze termen bevatten, gaan daarna naar de volgende stap en blijven elke stap volgen om de relevante gegevens te herkennen en te verzamelen. De output is de informatie die het programma in een spreadsheet plaatst.
Standaard algoritmes komen op verschillende manieren tot ons. Dat heeft te maken met de complexiteit, hoe vaak ze worden toegepast en de kennis die nodig is om ze te maken.
Verschijningsvorm | Implementatie | Toepassing |
Hogere programmeertaal instructie. | Standaard in programmatuur. | Hogere programmeertalen kennen vaak honderden instructie voor datums, sorteren, tekstbewerking, berekeningen, encryptie, beeldbewerking en e-mail. Dit zijn hele korte instructies met een paar invoervariabelen en uitvoer. |
Functies, subroutines en objecten. | Standaard ingesloten in programmatuur en geactiveerd wanneer nodig. Bevinden zich in een bibliotheek en kunnen in meerdere programma’s worden toegepast. | Meerdere programma instructies die samen een meer complex algoritme uitvoeren. Kennen meerdere invoervariabelen en uitgebreidere uitvoer. |
Stored procedures en triggers | Instructies opgeslagen in de metadata van de database. (Dus niet in het programma). | Deze instructies worden geactiveerd als er een bewerking op een specifiek database veld plaatsvindt. Hierdoor kunnen we bijvoorbeeld de integriteit van de database waarborgen of vervolgacties starten. |
Plugins en Widgets | Standaard programma’s die naast de applicatie worden geïnstalleerd en integraal door de applicatie worden aangeroepen als dat nodig is. | Bijvoorbeeld, het versturen van nieuwsbrieven, het beheren van lidmaatschappen of het optimaliseren van de applicatie performance. |
API’s | Standaard interfaces met andere applicaties meestal via internet. | Denk hierbij aan algoritmen waarmee we een inlogfunctie met behulp van Facebook kunnen realiseren, of grote hoeveelheden externe data in onze applicatie kunnen binnenhalen. Met behulp van enkele variabelen start een extern programma op dat de verlangde teruggeeft aan onze applicatie. |
Maatwerk algoritmen * | Geen standaard algoritme dus, maar speciaal voor de applicatie geprogrammeerd. | Nieuwe code die noodzakelijk is voor de applicatie. |
Het komt soms voor dat een bepaalde functie nog niet bestaat. Deze functie kan wel heel generiek zijn en wenselijk voor andere applicaties. Deze creëren we dan eerst als maatwerk functie, subroutine, object. stored procedure, trigger, plugin, widget of API. Daarna nemen we hem op in de standaard bibliotheek.
Het is belangrijk om zoveel mogelijk te kiezen voor een standaard algoritme als we een SaaS toepassing bouwen. Dit scheelt veel tijd en geld. Bovendien is een betrouwbare leverancier specialist van deze fuctionaliteit en zal er voor zorgen dat het algoritme altijd up-to-date is. Als onze SaaS toepassing later ooit in andere handen komt is het ook fijn dat er zo veel mogelijk van standaards gebruik gemaakt is. Dit maakt de due dilligence en de overdracht namelijk een stuk eenvoudiger.
Als we deze fijne stukjes sofware niet zelf programmeren kunnen we ze op diverse plekken vinden:
De term “Algoritme” heeft een slechte klank gekregen de laatste jaren. Dat komt door grote tech bedrijven zoals Facebook en Google wordt vaak verweten dat hun algoritmes onze privacy bedreigen. Terwijl wij hun online toepassingen gratis mogen gebruiken verzamelen ze data over ons. Hoe meer data zij hebben hoe beter zij ons kennen. Daardoor kunnen ze ons aan hen binden. Ze presenteren ons de informatie die ons het meest bevalt, de advertenties van spullen die we op dat moment nodig hebben en profielen van mensen die het beste bij ons passen.
Deze algoritmes zijn inmiddels zo goed dat wij schrikken van de resultaten. Hoe weten ze dat allemaal? Het komt bedreigend over. Wat we ons wel moeten realiseren is dat wij deze tech reuzen zelf deze data hebben gegeven, weliswaar onbewust door ons surfgedrag. Tevens moeten we ons realiseren dat we niet verplicht zijn om lid te worden van Facebook of Instagram. Er zijn voldoende alternatieve techbedrijven die zulke data niet verzamelen. Ook zijn we niet verplicht om ieder cookie te accepteren.
Mogelijk is dit een vertaling van Google Translate en kan fouten bevatten. Klik hier om mee te helpen met het verbeteren van vertalingen.