Bijeenkomsten gehouden in 2012

Deel dit artikel

,

geen foto beschikbaar

meeting

Kort verslag van de bijeenkomst op 1 december 2012

  • Abraham bracht een voortgangsrapport uit over de hardware-versie van TetraBot. Zoals op de onderstaande foto te zien is aan de op diverse plaatsen uitstkende kabeltjes, zijn de heren technici begonnen aan het "zenuwstelsel" van hun bouwsel. Oftewel: de komende maanden worden besteed aan het bedraden van de sensoren en motoren. Daarnaast is het de bedoeling dat de ZigBee-modules (voor draadloze communicatie tussen de besturingscomputer en de onderdelen van TetraBot) worden besteld, en dat de microcontrollers worden gesoldeerd.

    20121201
  • Peter vestigde de aandacht van de groep op Marvin's Arena, een omgeving waarin je een zelf-geprogrammeerde gesimuleerde rijdende robot kunt laten deelnemen aan toernooien waarin die robot het moet uitvechten met één of meer tegenstanders. Het is een concept dat sterk lijkt op het door ons al eerder onder de aandacht gebrachte Robocode, maar de te gebruiken programmeertalen zijn Visual Basic Express, C#, en C++; alleen talen die door Microsoft's Visual Studio worden ondersteund, dus, zodat Javaprogrammeurs er weinig mee zullen kunnen beginnen.
  • Ook vertelde Peter over BYOB (Build Your Own Blocks), een afsplitsing van Scratch met belangrijke uitbreidingen, zoals de mogelijkheid om zelf nieuwe blokken en zelfs recursieve functies te definiëren. Daarnaast ontdekte hij het bestaan van StarLogo TNG, dat evenals Scratch en BYOB van "puzzelstukjes" gebruikt maakt. (NB: De science fiction fans kennen de afkorting TNG natuurlijk: The Next Generation!
  • Gerard meldde dat hij en Titus de (vierde) studentenconferentie van de NSVKI hadden bezocht. Via één van de lezingen daar had hij kennis gemaakt met Quantum tic-tac-toe, een variant op boter-kaas-en-eieren die hij nog niet kende. Op zijn verzoek ging Peter met zijn computer het wereldwijde web op en werden er twee demonstratiepartijtjes gespeeld: een tegen onszelf en een tegen de computer. Ook aan de andere lezingen van de NSVKI-conferentie werden door Gerard enkele woorden gewijd.
  • Mark en Gerard vertelden waar ze de afgelopen maand mee bezig waren geweest: de vintage expertsysteemshell ESIE, daterend van ongeveer halverwege de jaren '80, en nog steeds op het Internet te vinden (verpakt, onder de naam artintel.zip). Gerard liet iets zien van twee van de meegeleverde kennisbestanden, ANIMAL en DOCTOR.
  • Als uitsmijter liet Abraham ons via enkele filmpjes kennismaken met de kilobots, kleine robotjes die zich kunnen verplaatsen d.m.v. trillende pootjes, en die voorzien zijn van de mogelijkheid tot onderlinge communicatie. Ze zijn bij uitstek geschikt om zwermgedrag en groepsintelligentie te onderzoeken, en het leukste is dat ze nog gewoon te koop zijn ook!


(GV 9 december 2012)

Kort verslag van de bijeenkomst op 3 november 2012

De dag werd voor een belangrijk deel gevuld met één-op-één-gesprekken, onder andere over de afgelopen HCC!Verenigingsdag, over mogelijke paden op een boter-kaas-en-eierenbord en de kansen daarop, en over de "vintage" expertsysteem-shell ESIE. Er werden ook enkele zaken plenair besproken:

  • Peter liet nogmaals zijn in Scratch gebouwde roofdier-prooi-simulatie zien, die hij op de HCC!Verenigingsdag had gemaakt (zie elders op deze pagina); daarbij vertelde hij ook iets over de manier waarop het gedrag van beide dieren in deze simulatie, een vleermuis en een mier, met behulp van tamelijk korte scriptjes was geprogrammeerd. Een interessant nieuwtje was dat je een Scratch-project kan importeren in een ander project, zodat de eerder door Gerard afzonderlijk gemaakte vleermuis en mier op eenvoudige wijze konden worden samengevoegd. Daarna heeft Peter beide sprites aangevuld met scripts om ze op elkaar te laten reageren. Het is erg boeiend om te zien hoe het "rechtlijnige" gedrag van de vleermuis verandert zodra hij zijn prooi in het vizier krijgt!
  • Gerard vestigde kort de aandacht op enkele AI-gerelateerde artikelen in recente edities van de populair-wetenschappelijke tijdschriften, en op het boek De sprekende aap van Jean Aitchison, dat hij onlangs gelezen heeft. Het boek gaat over de oorsprong en ontwikkeling van de menselijke taal, en Gerard was vooral geboeid door de manier waarop creooltalen door de schrijfster worden gebruikt om deze kwestie toe te lichten.
  • Er ontspon zich een korte discussie over nut en noodzaak van definities van voor AI belangrijke termen (zoals "intelligentie" en "bewustzijn") en de rol van de filosofie in de grondslagen van wetenschap en techniek.
  • Gerard improviseerde een korte inleiding in neurale netwerken ten behoeve van een nieuwe bezoeker die uit interesse voor dit onderwerp naar onze bijeenkomst gekomen was.


(GV 4 november 2012)

HCC verenigingsdag op 27 oktober 2012

De HCC!AI interessegroep heeft de voorgaande twee jaren op het HCC!digital-evenement geschitterd door afwezigheid; we "pasten niet in het concept". Dit jaar heeft HCC besloten om HCC!digital te vervangen door een HCC!Verenigingsdag, waarop alle Interessegroepen en Regio's de kans kregen zich te presenteren aan leden en niet-leden. Daarbij is geprobeerd om van een drietal gemeenschappelijke thema's uit te gaan, nl. eenvoudig, toegankelijk, veilig.

Het evenement vond plaats op zaterdag 27 oktober 2012, in Meeting 1931, een onderdeel van de Brabanthallen in Den Bosch. De AI-ig was te vinden onder één (figuurlijke!) "paraplu" met de fantasievolle naam Techniek, samen met een aantal andere op techniek en programmeren gerichte interessegroepen, nl. Basic, C, Forth, NewBrain, Pascal en Robotica. Wij deelden onze tafels met Basic en C. Door werkzaamheden aan het spoor verliep het treinverkeer 's ochtends erg moeizaam; een groot deel van de standbemanning kwam pas vlak voor opening van de hal aan. Met wat improviseren zijn we er toch in geslaagd om voor iedereen een goede plek te vinden.

We hebben verschillende onderwerpen gepresenteerd, die tezamen een aardig beeld gaven van de leuke mogelijkheden die AI biedt om hobbymatig bezig te zijn:

  • De meest prominente plaats was natuurlijk gereserveerd voor TetraBot. Deze ongewone constructie, met veren opgehangen aan een door Abraham vervaardigde "galg", trok dan ook de nodige aandacht; en niet in het minst doordat Abraham (en soms ook Kees) het geringste blijk van belangstelling aangrepen om een gesprek met de bezoekers aan te knopen over de bedoeling van het beestje.
  • Via de beamer, geprojecteerd op een leeg stukje muur, heeft Peter iets laten zien van het werken met de programmeertaal Scratch, en de mogelijkheden die dit biedt voor het schrijven van eenvoudige programmaatjes met een AI- of AL(Artificial Life)-karakter. Hij heeft de eerder door Gerard gemaakte "dolende mier" samengevoegd met de door hemzelf afgemaakte "muurvermijdende vleermuis" tot een interessante roofdier-prooi-simulatie.
  • Via dezelfde beamer (op momenten dat die niet door Peter werd gebruikt) heeft Kees zijn zelfgeschreven checkers-programma laten zien. Hoewel er nog niet veel speciale intelligentie is ingebouwd, zodat het zelfs voor "huisdammers" met wat nadenken mogelijk moet zijn om van dit programma te winnen, zijn Kees en Gerard daar samen, ondanks een bundeling van hun krachten, niet in geslaagd. Wat maar weer eens aantoont dat een programma best "slimmer" kan zijn dan zijn maker....
  • Geïnspireerd door het thema "veilig", hadden Abraham en Gerard samen een "presentatieposter" gemaakt over veiligheid in de Robotica, en dan met name de roboticawetten van Asimov. Deze poster was tussen enkele andere tegen de achterwand geplakt, en kreeg helaas niet de aandacht die hij verdiende; maar hij vormde in ieder geval een passende en sfeervolle decoratie...
  • En n.a.v. het thema "eenvoudig" heeft Gerard een lezing gehouden met de titel "Koningszet", waarin hij heeft laten zien dat zelfs het allersimpelst denkbare probleem, bezien vanuit AI-perspectief, nog een leerzaam en interessant experiment oplevert!

De volgende foto's geven een impressie van onze activiteiten op deze zeer geslaagde dag.

Verenigingsdag2012c

Hierboven: helemaal op de voorgrond TetraBot, opgehangen aan zijn galg om de reeds ingebouwde motoren niet te beschadigen. Daarachter, zittend aan tafel achter hun schootcomputers, Peter en Kees. Peter zit rechts, en roert wat in zijn koffie terwijl hij zijn gedachten laat gaan over zijn Scratch-programma. Kees, in geruit overhemd, is blijkbaar eveneens in diep gepeins verzonken; helemaal links is, op de muur geprojecteerd, nog een stukje van het (karaktergeoriënteerde) scherm van zijn checkersprogramma te zien. Op de achtergrond, met onder de kop "HCC AI / Robotica" de pakkende slagzin "Robotica & veiligheid = AI", onze Asimov-poster. De andere posters, van NewBrain en Robotica, zijn overigens ook door Abraham gemaakt.

Hieronder: Kees legt aan twee bezoekers uit wat die gekke vertakte PVC-buizen op de voorgrond nu precies voorstellen. (Voor wie het nog niet doorhad: dat is onze TetraBot...) Op de achtergrond is te zien dat de Verenigingsdag toch wel aardig wat publiek getrokken heeft! Rechtsonder is nog een lid van de C-interessegroep te zien, met wie we onze tafels hebben gedeeld.

Verenigingsdag2012d
(GV 1 november 2012)

Kort verslag van de bijeenkomst op 6 oktober 2012

Evenals vorig jaar waren we weer te gast op de jaarlijkse open dag van de HCC Robotica interessegroep, en door het geroezemoes in de grote zaal zat een plenaire sessie er helaas niet in. Dat wil echter niet zeggen dat we stilgezeten hebben, de tijd werd aangenaam en nuttig doorgebracht met één-op-één-contacten. Zo hebben Abraham en Aloys samen weer grondig de vorderingen van het TetraBot-project doorgesproken. Gerard en Peter hebben zich ter leringhe ende vermaeck met Scratch beziggehouden, in een poging een muurvermijdende vleermuis te programmeren. Dat is nog niet geheel naar wens gelukt, en er gaan waarschijnlijk nog wel wat aangename uurtjes vrije tijd in gestoken worden. Verder zijn er ook een aantal nuttige afspraken gemaakt voor de HCC!verenigingsdag, waar we erg naar uitkijken.

De volgende keer, op 3 november, hebben we weer een "normale" bijeenkomst — hoewel, normaal? Iedere bijeenkomst levert toch weer verrassende nieuwe activiteiten en inzichten op; en met de HCC!Robotica interessegroep (die in november weer de Roborama robot wedstrijd organiseert) als "goede buur", is het onmogelijk om je te vervelen!
(GV 13 oktober 2012)

HCC!AI op de MegaCompUfair

Op 29 september j.l. hield de de interessegroep HCC!CompUsers haar jaarlijkse grote bijeenkomst, de MegaCompUfair. Natuurlijk konden wij, de HCC Artificiële Intelligentie interessegroep, hierbij niet ontbreken! We waren dus met twee personen (en een aantal rijdende en trillende robotjes, alsmede nog een laptopcomputer met een dolende mier) naar De Bilt getogen, waar we evenals de voorafgaande jaren een zeer geslaagde dag beleefden — zoals ook de bijgaande foto laat zien.

DeBilt20120929
 
(GV 17 oktober 2012)

Kort verslag van de bijeenkomst op 1 september 2012

Helaas was de opkomst niet zo groot, maar de wegblijvers hadden ongelijk, want het was toch een vruchtbare bijeenkomst. De volgende onderwerpen kwamen aan bod:

  • Aloys en Abraham brachten ons op de hoogte van de huidige stand van zaken m.b.t. TetraBot. Aloys had de witte markeringen voor de draaiingssensoren nu ingefreesd, wat natuurlijk veel slijtvaster is dan een opgeplakt papiertje. Het probleem dat de constructie te zwaar is geworden om door de motoren te worden "opgetild" — in ieder geval het type motoren dat wij ons financieel kunnen veroorloven —, gaat waarschijnlijk opgelost worden door TetraBot d.m.v. een veer op te hangen aan een dragende arm of raamwerk, zodat er nog maar een klein gedeelte van het gewicht via de uiteinden van de "benen" op de grond rust. Niet de meest fraaie oplossing, we zien natuurlijk allemaal het liefst dat TetraBot zelfstandig kan lopen; maar het is zonder veel problemen te realiseren, en doet niets af aan het onderliggende principe van de TetraBot. Tenslotte worden kleine kinderen bij het zetten van hun eerste stapjes ook door Pappa of Mamma ondersteund!

    20120901a

    Onder de toeziende blik van Abraham (links) onderzoekt Gerard (rechts) de vorderingen die zijn gemaakt met de TetraBot-constructie.
  • Gerard en Abraham hebben onze bijdrage aan de komende HCC!Compusers gebruikersdag en de HCC!Verenigingsdag doorgesproken.
  • Gerard heeft een heel simpel Scratchprogramma met een "lopende mier" laten zien, dat wel enig verband met AI heeft, en waarmee anderen kunnen experimenteren. Als we dit (en hopelijk nog enkele andere) op de HCC!Verenigingsdag willen presenteren, moet er nog wel een A4-tje bij met beschrijving en aanwijzingen.
  • Henk en Kees hebben wat gesproken over hun Checkers-programma's. Die van Kees speelt al wel (zij het nog niet op "grootmeesterniveau"). Die van Henk moet nog gaan kiezen uit de gegenereerde zetten. We besloten dat een willekeurige keuze het beste beginpunt is. Immers, zonder positie-evaluatie zijn alle zetten gelijkwaardig, en kun je niet anders dan "een dobbelsteen of munt opgooien". Daarna kun je een evaluatieroutine inbouwen; maar zolang die nog tamelijk simpel is (bijvoorbeeld: in eerste instantie alleen kijken naar materieel voordeel of nadeel) en je doorrekening nog niet vele zetten diep, zul je nog steeds regelmatig gelijkwaardige zetten tegenkomen, en dus weer terug moeten vallen op de willekeurige keuze.

    20120901b

    Gerard (links) en Kees (rechts) kijken belangstellend toe terwijl Henk (midden) zijn checkers-zettengenerator demonstreert.
  • Er is ook even gesproken over "het probleem van de Vrije Wil". (Probleem? Hoezo probleem?) Kees heeft voor Henk wat informatie over deze filosofische kwestie, die wel belangrijke implicaties voor de Kunstmatige Intelligentie kan hebben, van het Internet gedownload.
  • En terwijl Henk zich in deze informatie verdiepte, spraken Gerard en Kees over de implementatiedetails van hun checkersprogramma's, met name over een slimme evaluatietruc die Kees heeft ingebouwd om een beter eindspel te krijgen, en over de manier waarop Gerard het bitboard heeft geprogrammeerd.


(GV 19 september 2012)

Kort verslag van de bijeenkomst op 7 juli 2012

Het was weer een gezellige en interessante bijeenkomst, met behalve de "stamgasten" ook een paar nieuwe gezichten. Naast de gebruikelijke koetjes en kalfjes, zijn er vier belangrijke onderwerpen aan bod geweest:

  • Aloys kwam langs met TetraBot, om te laten zien dat hij al één motor in een van de "dijbenen" had ingebouwd. Hij legde uit dat er een grote kracht nodig was om door het draaien van die poot de hele TetraBot omhoog te tillen, en dat hij daarom die motor thuis nog niet of nauwelijks had getest. En amper was hij begonnen om dat even daadwerkelijk te laten zien of inderdaad: de tandwielkast van de motor draaide de soep in! (De gebruikte aandrijving bestaat uit een motortje dat weinig vermogen levert bij een hoog toerental, en d.m.v. tandwielen wordt dat omgezet in een laag toerental met een groter vermogen. Motor en tandwielen worden door de fabrikant in één behuizing geleverd.) Terug naar de tekentafel, dus. Aloys suggereerde om alle segmenten van TetraBot korter te maken (zonder de verhouding 3 : 2 : 1 aan te tasten); dan zou er minder kracht door de motoren hoeven te worden geleverd, omdat het optillen met een kortere "hefboom" gebeurt. (En het gewicht wordt ook iets minder — hoewel de meeste massa niet in de "buizen", maar in de motoren en verbindingsstukken zit.)
    Het goede nieuws (want dat was er ook!), is dat het door Aloys ontworpen systeem om de draaiing te meten, met behulp van infrarooddiodes en zwart-witte markeringen aan de binnenkant van de buis, goed werkte.
  • Vervolgens hield Gerard een (misschien iets te?) uitgebreid verhaal over een projectje met de programmeertaal Scratch. Deze taal is speciaal gemaakt voor kinderen, is vrij te downloaden, en je kunt er erg leuke dingen mee doen, vooral op het gebied van plaatjes en geluid. Voor Windows 98 (zoals nog steeds draait op de AI-ig laptop die Gerard voor demonstraties gebruikt) is er een oudere, maar goed werkende versie te downloaden, die echter wat mogelijkheden mist ten opzichte van de laatste versie.
    Het programma dat hij er mee probeerde te bouwen was "Party planner": een simulatie van een feestje met een aantal gasten, die elkaar in meer of mindere mate mogen, en als gevolg daarvan in de feestzaal lange tijd van plaats veranderen. Het idee stond beschreven in een aflevering van de rubriek Computer Recreations in het tijdschrift Scientific American, van september 1987. Gerard demonstreerde eerst een versie geschreven in QBasic, om te laten zien hoe een dergelijke simulatie zich zo ongeveer gedraagt. Daarna deed hij voor hoe je zoiets in Scratch zou kunnen opzetten. Hierbij werden een aantal voordelen van Scratch zichtbaar (zoals de sprites, het werken met visuele vormen, en nuttige ingebouwde functionaliteiten zoals afstandsbepaling tussen sprites), maar ook enkele nadelen (namelijk: programmascriptjes worden al snel groot en onoverzichtelijk als je dingen wilt die niet direct standaard zijn, en het programmeren door het slepen met vormen neemt toch aardig wat tijd in beslag).
  • Kim vertelde iets over de thesis, waarop hij afgelopen week was gepromoveerd tot Master in de AI aan de universiteit van Maastricht. Het onderzoek gaat over het spel Domineering, en er kwam uit dat bij het toepassen van specifieke kennis verbeteringen van honderden procenten bereikt kunnen worden boven een "simpele" alfa-betazoekmethode — wat op zich al een tamelijk verfijnde techniek is! Hij verklaarde zich bereid hierover in het najaar voor ons een presentatie te houden; houd dus deze website in de gaten!
  • Tenslotte is er nog wat tijd aan checkers besteed. Ook Mark bleek nu bezig met het schrijven van een checkersprogramma, wat het totale aantal met het "checkers-virus" besmette bezoekers op 5 brengt! Er werd o.a. gesproken over de notatie, vooral van zetten waarbij meer dan één schijf geslagen wordt. Ook kwam de aanpak van het schrijven van een checkersprogramma ter sprake; Gerard liet een artikel zien van Christopher Strachey uit Scientific American van september 1966 (!) waarin de opbouw van zo'n programma wordt uitgelegd. Strachey's voorbeeldprogramma is geschreven in CPL, een taal die (via de tussenstadia BCPL en B) de "overgrootvader" is van de programmeertaal C. Volgens Wikipedia was Strachey trouwens de eerste die ooit een checkersprogramma schreef, nog vóór Arthur Samuel! Daarna liet Gerard zien hoe in checkers twee dammen van één dam kunnen winnen, een winstvoering van (minstens) 13 (halve) zetten diep. De vraag doet zich dan voor hoe dit in een programma in te bouwen: door veel zetten te laten "doorrekenen", of door een zgn. eindspeldatabase te laten raadplegen, of door het gebruik van vuistregels? Tot besluit werd nog wat doorgefilosofeerd over "intelligentie" in checkers- en schaakprogramma's.


(GV 11 juli 2012)

Kort verslag van de bijeenkomst op 2 juni 2012

Ter tafel kwam o.a. het volgende:

  • Mark vestigde onze aandacht op de AI-lezingen van Wolfgang Ertel, die o.a. op YouTube te vinden zijn. Ze zijn te vinden door Google aan het werk te zetten met de zoektermen "Wolfgang Ertel lecture artificial intelligence".
  • Henk is nog steeds bezig in het boek van Dick Swaab, Wij zijn ons brein. Op de vraag van Gerard of hij daarover eens een boekbespreking zou kunnen houden, zei hij dat dat moeilijk wordt, omdat het boek uit een groot aantal tamelijk los van elkaar staande stukjes bestaat.
  • Ook had Henk weer aan zijn checkers-programma gewerkt: het is de bedoeling om de mogelijke zetten niet meer alleen door "bordplaatjes", maar ook in de officiële checkersnotatie weer te geven. Dat gaat met name bij ingewikkelde slagzetten nog niet helemaal perfect.
  • Nu kondigde ook Kees aan dat hij begonnen was met een checkersprogramma. Samen met Henk en Titus, en Gerard (die er jaren geleden een geschreven had, maar een deel van de broncode kwijt lijkt te zijn), en Mark (die wil onderzoeken of je een kennissysteem checkers kunt laten spelen) begint het zo langzamerhand op een echte epidemie te lijken!
  • Gerard heeft de bibliotheek van de interessegroep met 2 boeken verrijkt:
    • "Introduction to the Theory of Neural Computation" van Hertz, Krogh & Palmer, een voortreffelijk overzicht van diverse soorten neurale netwerken, waarvoor echter wel wat wiskundige kennis is vereist.
    • "Mens en Machine", een prachtig geïllustreerd overzicht van ideeën over, en pogingen tot, het scheppen van een "kunstmatig leven" door de hele geschiedenis heen, verzameld door René Simmen. Vanaf de door stromend water aangedreven automaten uit de oudheid, via o.a. de schrijvende en schakende poppen uit de 18e en 19e eeuw, tot aan de computers van de jaren '60 van de vorige eeuw.
  • En natuurlijk kwam ook TetraBot aan bod. Abraham had een rubberen matje meegenomen (nog uit de tijd van de balancerende bezemsteel), waardoor de slip beter gecontroleerd kon worden; en ook de "testbenen", waarvan het buitenste (meest distale) gewricht was weggeamputeerd, waren gemaakt. Met behulp van de testbenen werd al snel duidelijk dat de extra vrijheidsgraden, die door de distale gewrichten worden gerealiseerd, zeker niet gemist kunnen worden. Voorts hebben verdere experimenten met één van de bedachte loopalgoritmen het vermoeden versterkt dat lopen zonder slip inderdaad mogelijk is! Hieronder een actiefoto van zo'n experiment. Het werd wederom duidelijk dat het fysiek manipuleren van het exoskelet onmisbaar is om een intuïtief gevoel te ontwikkelen voor het soort bewegingen dat door de niet-rechte hoeken en het grote aantal draaipunten mogelijk (en onmogelijk!) wordt gemaakt. Dit soort hands-on experience voegt zonder meer een hele dimensie toe aan alle inzichten die door nadenken en wis- en natuurkundige analyse kunnen worden verkregen!

    20120602

(GV 18 juni 2012)

Kort verslag van de bijeenkomst op 5 mei 2012

De volgende onderwerpen zijn aan bod geweest:

  • Titus kwam met een zeeslagpuzzeltje, en Henk herinnerde zich dat hij daar nog een programma voor had... alleen bleek dat niet helemaal meer te werken (software-rot?), dus Henk is een poosje bezig geweest met debuggen. Uiteindelijk is dat gelukt, en de correcte oplossing kwam er uit rollen.
  • Henk is thuis wat aan het solderen geweest en kwam met een schakeling in een schoenendoos, nog stammend uit de tijd van de telegrafie (niet de schoenendoos, maar het ontwerp van de schakeling), waarbij de uitdaging voor de overige bezoekers was om de logica van de schakeling te achterhalen. Uiteindelijk heeft Henk uitgelegd hoe het werkt.
  • Gerard heeft weer wat leesvoer onder de aandacht gebracht; het meeste staat ook op de leesplank hieronder.
  • Titus liet zien dat zijn TetraBot-simulatie (met OpenGL) nu een stapje verder is dan die van Gerard: zijn programma kan een bewegingsscript inlezen en de instructies daaruit in een programmalus herhalen. Dat wordt echter gedaan vanuit een standaard-beginstand, en het is allerminst zeker dat dit ook een stand is die in de loopbeweging voorkomt. De volgende stap moet dan ook zijn dat er voorafgaand aan dit herhaald uitgevoerde script eenmalig een reeks instructies kan worden doorlopen, die de TetraBot in een geschikte beginstand kan brengen — een soort intro dus.
  • Titus en Gerard zijn, eerst met zijn tweeën, en later nogmaals met behulp van Dré Jansen en Kees, aan het experimenteren gegaan met het door Aloys vervaardigde TetraBot-exoskelet. Daarbij vormde de gladheid van de tafels en van de uiteinden van TetraBot zelf een extra moeilijkheid; de volgende keer moeten we misschien een kleedje of zo meenemen. Maar ondanks de krakkemikkige uitvoering van dit experiment, begint nu toch het vermoeden te rijzen dat er inderdaad een bewegingsmethode zonder slip mogelijk zou kunnen zijn. Aan Aloys is de vraag voorgelegd of er "testbenen" kunnen worden gemaakt met een gewricht minder, zodat we er beter achter kunnen komen waar het (letterlijk!) zou kunnen gaan wringen. Daar wordt nog verder over beraadslaagd.
  • Tussendoor zijn er nog diverse onderwerpen voorbijgekomen, zoals het verband tussen AI en de ontwikkelingsprocessen van kinderen (of zelfs leerprocessen in het algemeen), de (betrekkelijk geringe?) waarde van toepassingsgerichte wetenschap, en de expertsysteem-shell CLIPS.
  • Tot slot hadden we nog even tijd voor een testwedstrijdje Checkers tussen de programma's van Henk en van Titus. Dat was nogal improviseren. De computers hadden geen rechtstreekse communicatiemogelijkheid, dus dat moest door menselijke tussenkomst geregeld worden. Titus had het bord verkeerd om geprogrammeerd: de lange diagonaal liep van rechtsonder naar linksboven, dus bij hem moest alles in spiegelbeeld worden ingevoerd en geïnterpreteerd. De nummering van de velden in zijn programma was met "coördinaten", dus meer "schaakachtig", hetgeen een extra vertaalslag eiste. Henk's programma gaf alleen plaatjes te zien, dus ook hier moest vertaald worden naar officiële checkersnotatie. Bovendien zat er nog geen routine in om een keuze te maken uit de mogelijke zetten; hier bewees de randomgenerator van Gerards zakjapanner goede diensten. Gerard zelf zat met een "echt" checkersspel voor zich de vertaling en controle (op naleving van de spelregels) uit te voeren, terwijl Kees zorg droeg voor de notatie van de gedane zetten. Zo was bijna iedereen in touw. Het verloop van de partij was als volgt. (Voor de dammers onder ons: Checkers wordt gespeeld op een 8×8-bord, de nummering van de velden gaat wel op dezelfde manier als bij dammen, en zwart begint.) Henk opende met 9-14. Titus antwoordde symmetrisch, met 24-19. Henk ging verder met 12-16, waardoor Titus moest slaan, 19×12, en de symmetrie van de stand al vroeg verbroken werd. Toen was het tijd om de bijeenkomst af te breken, dus de partij eindigde onbeslist, maar met materieel voordeel voor Titus.


(GV 6 mei 2012)

Kort verslag van de bijeenkomst op 7 april 2012

Door een bijzondere bestuursvergadering samen met het bestuur van Robotica en Guido Hulscher van het HCC-bureau, o.a. over samenwerking tussen regio's en interessegroepen, was er deze keer wat minder tijd voor de plenaire sessie. Toch was de dag niet geheel verloren: Guido heeft zich in het Robotica-zaaltje op de hoogte laten stellen van TetraBot, een al enige tijd lopend samenwerkingsproject tussen diverse interessegroepen, nl. AI, Robotica, en de inmiddels opgeheven 6500 gebruikersgroep. Verder werden nog de volgende onderwerpen besproken:

  • Henk Palstra liet zien dat hij een BASIC-programma had geschreven om het oplossen van zgn. codepuzzels te vergemakkelijken. Een codepuzzel is een soort ingevuld kruiswoorddiagram, waarbij elke letter (A t/m Z; Y=IJ) systematisch is vervangen door een getal (1 t/m 26, maar in willekeurige volgorde, dus NIET A=1, B=2, enz.). Dit getal staat klein in de linkerbovenhoek van de vakjes; het is de bedoeling de code te kraken, zodanig dat er alleen goede, bestaande woorden in het diagram komen te staan. Naast of onder het diagram staat gewoonlijk ook nog een in te vullen codetabel, waarin om de gebruiker op weg te helpen — en om de oplossing uniek te maken! — al enkele getal-lettercombinaties staan gegeven.
    Het programma van Henk vergemakkelijkt het oplossen doordat het alle vakjes met een bepaald getal tegelijkertijd met een letter kan invullen, zonder er eentje te vergeten (wat bij handmatig invullen nog wel eens voorkomt); ook kan een bepaalde invulling weer eenvoudig worden teruggedraaid, zodat het wat makkelijker wordt om "hypotheses" uit te proberen. Daarvoor moet wel eerst het hele diagram handmatig in de computer worden ingetoetst. Het is dus de vraag of dit programma echt tijd of moeite gaat besparen.
    Het programma bevatte echter een interessante feature: er werd ook geteld hoe vaak elk getal in het diagram voorkwam. Het is algemeen bekend dat de letter "E" in het Nederlands het vaakst gebruikt wordt — althans in normale tekst, d.w.z. tekst die niet speciaal is "gecomponeerd" om dit soort statistische wetmatigheden te doorbreken; zie Opperlandse taal-en letterkunde hoofdstuk 1, van Battus (of de latere editie Opperlans). Henk maakte hiervan dankbaar gebruik bij het oplossen van zijn voorbeeldpuzzel. Het ligt voor de hand om deze methode ook te gebruiken voor de andere letters; de puzzel zou dan geheel automatisch kunnen worden ingevuld. We vonden een frequentietabel op het Internet, maar die hielp ons niet veel verder, omdat de frequenties steeds dichter bij elkaar gaan liggen (mogelijk is de wet van Zipf hier aan het werk!). Een bijkomende moeilijkheid is, dat in sommige codepuzzels (ik zou zeggen: de goede) elke letter, dus ook bijv. de "Q" en de "X", minstens één keer voorkomen. Uiteraard verstoort deze eis de "natuurlijke" frequenties enigzins — en dan vooral bij de weinig voorkomende letters, die qua frequentie toch al dicht bij elkaar liggen!
    Er zijn zo voor de vuist weg 3 mogelijkheden te bedenken om dit op te lossen. De eerste, minst creatieve oplossing is om de computer een woordenlijst mee te geven. Dat moet echter een behoorlijk lange woordenlijst zijn, zelfs al zie je af van alle (in kruiswoordpuzzels niet geschuwde, maar in codepuzzels veelal afwezige) verbuigingen en vervoegingen, en ook al zijn de betekenissen irrelevant! De tweede mogelijkheid is om eens lekker met kansrekening aan de gang te gaan, en de beste fit van de getalfrekwenties in het diagram met de theoretische letterfrekwenties te nemen — overigens zonder echte garantie dat je dan ook de goede oplossing hebt; bij afwezigheid van een woordenlijst kent de computer de woorden immers niet.
    De derde methode is om gebruik te maken van di- en eventueel trigramfrequenties. Om dat te begrijpen kijken we even naar de (door mensen gevolgde) oplossingsprocedure, die meestal ongeveer als volgt verloopt. Je speurt het diagram af naar een woord (of een woordgedeelte) waarvan je denkt: "Gegeven de reeds bekende letters, kan dat haast niet anders zijn dan …". Dat geeft je een of meer nieuwe letters, waardoor je elders in het diagram weer een andere letter/getalreeks ziet, waarvan de getallen wederom eigenlijk maar voor één interpretatie vatbaar zijn; enzovoort. Zo wordt stap voor stap de codetabel (en daarmee het diagram) ingevuld. In dit opzicht lijkt het sterk op het invullen van een sudoku, waar ook telkens door het invullen van een vakje weer een of meer andere vakjes eenduidig bepaald worden! Het punt is dat je bij het zoeken van dergelijke unieke interpretaties veel gebruik maakt van de beperkingen (constraints) die in het Nederlands zijn opgelegd aan de opeenvolging van letters. Zo zal na een "Q" bijna altijd een "U" volgen, en wordt een "C" vaak gezien in directe combinatie met "H". Opeenvolgingen van veel medeklinkers of van veel klinkers zijn zeldzaam (maar niet onmogelijk; zie weer Opperlans). We kunnen dus gebruik maken van frequentietabellen van 2- en 3-lettercombinaties (eigenlijk een soort Bayesiaanse, voorwaardelijke kansen) om een zo plausibel mogelijke invulling van het diagram te verkrijgen. Dit sluit ook mooi aan bij de informatietheorie: zie A Mathematical Theory of Communication van Claude E. Shannon, de laatste alinea van paragraaf 2 en paragraaf 3.
    De beste strategie is natuurlijk om die drie oplossingen te combineren; dat lijkt waarschijnlijk ook het meest op hoe mensen het doen. Daarbij kan een patroonherkenningsalgoritme, mogelijk in de vorm van een neuraal netwerk, gebruikt worden om de woordenlijst te "doorzoeken". Een aardig idee voor een project!
  • Heel kort is nog de mogelijkheid van een computer-checkerstoernooi aan bod geweest. Het blijkt dat Titus' programma nog niet alle spelregels machtig is: met name het meervoudig slaan moet nog ingebouwd worden. Aan de andere kant is Henk's programma ook nog niet echt speelklaar: het bevat wel een zettengenerator, die alle mogelijke zetten vanuit een positie laat zien; maar er zit nog geen positie-evaluatie in, zodat het programma nog geen keuze kan maken uit al die mogelijkheden. Gerard heeft aan beiden gesuggereerd om er nog weer eens wat vrije tijd tegenaan te gooien. Hij zal zelf op een van de volgende bijeenkomsten komen met een lijstje met spelregels. Wordt vervolgd, dus...
  • De geplande experimenteersessie met de TetraBot-hardware is verschoven naar de volgende keer (en mogelijk ook de keer daarna). Aloys zal daarom nog niet de motoren inbouwen, maar eerst kijken of hij het sensorsysteem werkend kan krijgen, zodat we het handmatig draaien van het apparaat misschien ook m.b.v. de computer kunnen loggen. Ambitieus, maar wie weet...


(GV 12 april 2012)

Kort verslag van de bijeenkomst op 3 maart 2012

  • Gerard begon met te vertellen wat hij momenteel aan het lezen was: een Nederlandstalig Prolog-boekje, en een boek over de werking van de menselijke hersenen, waarin vooral aandacht wordt besteed aan de vraag wat de functie is van de verschillende onderdelen van het brein.
  • Hierna legde Gerard uit waarom hij in zijn simulatieprogramma toch weer met het omhullende veelvlak van TetraBot aan de gang moet, en dat hij het 3-dimensionale probleem nu eens goed wil oplossen door het gedeeltelijk terug te voeren tot het 2- en 1-dimensionale geval. Ter illustratie liet hij een eerste, ongeteste versie van het 1-dimensionale omhulsel-algoritme zien.

    20120303b
  • Henk liet zien dat hij Basic-programma's had geschreven voor het oplossen van Kakuro's, K-doku's, en grote sudokupuzzels bestaande uit meerdere overlappende "normale" sudoku's.
  • In aansluiting hierop presenteerde Gerard nog twee artikeltjes voor "de Leesplank".
  • Titus liet zien dat hij een dam- (of eigenlijk: checkers-) programma had geschreven. Gerard opperde het idee om Titus' programma te laten spelen tegen dat van Henk; hopelijk gaat dat op een van de volgende bijeenkomsten gebeuren.
  • Tot slot lieten Abraham en Aloys nog zien hoever het met de hardware-versie van TetraBot stond: het "exoskelet" van de drie "poten" waar het geval zich op moet gaan voortbewegen is nu af. In één "dijbeen" was al een motor ingebouwd, maar het blijkt dat deze het werk niet helemaal aan kan en dat er dus nieuwe motoren moeten komen. Toch ziet het er al erg spannend uit. Gerard suggereerde om de volgende bijeenkomst handmatig met het exoskelet te experimenteren teneinde er zoveel mogelijk achter te komen waar de bewegingsvrijheden liggen en hoe die eventueel gebruikt kunnen worden om een voortbewegingsalgoritme te construeren.
    (GV 4 maart 2012)

Kort verslag van de bijeenkomst op 4 februari 2012

Wegens de kou in "ons" lokaaltje (de verwarming van De Dissel was kaduuk) zijn we uitgeweken naar de kantine. Na de Algemene Ledenvergadering (ALV) zijn Kees Vlak en Gerard Vriens begonnen met het ontwerpen en bouwen van een object-georiënteerd sudoku-programma in Java. We werden het eens over 3 classes: allereerst een class Cell (een vakje waarin een cijfer moet worden ingevuld); daarnaast een class Diagram (het geheel van alle cellen, gerangschikt in een rechthoekig rooster); en tot slot een klasse die een groepje van (meestal 9) cellen voorstelt, waarin elk getal (meestal 1 t/m 9 dus) precies één keer voorkomt. Zo'n groepje kan een rij zijn, een kolom, een 3×3-blok, of meer in het algemeen een nonomino (zoals in een zgn blok- of puzzelsudoku; rijen, kolommen en 3×3-blokken zijn feitelijk ook nonomino's). En in zgn. diagonaalsudoku's (ook wel X-sudoku's genoemd) wordt zo'n groepje ook gevormd door — het woord zegt het al — elk van beide diagonalen, waarvan de cellen niet met de zijden, maar alleen met de hoeken tegen elkaar aan liggen. De naam die wij uiteindelijk aan zo'n groepje cellen hebben gegeven is Constraint, want dat is precies wat zo'n groepje doet: het levert een beperkende voorwaarde voor het invullen van de cellen, omdat waarden die al in zo'n groepje voorkomen niet meer in lege cellen kunnen worden ingevuld. Tot slot is er alvast een "dummy-programma" aangemaakt (en getest), dat alleen nog maar een leeg window op het computerscherm tovert.
(GV 11 maart 2012)

Kort verslag van de bijeenkomst op 7 januari 2012

  • Peter vestigde de aandacht op een speciale uitgave van Discover magazine, The Brain, met mooie plaatjes en interessante artikelen. Gerard liet enkele krantenknipsels rondgaan die met AI te maken hebben. Ook bracht hij een (2e-hands gekocht) boek voor onze bibliotheek mee, namelijk Cognition van Margaret W. Matlin.
  • Aloys kwam langs om de huidige stand van de TetraBot-hardwareconstructie te laten zien. Er begint al aardig wat tekening in te komen; nadere details zijn binnenkort te zien op de TetraBot-pagina.
  • Een poging om een elementaire Java-applet op Titus' computer aan de praat te krijgen, strandde om (vooralsnog) onbekende redenen.
  • Verder werd de tijd vooral gevuld met gesprekken, o.a. over sudoku's. Dit onderwerp is ook al in eerdere bijeenkomsten aan de orde geweest. Afgesproken is om op een van de volgende bijeenkomsten, wanneer het dagprogramma dat toelaat, te beginnen met het daadwerkelijk schrijven van Javacode, allereerst om "gewone" sudoku's op te lossen; en om daarna te kijken of de Java-classes die we daarvoor ontwikkeld hebben misschien een geschikt basisgereedschap vormen om één of meer andere problemen m.b.t. sudoku's aan te gaan pakken.
  • Naar aanleiding van Gerards TetraBot-simulatieprogramma, en zijn voornemen om (wederom!) eens goed te kijken naar de implementatie, ontspon zich een discussie over het nut daarvan. Gerard uitte het voornemen om in de toekomst aandacht aan tensegrity te gaan wijden, en de hoop dat gedeelten van zijn TetraBot-code voor dit doel ook bruikbaar zullen blijken.
  • Tot slot vestigde Gerard de aandacht op de scholarpedia website, een wikipedia-achtige encyclopedie-in-wording, mede geschreven en bijgehouden door internationaal vermaarde wetenschappers, waarvan voor ons vooral de "Focal Areas" Computational Intelligence en Computational Neuroscience interessant zijn.
    (GV 10 januari 2012)

Actueel

'Meld je aan voor de nieuwsbrief' van HCC!artificieleintelligentie

'Abonneer je nu op de nieuwsbrief en blijf op de hoogte van onze activiteiten!'

Aanmelden