Angel \”Java\” Lopez on Blog

February 28, 2013

Artificial Intelligence: Links And Resources (3)

Filed under: Artificial Intelligence, Links — ajlopez @ 2:23 pm

Previous Post

Can Computers Create?
http://www.computerhistory.org/revolution/computer-graphics-music-and-art/15/231
The AARON Paint System was ever-evolving and by the mid-1980s had a set of rules that allowed it to draw figures situated in quasi-realistic ‘gardens.’
 
AI vs. AI. Two chatbots talking to each other
http://www.youtube.com/watch?v=WnzlbyTZsQY&feature=player_embedded
 
A Review of The Art of the Metaobject Protocol
 http://dreamsongs.com/Files/amop-review.pdf

Reinforcement Learning: An Introduction
http://webdocs.cs.ualberta.ca/~sutton/book/ebook/the-book.html

Prescient but Not Perfect: A Look Back at a 1966 Scientific American Article on Systems Analysis
http://blogs.scientificamerican.com/at-scientific-american/2011/08/23/systems-analysis-look-back-1966-scientific-american-article/

AI Class
https://www.ai-class.com/

How a computer beat Civilization by RTFM
http://arstechnica.com/science/2011/07/how-a-computer-beat-civilization-by-rtfm/

Who Killed Prolog?
http://vanemden.wordpress.com/2010/08/21/who-killed-prolog/

Computer learns language by playing games
 http://web.mit.edu/newsoffice/2011/language-from-games-0712.html
By basing its strategies on the text of a manual, a computer infers the meanings of words without human supervision.

¿Puede la inteligencia artificial ser nuestra guía en Internet?
http://www.technologyreview.es/read_article.aspx?id=38000

Gmail’s Friend Suggest Algorithm
http://googlesystem.blogspot.com.ar/2011/07/gmails-friend-suggest-algorithm.html

Natural Language Processing With Prolog in the IBM Watson System
http://www.cs.nmsu.edu/ALP/wp-content/uploads/2011/03/PrologAndWatson1.pdf

Now That They’ve Won on Jeopardy!, Man-Made Minds Take on Isaac Newton

Read more: Man-Made Minds Take on Isaac Newton at World Science Festival 2011 – Popular Mechanics
http://www.popularmechanics.com/technology/engineering/robots/man-made-minds-take-on-isaac-newton-at-world-science-festival-2011?click=pm_news#slide-1

Whatever happened to artificial intelligence?
https://www.ibm.com/developerworks/mydeveloperworks/blogs/business-analytics/entry/whatever_happened_to_artificial_intelligence?lang=en_us
At a recent business analytics event, Lennart Frantzell demonstrated how (at least at a practical level) there has been a shift in business computing from Artificial Intelligence (AI) to Business Analytics

Artificial Intelligence, Introduction & Application (Part I)
http://www.nicepedia.com/information-technology/artificial-intelligence-introduction-application-part-i/

ACT-R
http://act-r.psy.cmu.edu/
ACT-R is a cognitive architecture: a theory for simulating and understanding human cognition. Researchers working on ACT-R strive to understand how people organize knowledge and produce intelligent behavior.
http://act-r.psy.cmu.edu/about/

Python ACT-R
https://sites.google.com/site/pythonactr/
Python ACT-R is an re-implementation of ACT-R, which is written in LISP

The Myth of the Three Laws of Robotics – Why We Can’t Control Intelligence
http://singularityhub.com/2011/05/10/the-myth-of-the-three-laws-of-robotics-why-we-cant-control-intelligence/

RobotIA
http://robotia.com.ar/

Can Robots with ‘Good Samaritan’ DNA Evolve?
http://www.dailygalaxy.com/my_weblog/2011/05/can-robots-with-altruism-genes-evolve.html

My Links
http://delicious.com/ajlopez/artificialintelligence

Keep tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

February 27, 2013

Artificial Intelligence: Links And Resources (2)

Filed under: Artificial Intelligence, Links — ajlopez @ 5:24 pm

Previous Post
Next Post

ARTIFICIAL INTELLIGENCE 249 AM: A Case Study in AI Methodology
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.89.4342

PREPARING FOR THE NEXT GOOGLE AI CHALLENGE
http://aerique.blogspot.com.ar/2011/03/preparing-for-next-google-ai-challenge.html

Alan Turing and the Electric Monk Overlords
http://crispian-jago.blogspot.com.ar/2011/03/alan-turing-and-electric-monk-overlords.html

Turing Test Online
http://testing.turinghub.com/

Microsoft Research Watch: AI, NoSQL and Microsoft’s Big Data Future
http://www.readwriteweb.com/cloud/2011/03/microsoft-research-watch-ai-nosql-big-data.php

So what is AI?
http://agtb.wordpress.com/2011/03/16/so-what-is-ai/

Turing award goes to ‘machine learning’ expert
http://phys.org/news/2011-03-turing-award-machine-expert.html

Rock-Paper-Scissors: You vs. the Computer
http://www.nytimes.com/interactive/science/rock-paper-scissors.html

A Framework for Representing Knowledge
http://web.media.mit.edu/~minsky/papers/Frames/frames.html
By Marvin Minsky

IBM Watson’s win at Jeopardy! is also a success story for Prolog
https://groups.google.com/forum/?fromgroups#!topic/comp.lang.prolog/SxnIxeONq_E

Automaton, Know Thyself: Robots Become Self-Aware
http://www.scientificamerican.com/article.cfm?id=automaton-robots-become-self-aware

IBM Watson: Ushering in a new era of computing
http://www-03.ibm.com/innovation/us/watson/

Saber la respuesta no significa entenderla
http://www.lanacion.com.ar/1350782-saber-la-respuesta-no-significa-entenderla

Jeopardy Goes to Hadoop
http://nosql.mypopescu.com/post/3406224331/jeopardy-goes-to-hadoop

Can anyone afford an IBM Watson supercomputer? (Yes)
http://www.computerworld.com/s/article/9210381/Can_anyone_afford_an_IBM_Watson_supercomputer_Yes_

Jeopardy: IBM’s Watson almost sneaks wrong answer by Trebek
http://arstechnica.com/business/2011/02/ibms-watson-tied-for-1st-in-jeopardy-almost-sneaks-wrong-answer-by-trebek/

Algorithmic Game Theory and AI
http://agtb.wordpress.com/2011/01/15/agt-and-ai/

Algorithmic Game Theory and Artificial Intelligence
http://www.aaai.org/ojs/index.php/aimagazine/issue/view/192/showToc

Co-evolving parasites improve simulated evolution as an optimization procedure
http://dl.acm.org/citation.cfm?id=87506.87560

W. Daniel Hillis
http://en.wikipedia.org/wiki/W._Daniel_Hillis
William Daniel “Danny” Hillis (born September 25, 1956, in Baltimore, Maryland) is an American inventor, entrepreneur, and author. He co-founded Thinking Machines Corporation, a company that developed the Connection Machine, a parallel supercomputer designed by Hillis at MIT. He is also co-founder of the Long Now Foundation, Applied Minds, Metaweb, and author of The Pattern on the Stone: The Simple Ideas That Make Computers Work.

Is Game Theory (Artificially) Intelligent?
http://agtb.wordpress.com/2011/01/18/is-game-theory-artificially-intelligent/

Un superordenador derrota a los humanos en un concurso de TV
http://www.publico.es/ciencias/356334/un-superordenador-derrota-a-los-humanos-en-un-concurso-de-tv

artificial intelligence | machine learning
http://see.stanford.edu/see/lecturelist.aspx?coll=348ca38a-3a6d-4052-937d-cb017338d7b1

IBM and the Jeopardy Challenge
http://www.youtube.com/watch?v=FC3IryWr4c8

Jeopardy-Playing Computer Tromps Human Players in Practice Round
http://blogs.discovermagazine.com/80beats/2011/01/13/ibms-jeopardy-playing-computer-tromps-human-players-in-practice-round/

The AI Revolution Is On
http://www.wired.com/magazine/2010/12/ff_ai_essay_airevolution/

Ray Kurzweil: The Mind and How To Build One (video)
http://singularityhub.com/2010/12/21/ray-kurzweil-the-mind-and-how-to-build-one-video/

Kurzweil y la neurociencia
http://pacotraver.wordpress.com/2010/12/26/kurzweil-y-la-neurociencia/

Genetic Algorithm For Hello World
http://www.puremango.co.uk/2010/12/genetic-algorithm-for-hello-world/

This Week’s Debate: “Machines Can’t Understand”
http://www.dailygalaxy.com/my_weblog/2010/12/this-weeks-debate-machines-cant-understand.html

Hungarian Lisp developer walks away with Google AI contest
http://www.zdnet.com/blog/burnette/hungarian-lisp-developer-walks-away-with-google-ai-contest/2131

Google AI Challenge: Languages Used by the Best Programmers
http://www.r-chart.com/2010/12/google-ai-challenge-languages-used-by.html

Intelligent Mobile Robot Navigation
http://www.amazon.com/Intelligent-Navigation-Springer-Advanced-Robotics/dp/3642063020

Can Mobile Phones Think?
http://gigaom.com/2010/11/26/can-mobile-phones-think/

My Links
http://delicious.com/ajlopez/artificialintelligence

Keep tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

February 26, 2013

Artificial Intelligence: Links and Resources (1)

Filed under: Artificial Intelligence, Links, Machine Learning — ajlopez @ 4:33 pm

Next Post

This is my first post of links about this fascinating and wide topic. See my other posts about Artificial Intelligence.

http://en.wikipedia.org/wiki/Artificial_intelligence

Artificial intelligence (AI) is the intelligence of machines and the branch of computer science that aims to create it. AI textbooks define the field as “the study and design of intelligent agents”[1] where an intelligent agent is a system that perceives its environment and takes actions that maximize its chances of success.[2] John McCarthy, who coined the term in 1955,[3] defines it as “the science and engineering of making intelligent machines.”[4]

AI research is highly technical and specialized, deeply divided into subfields that often fail to communicate with each other.[5] Some of the division is due to social and cultural factors: subfields have grown up around particular institutions and the work of individual researchers. AI research is also divided by several technical issues. There are subfields which are focussed on the solution of specificproblems, on one of several possible approaches, on the use of widely differing tools and towards the accomplishment of particularapplications. The central problems of AI include such traits as reasoning, knowledge, planning, learning, communication, perception and the ability to move and manipulate objects.[6] General intelligence (or “strong AI”) is still among the field’s long term goals.[7] Currently popular approaches include statistical methods, computational intelligence and traditional symbolic AI. There are an enormous number of tools used in AI, including versions of search and mathematical optimization, logic, methods based on probability and economics, and many others.

AI Winter
http://en.wikipedia.org/wiki/AI_winter

History of artificial intelligence
http://en.wikipedia.org/wiki/History_of_artificial_intelligence

Programming with Natural Language Is Actually Going to Work
http://blog.wolfram.com/2010/11/16/programming-with-natural-language-is-actually-going-to-work/

Personal Robots Group
http://robotic.media.mit.edu/index.html

This Is Your Brain on Metaphors
http://opinionator.blogs.nytimes.com/2010/11/14/this-is-your-brain-on-metaphors/

Machine Learning: A Love Story
http://www.infoq.com/presentations/Machine-Learning

Natural language processing in Clojure, Go and Cython
http://blog.samibadawi.com/2010/10/natural-language-processing-in-clojure.html

La conciencia y su cerebro
http://pacotraver.wordpress.com/2010/10/29/la-conciencia-y-su-cerebro/
Somos organismos, no ángeles y nuestras mentes son órganos, no conductos por los que circule la verdad.

Ability to ‘see’ advances artificial intelligence
http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2010/10/17/BUOI1FSOCC.DTL
Eric Horvitz, a distinguished scientist at Microsoft Research, has an equally distinguished receptionist.

Computer beats human at Japanese chess for first time
http://www.newscientist.com/blogs/shortsharpscience/2010/10/computer-makes-the-winning-mov.html

Machine Learning for Bug Discovery
http://www.informaniac.net/2008/06/machine-learning-for-bug-discovery.html

A computer learns the hard way: By reading the Internet
http://io9.com/5659503/a-computer-learns-the-hard-way-by-reading-the-internet
At Carnegie-Mellon university, a massive computer system called NELL (Never Ending Language Learner) is systematically reading the internet and analyzing sentences for semantic categories and facts, teaching itself English and educating itself in human affairs.

Artificial Intelligence Conducts Better Experiments
http://news.softpedia.com/news/Artificial-Intelligence-Conducts-Better-Experiments-160320.shtml

Expert Systems and Prolog
http://www.i-programmer.info/programming/artificial-intelligence/1423-expert-systems-and-prolog.html

AI Winter
http://www.servinghistory.com/topics/AI_winter
In the history of artificial intelligence, an AI winter is a period of reduced funding and interest in artificial intelligence research.

Robots on TV: AI goes back to baby basics
http://www.newscientist.com/article/dn19470-robots-on-tv-ai-goes-back-to-baby-basics.html?DCMP=OTC-rss&nsref=tech

Deceptive robots hint at machine self-awareness
http://www.newscientist.com/article/mg20727794.800-deceptive-robots-hint-at-machine-selfawareness.html

A Rule-Based Inference Engine
which is Optimal and VLSI Implementable
http://www.cs.uky.edu/~lewis/papers/inf-engine.pdf

How the inference engine works
http://www.j-paine.org/students/lectures/lect3/node10.html
In simple rule-based systems, there are two kinds of inference, forward chaining and backward chaining.

Inference engine
http://en.wikipedia.org/wiki/Inference_engine

“The Selfish Biocosm” -A Radical Theory Says We’ve Already Received a Message from ET
http://www.dailygalaxy.com/my_weblog/2010/09/-the-selfish-biocosm-a-new-theory-says-weve-already-received-a-message-from-et.html
Gardner believes that we’ve already received a message from ET: a message coded into the laws and constants of our universe, including the inexplicable force we’ve named dark energy that’s accelerating cosmic expansion. His theory makes sense of the observation that the constants seems rigged in favor of the emergence of life.

The one computer to rule them all
http://blog.markwatson.com/

Is AI More Common Than Biological Intelligence Across the Universe?
http://blogs.discovermagazine.com/sciencenotfiction/2010/08/31/is-ai-more-common-than-biological-intelligence-across-the-universe/
In a recent article, Search for Extraterrestrial Intelligence (SETI) astronomer Seth Shostak makes an intriguing claim: SETI should start pointing its telescopes toward corners of the known universe that would be friendly not just to intelligent aliens but to artificial alien intelligence.

Top journals in Artificial Intelligence
http://academic.research.microsoft.com/RankList?entitytype=4&topDomainID=2&subDomainID=5&last=0&start=1&end=100

The greatest program ever written
http://www.kuro5hin.org/story/2001/8/10/12620/2164

ZX-81 Chess in 1k
http://users.ox.ac.uk/~uzdm0006/scans/1kchess/

Cognitive Computing Project Aims to Reverse-Engineer the Mind
http://www.wired.com/gadgetlab/2009/02/cognitive-compu/

My links
http://delicious.com/ajlopez/artificialintelligence

Keep tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

February 9, 2013

Programming Languages, Distributed Computing and Artificial Intelligence

It’s time to write a post, explaining my personal interest in some topics, like programming languages, messaging, distributed computing and artificial intelligence. English is not my mother tongue, so I’m afraid of not to be capable to express all what I want to transmit, but I hope this post will shade some light on my development activities.

I’m sure that most of you are interested in such topics. They are interesting, and studying and exploring them is a lot of fun. As software developers, we usually like to play with: writing a new programming language, implementing an existing one, building distributed applications, etc.

But in my case, there is a common ground for all these works. For example, programming languages. The current programming languages should be extended to support a better, with less friction, serialization of simple objects (without behavior, simple messages), to have distributed applications. There are two ways of doing it: extending the language with new syntax, or adding new libraries (see Scala and Akka as examples). So, in order to have a better understanding of what it is needed,  I wrote my own interpreted language (AjSharp), extended Smalltalk (AjTalk) to run distributed objects, writing agents and actors-like demos (AjAgents, and agents in AjSharp), distributed messaging (as in AjFabriq) and exploring JavaScript with Node.js (SimpleMessages, SimpleQueue, MultiNodes, SimpleRemote, SimpleActors… ), to have all in place to have an easy way of writing and running distributed applications. Ok, there are plenty of other projects that I could use. I wrote my own ones to practice and to better understanding of the underlying problems and opportunities. And to have my own fun :-)

But, why distributed computing? I’m convinced that is the path to explore to have new kind of applications. Fundamentally, applications that solve complex problem, that can be tackled using parallel computation, and horizontal scalability. Not only Big Data processing. There are life beyond analyze tweets in real-time. The idea is to attack artificial intelligence problems, using commodity hardware.

That is the big background picture on my development landscape: flexible programming languages; messaging to support distributed application communications; distributed applications for the next generation of problems to solve.

Yes, the next frontier. Where no man has gone before ;-)

Keep tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

June 23, 2012

Alan Turing: Links and Resources

Filed under: Artificial Intelligence, Computer History, Computer Science, Turing — ajlopez @ 10:18 am

Today is the 100th birthday of wartime code-breaker and pioneer of computer science Alan Mathison Turing. My collection of links about Turing, his ideas, his life, his machine, and related topics.

http://en.wikipedia.org/wiki/Alan_Turing

Alan Mathison Turing, OBE, FRS (play /ˈtjʊərɪŋ/ tewr-ing; 23 June 1912 – 7 June 1954), was an English mathematician, logician, cryptanalyst and computer scientist. He was highly influential in the development of computer science, providing a formalisation of the concepts of “algorithm” and “computation” with the Turing machine, which played a significant role in the creation of the modern computer.[1][2] Turing is widely considered to be the father of computer science and artificial intelligence.[3]

COMPUTING MACHINERY AND INTELLIGENCE
http://loebner.net/Prizef/TuringArticle.html
Turing, A.M. (1950). Computing machinery and intelligence. Mind, 59, 433-460

A Turing Machine built using LEGO
http://www.legoturingmachine.org/
In honor of the Alan Turing year 2012

Turing Round Up
http://aperiodical.com/2012/06/turing-round-up/

Una máquina de Turing de Lego
http://www.microsiervos.com/archivo/tecnologia/maquina-turing-lego.html
Para conmemorar el centenario del nacimiento del matemático y pionero de la informática Alan Turing unos aficionados han construido esta Máquina de Turing hecha con piezas de Lego,

El legado de un científico visionario
http://sociedad.elpais.com/sociedad/2012/03/20/actualidad/1332271841_073504.html

When Did That Happen?
http://pragprog.com/magazines/2011-12/when-did-that-happen
During the first or second week of December 1942—it’s impossible to be more precise—three men met for lunch at the Hay-Adams House in Lafayette Square in Washington, D.C. All of the men were geniuses and each of the three made separate, landmark contributions to the creation of electronic computers in the twentieth century.

Maquinaria computadora e inteligencia
http://www.etnassoft.com/biblioteca/maquinaria-computadora-e-inteligencia/

Embracing Uncertainty: The new machine intelligence
http://scpro.streamuk.com/uk/player/Default.aspx?wid=7739

A turing machine in 133 bytes of javascript
http://swizec.com/blog/a-turing-machine-in-133-bytes-of-javascript/swizec/3069

Swizec Gist
https://gist.github.com/1449124
How Dr. Seuss would prove the halting problem undecidable
http://ebiquity.umbc.edu/blogger/2008/01/19/how-dr-suess-would-prove-the-halting-problem-undecidable/

Alan Turing: Una historia de nazis y matemáticas
http://corralmatematico.wordpress.com/2011/08/31/alan-turing-una-historia-de-nazis-y-matematicas/

World War II Enigma Buster Alan Turing Commits Suicide
http://www.computerhistory.org/tdih/June/7/

Alan Turing and the Electric Monk Overlords
http://crispian-jago.blogspot.com.ar/2011/03/alan-turing-and-electric-monk-overlords.html

Turing Test online
http://testing.turinghub.com/

Turing award goes to ‘machine learning’ expert
http://phys.org/news/2011-03-turing-award-machine-expert.html

The Halting Problem
http://www.cgl.uwaterloo.ca/~csk/halt/

Turing Machines
http://www.xamuel.com/turing-machines/
Turing Machines were not the first model of computability, but they were the first model which viscerally captured the idea of computation, in a really tangible way that meshed with intuition. Turing’s model of computability is computationally equivalent to those of Church and Kleene, but even an expert logician has trouble imagining a physical real-life machine for lambda calculus.

Infinite Time Turing Machines
http://www.xamuel.com/infinite-time-turing-machines/

Watson, Turing, and extreme machine learning
http://radar.oreilly.com/2010/08/watson-and-turing.html
The real value of the Watson supercomputer will come from what it inspires.

Turing Completeness Considered Harmful: Component Programming with a Simple Language
http://lampwww.epfl.ch/~mcdirmid/papers/mcdirmid06turing.pdf

Why you need to be excited about SpyParty
http://www.destructoid.com/why-you-need-to-be-excited-about-spyparty-167171.phtml
If you want to look at it in the kookiest way possible, it’s actually a game based around the Turing test.

A Turing Machine
http://aturingmachine.com/
In Alan Turing’s 1936 paper on computable numbers, he presented a thought experiment. Turing describes a machine that has an infinitely long tape upon which it writes, reads and alters symbols. He further shows that a machine with the correct minimal set of operations can calculate anything that is computable, no matter the complexity.

Construye tu propia Máquina de Turing
http://www.neoteo.com/construye-tu-propia-maquina-de-turing

Morphogenesis
http://en.wikipedia.org/wiki/Morphogenesis
Some of the earliest ideas on how physical and mathematical processes and constraints affect biological growth, and hence natural patterns such as the spirals of phyllotaxis, were written by D’Arcy Wentworth Thompson and Alan Turing. These works postulated the presence of chemical signals and physico-chemical processes such as diffusion, activation, and deactivation in cellular and organismic growth.

Chuck Thacker Attains Computing’s Peak
http://www.microsoft.com/en-us/news/features/2010/mar10/03-09chuckthacker.aspx

A Talk With Charles Thacker, the Turing Winner
http://bits.blogs.nytimes.com/2010/03/09/a-talk-with-the-turing-winner/?scp=1&sq=charles%20thacker&st=cse

Barbara Liskov wins Turing Award
http://web.mit.edu/newsoffice/2009/turing-liskov-0310.html
ACM cites ‘foundational innovations’ in programming language design

A Lambda-Calculus Turing Machine
http://frmb.org/lambdaturing.html

The Shortest Universal Machine Implementation
http://www.mathrix.org/experimentalAIT/TuringMachine.html

Gregory Chaitin
http://www.umcs.maine.edu/~chaitin/
Gregory Chaitin is well known for his work on metamathematics and for the celebrated Ω number, which shows that God plays dice in pure mathematics.

Turing Centenary Lecture
http://www.umcs.maine.edu/~chaitin/mexico.html
Alan Turing: From Computers to Life

Three beliefs that lend illusory legitimacy to Cantor’s diagonal argument
http://arxiv.org/ftp/math/papers/0304/0304310.pdf
Cantor’s diagonal argument, Gödel’s proof, and Turing’s Halting problem

Computable function
http://en.wikipedia.org/wiki/Computable_function
Computable functions are the basic objects of study in computability theory. Computable functions are the formalized analogue of the intuitive notion of algorithm. They are used to discuss computability without referring to any concrete model of computation such as Turing machines or register machines.

Halting problem
http://en.wikipedia.org/wiki/Halting_problem
In computability theory, the halting problem can be stated as follows: Given a description of an arbitrary computer program, decide whether the program finishes running or continues to run forever. This is equivalent to the problem of deciding, given a program and an input, whether the program will eventually halt when run with that input, or will run forever.
Alan Turing proved in 1936 that a general algorithm to solve the halting problem for all possible program-input pairs cannot exist.

Omega and why maths has no TOEs
http://plus.maths.org/content/os/issue37/features/omega/index
by Gregory Chaitin

AlanTuring.net
http://www.alanturing.net/
The Turing Archive for the History of Computing

Omega
http://axxon.com.ar/zap/300/c-Zapping0300.htm

My Links
http://delicious.com/ajlopez/turing

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

May 8, 2012

Computer Go: Links, News And Resources (2)

Filed under: Artificial Intelligence, Computer Go, Game Development, Links — ajlopez @ 4:16 pm

Previous Post

More links about this hard problem in Artificial Intelligence: play the game of Go.

In an Ancient Game, Computing’s Future
http://www.nytimes.com/2002/08/01/technology/in-an-ancient-game-computing-s-future.html
EARLY in the film ”A Beautiful Mind,” the mathematician John Nash is seen sitting in a Princeton courtyard, hunched over a playing board covered with small black and white pieces that look like pebbles. He was playing Go, an ancient Asian game. Frustration at losing that game inspired the real Mr. Nash to pursue the mathematics of game theory, research for which he eventually won a Nobel Prize.

What’s black, white and can stump computers?
http://seattletimes.nwsource.com/html/businesstechnology/2003230777_btdigitalgo28.html

Handicap for smaller board sizes
http://senseis.xmp.net/?HandicapForSmallerBoardSizes

Two Representative Computer Go Games
http://webdocs.cs.ualberta.ca/~mmueller/cgo/survey/twogames.html

Baduk
http://baduk.sourceforge.net/
Database pattern search software

Number of legal Go positions
http://homepages.cwi.nl/~tromp/go/legal.html

Zen computer Go program beats Takemiya Masaki with just 4 stones!
http://gogameguru.com/zen-computer-go-program-beats-takemiya-masaki-4-stones/

Orego
https://sites.google.com/site/drpeterdrake/research/orego
Orego is a multi-year project to develop programs to play the classical Asian game of Go.

ICGA Tournaments
http://www.grappa.univ-lille3.fr/icga/
Tournaments between computer programs: chess, draughts, checkers, Go, backgammon, and more

Moyoman
http://www.moyoman.org/
Moyoman is an open-source Go playing program written in Java. The code for move generation is broken up into units called modules. The interfaces for these modules are well-defined, and correspond to standard Go concepts such as shape, the opening, or life and death. There can be multiple implementations of the same module type. The idea is to distribute the design decisions among many different developers. We are actively looking for new developers to write modules.

Computer Go Group at University of Alberta
http://webdocs.cs.ualberta.ca/~games/go/

Computer Go Bibliography
http://webdocs.cs.ualberta.ca/~games/go/compgo_biblio/

Fuego, GNU Go and other builds for Windows
http://gnugo.baduk.org/

Computer Go Research
http://webdocs.cs.ualberta.ca/~mmueller/cgo/index.html
Our Go program and framework Fuego. First computer program to win a 9×9 game on even against a top-ranked human player.

Monte Carlo Tree Search
http://webdocs.cs.ualberta.ca/~mmueller/mcts.html
Monte Carlo Tree Search (MCTS) is the basis of all state of the art Go programs, including Fuego. In our research, we also investigate Monte Carlo techniques in planning, and the close connections between Reinforcement learning and MCTS.

Latest Advance in Artificial Intelligence: Computer Wins a Game Against a Go Master
http://www2.prnewswire.com/cgi-bin/stories.pl?ACCT=104&STORY=/www/story/04-09-2008/0004789446&EDATE=

Cracking GO
http://spectrum.ieee.org/computing/software/cracking-go
Brute-force computation has eclipsed humans in chess, and it could soon do the same in this ancient Asian game

GoGui
http://gogui.sourceforge.net/
GoGui is a graphical user interface to programs that play the board game Go and support the Go Text Protocol such as GNU Go.

MoGo: a Grid5000-based software for the Game of Go
http://www.lri.fr/~teytaud/mogo.html

The Game of Go: A Programmer’s Perspective
http://needforair.com/blog/2012/04/18/game-of-go/

Go news and sensations
http://gosensations.com/

Windows HPC: Playing GO on Surface against a Cluster
http://www.youtube.com/watch?v=Qe0o-IvHOa0

GTP engines
http://ricoh51.free.fr/go/engineeng.htm
A go engine is a software that plays go. A GTP go engine is a software that plays go and dialogs through the "Go Text Protocol" with another software like GoGui or Dariush.

Dutch Supercomputer Beats Human at Go
http://www.hpcwire.com/hpcwire/2008-08-14/dutch_supercomputer_beats_human_at_go.html

Smart Games
http://www.smart-games.com/

My Links
http://delicious.com/ajlopez/computergo

Keep tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

May 3, 2012

Computer Go: Links, News and Resources (1)

Filed under: Artificial Intelligence, Computer Go, Game Development, Links — ajlopez @ 1:17 pm

Next Post

Computer Go is one of my favorites topics. A challenge for game artificial intelligence, the ancient game is enjoyable by itself, and I recommend you to learn how to play it. Some of my links about the topic of computer go:

(citeseer access needs a free account, you must register)

http://en.wikipedia.org/wiki/Go_(game)

Go (圍棋 weiqi in Chinese, 囲碁 igo in Japanese, 바둑 baduk in Korean, common meaning: “encircling game”), is an ancient board game for two players that originated in China more than 2,000 years ago. The game is noted for being rich instrategy despite its relatively simple rules.

http://en.wikipedia.org/wiki/Computer_Go

Computer Go is the field of artificial intelligence (AI) dedicated to creating a computer program that plays Go, a traditional board game.

Computer Go
http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.118.5927
Computer Go is one of the biggest challenges faced by game programmers. This survey describes the typical components of a Go program, and discusses knowledge representation, search methods and techniques for solving specific subproblems in this domain.

Computer Go: an AI Oriented Survey
http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.21.4871
Since the beginning of AI, mind games have been studied as relevant application fields. Nowadays, some programs are better than human players in most classical games. Their results highlight the efficiency of AI methods that are now quite standard. Such methods are very useful to Go programs, but they do not enable a strong Go program to be built. The problems related to Computer Go require new AI problem solving methods.

Global and Local Game Tree Search
http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.36.3989

The Move Decision Strategy of Indigo
http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.14.8118
This paper describes the move decision strategy of Indigo. By using the example of Indigo, the paper shows that the move decision process of a Go program can be very different from the processes used in other games with lower complexity than the complexity of Go, even if the basic modules are conventional (move generator, evaluation function and tree search). Indigo uses them in a specific way, adapted to computer Go, which may be of interest for researchers on other mind games as complex as Go.

Using Hard And Soft Artificial Intelligence Algorithms To Simulate Human Go Playing Techniques
http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.18.8731

Associating Domain-Dependent Knowledge and Monte Carlo Approaches within a Go Program
http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.6.1059

Bruno Bouzy Papers
http://citeseer.ist.psu.edu/search?q=Bruno+Bouzy&submit=Search&sort=rlv&t=doc

Pursuing abstract goals in the game of Go
http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.19.15

A positional Judgment System for Computer Go
http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.14.5796
Computer Go offers researchers a new challenge and opens up a very wide scope of possibilities for artificial intelligence. In a computer Go program, the most important element is a positional judgment system. Following the methods of human Go experts, we designed and implemented a new model of positional judgment for computer Go.

Value Function
http://rlai.cs.ualberta.ca/RLAI/RLGO/concepts/valuefn.html
Any strong Computer Go program must compute a win/lose value function as an intermediate step, that corresponds directly to the expected result at the end of the game (win, lose or draw).

The Question Hypothesis
http://rlai.cs.ualberta.ca/RLAI/RLGO/qhypoth.html
All useful features of a state in Go can be interpreted as answers to questions about the current and future value of observations.

The value-function hypothesis
http://rlai.cs.ualberta.ca/RLAI/valuefunctionhypothesis.html
All efficient methods for solving sequential decision problems determine (learn or compute) value functions as an intermediate step.

Pattern Matching
http://senseis.xmp.net/?PatternMatching

On Meta-Game Approaches to Computer Go
http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.47.3662
Meta-game approaches are studied through the design of the Go playing program INDIGO. Computer Go is a challenge for AI and the machine still remains weak compared to humans in the game of Go. This difference is used to try new technics as such as the Metagame technique discussed in this paper. A conceptual structure and a notion of Conway’s game theory are described in order to show four approaches. Each approach is presented to show its method using games, its computational cost, its precision and its Meta-game’s utilisation.

Mathematical Morphology Applied to Computer Go
http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.14.6415
This paper shows how mathematical morphological operators can be applied to computer go. On one hand, mathematical morphology is a very powerful tool within image processing community. On the other hand, the Zobrist’s model is well-known within the computer go community for its “influence” recognition. We present a model, derived from the closing operator of mathematical morphology and from the Zobrist’s model, which yields very good results for “territory” recognition.

Computer Go
http://www.daogo.org/
An international bulletin devoted to the generation and exchange of ideas about Computer Go

Computer Go: El gran problema de AI
http://msmvps.com/blogs/lopez/archive/2007/01/15/computer-go-el-gran-problema-de-ai.aspx

Computer Go Programming
http://senseis.xmp.net/?ComputerGoProgramming

Computer Go Algorithms
http://senseis.xmp.net/?ComputerGoAlgorithms

Benson’s Definition of Unconditional Life
http://senseis.xmp.net/?BensonsAlgorithm

MultiGo
http://www.ruijiang.com/multigo/
MultiGo is designed to view/edit Smart-Go format(SGF) go game file. It also supports other popular file format including *.BDX, *.NGF, *.GOS, *.GIB, *.UGF, *.GO. You can easily navigate through the game and branches, add/remove markers and comments, create or edit your own branches. You could use MultiGo to play with GNU Go, or even record/play go video.

Compendium of Rules for Wei-Qi (Go, Baduk)
http://www.cs.cmu.edu/afs/cs.cmu.edu/Web/People/wjh/go/rules/
GO: An hour to learn; a lifetime to master.

Go Variants
http://www.win.tue.nl/~engels/go/variants.html
Here are some variants of our noble game, in case you want to do something else.

Computer Go/Writing a Go Engine
http://en.wikibooks.org/wiki/Computer_Go/Writing_a_Go_Engine

BiGo Software
http://bigo.baduk.org/

Game Theories and Computer Go
http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.36.3983

The program GoTools and its computer-generated tsume go database
http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.54.9146

Forward Pruning and Other Heuristic Search Techniques in Tsume Go
http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.45.5593

Eyespace Values in Go
http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.13.1004

The complexity of Go
http://citeseer.ist.psu.edu/showciting?cid=365120

Computer Go as a Sum of Local Games: An Application of Combinatorial Game Theory
http://citeseer.ist.psu.edu/showciting?cid=365116

The Integration of A Priori Knowledge into a Go Playing Neural Network
http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.32.411

Lambda-Search In Game Trees – With Application To Go
http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.28.3632

Race to Capture: Analyzing Semeai
http://citeseer.ist.psu.edu/showciting?cid=2334915

Experiments in Computer Go Endgames
http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.20.1653
Recently, the mathematical theory of games has been applied to late-stage Go endgames [Berlekamp and Wolfe 1994; Wolfe 1991]. Based upon this theory, we developed a tool to solve local Go endgames. We verified all exact game values in [Wolfe 1991] and analyzed some more complex positions. We extended our method to calculate bounds for positions where optimal play depends on Ko. Our program Explorer uses this tool to play full board endgames. It plays a nontrivial class of endgame positions perfectly. In a last section we discuss heuristic play for a wider range of endgames.

Generation of Patterns With External Conditions for the Game of Go
http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.46.9428

Metarules to Improve Tactical Go Knowledge
http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.19.8524

Metaprogramming Domain Specific Metaprograms
http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.39.8563

Tristan Cazenave Articles
http://citeseer.ist.psu.edu/search?q=Tristan+Cazenave&submit=Search&sort=rlv&t=doc

Honte, a Go-Playing Program Using Neural Nets
http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.50.2676

A small Go board Study of metric and dimensional Evaluation Functions
http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.19.2784
The difficulty to write successful 19×19 go programs lies not only in the combinatorial complexity of go but also in the complexity of designing a good evaluation function containing a lot of knowledge. Leaving these obstacles aside, this paper defines very-little-knowledge evaluation functions used by programs playing on very small boards. The evaluation functions are based on two mathematical tools, distance and dimension, and not on domaindependent knowledge.

The go-playing program called Go81
http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.100.6651

Developments On Monte Carlo Go
http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.15.452

A Learning Architecture For The Game Of Go
http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.19.329
In this paper, a three-component architecture of a learning environment for Go is sketched, which can be applied to any two-player, deterministic, full information, partizan, combinatorial game. The architecture called HUGO has natural and human-like reasoning components. Its most abstract component deals with the selection of subgames of Go. The second component is concerned with initiative. The notion of gote no sente (a move that loses initiative but creates new lines of play that will hold initiative) is formalized. In the third component, game values are computed with a new kind of – algorithm based on fuzzy, partial ordering. Our approach leaves some valuable control parameters and oers ways to apply further machine learning techniques.

My Links
http://delicious.com/ajlopez/computergo

More links are coming.

Keep tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

April 11, 2012

Game Theory: Links, News and Resources (1)

Filed under: Artificial Intelligence, Game Theory, Links — ajlopez @ 4:06 pm

http://en.wikipedia.org/wiki/Game_theory

Game theory is a method of studying strategic decision making. More formally, it is "the study of mathematical models of conflict and cooperation between intelligent rational decision-makers."[1] An alternative term suggested "as a more descriptive name for the discipline" is interactive decision theory.[2] Game theory is mainly used in economics, political science, and psychology, as well as logic and biology. The subject first addressed zero-sum games, such that one person’s gains exactly equal net losses of the other participant(s). Today, however, game theory applies to a wide range of class relations, and has developed into an umbrella term for the logical side of science, to include both human and non-humans, like computers. Classic uses include a sense of balance in numerous games, where each person has found or developed a tactic that cannot successfully better his results, given the other approach.

Pequeño LdN: Diez habitaciones para 20 aventureros
http://pequenoldn.librodenotas.com/matiaventuras/1391/diez-habitaciones-para-20-aventureros

EC = MC^3 « Turing’s Invisible Hand
http://agtb.wordpress.com/2012/01/30/ec-mc3/

AGT/E publication venues « Turing’s Invisible Hand
http://agtb.wordpress.com/2010/08/30/agte-publication-venues/#comment-2373

AGT and AI « Algorithmic Game-Theory/Economics
http://agtb.wordpress.com/2011/01/15/agt-and-ai/

Artificial Intelligence Magazine Vol 31, No 4
http://www.aaai.org/ojs/index.php/aimagazine/issue/view/192/showToc

Algorithmic Game Theory and Artificial Intelligence
http://agtb.wordpress.com/2011/01/15/agt-and-ai/

Is Game Theory (Artificially) Intelligent? « Algorithmic Game-Theory/Economics
http://agtb.wordpress.com/2011/01/18/is-game-theory-artificially-intelligent/

Cloud business analytics: Write your own dashboard
http://www.ibm.com/developerworks/cloud/library/cl-cloudbizanalytics/
Find patterns in multitudes of cloud business analytics data
See Game theory, AI theory, and raw statistical analysis.

Game Theory and Public Policy
http://www.amazon.com/Theory-Public-Policy-Roger-McCain/dp/1849805717

Why Isn’t Backgammon More Popular?
http://www.freakonomics.com/2010/12/14/why-isnt-backgammon-more-popular/

Reputation for Human Computation « Algorithmic Game-Theory/Economics
http://agtb.wordpress.com/2010/07/28/reputation-for-human-computation/

Regret in Markets « Algorithmic Game-Theory/Economics
http://agtb.wordpress.com/2010/07/13/regret-in-markets/

Testing Mixed-Strategy Equilibria When Players Are
Heterogeneous: The Case of Penalty Kicks in Soccer
http://pricetheory.uchicago.edu/levitt/Papers/ChiapporiGrosecloseLevitt2002.pdf

Freakonomics: World Cup Edition
http://www.freakonomics.com/2010/06/10/freakonomics-radio-world-cup-edition/

Penales
http://www.pagina12.com.ar/diario/contratapa/13-148338-2010-06-26.html
Lehmann vuelve a mirar el papel. Esta vez…. no decía nada. No tenía antecedentes de Cambiasso pateando penales. Al menos, él (Lehmann) no los tenía. Pero Cambiasso había pateado penales en su vida alguna vez.
Y aquí aparece la Teoría de Juegos. ¿Cómo podía saber Cambiasso lo que decía el papel de Lehmann? 1 En todo caso, ¿cómo podía saber que Lehmann no sabía nada sobre él? Lehmann lo miraba como si supiera.

EC10 and current trends in algorithmic game theory
http://agtb.wordpress.com/2010/06/13/ec10-and-current-trends-in-algorithmic-game-theory/

Game Theory, Prisoner’s Dilemma, Nash Equilibrium, Stag Hunts, and Sherlock Holmes…and Counter-Terrorism? 1/2
http://russwbeck.wordpress.com/2009/01/18/sra211reviewgametheory/

Thomas Schelling
http://en.wikipedia.org/wiki/Thomas_Schelling
He was awarded the 2005 Nobel Memorial Prize in Economic Sciences (shared with Robert Aumann) for "having enhanced our understanding of conflict and cooperation through game-theory analysis."
See Models of Segregation, too. I disagree with him: the model is too simplified, but interesting.

Trillion $ problems
http://agtb.wordpress.com/2010/02/18/trillion-problems/

Computability in game theory « The Leisure of the Theory Class
http://theoryclass.wordpress.com/2010/02/15/computability-in-game-theory/

How to lose as little as possible
http://arxiv.org/abs/1002.1763

Darwin Plays Game Theory—and Wins | Animal Intelligence | DISCOVER Magazine
http://discovermagazine.com/2009/jun/04-game-theory-meets-darwin

Prisoner’s Dilemma and Mechanical Turk
http://www.behind-the-enemy-lines.com/2009/12/prisoners-dilemma-and-mechanical-turk.html

Inductive Reasoning and Bounded Rationality
http://www.santafe.edu/~wbarthur/Papers/El_Farol.html

Utility of Money and the St. Petersburg Paradox
http://www.behind-the-enemy-lines.com/2009/11/utility-of-money-and-st-petersburg.html

A New THEORY of
AWESOMENESS and MIRACLES
http://shorttermmemoryloss.com/menace/

Networks, Crowds, and Markets: A Book by David Easley and Jon Kleinberg
http://www.cs.cornell.edu/home/kleinber/networks-book/

Por qué Pascal iba a misa todos los domingos ? « Martin Mendez blog
http://martinmendez.com/2009/02/24/por-que-pascal-iba-a-misa-todos-los-domingos/

Digg as a Game | shmula
http://www.shmula.com/197/digg-as-a-game

A K Peters, Ltd. – The Dots and Boxes Game
http://www.akpeters.com/product.asp?ProdCode=1292

Pseudolog.com: Juegos: LAP
2 saves http://blog.pseudolog.com/article/?c=Juegos

LAP
http://www.boardgamegeek.com/boardgame/19917/lap

My Links
http://delicious.com/ajlopez/gametheory

November 11, 2011

Machine Learning: Links, News and Resources (1)

Filed under: Artificial Intelligence, Lambda Calculus, Links, Machine Learning — ajlopez @ 10:01 am

http://en.wikipedia.org/wiki/Machine_learning
Machine learning, a branch of artificial intelligence, is a scientific discipline concerned with the design and development of algorithms that allow computers to evolve behaviors based on empirical data, such as from sensor data or databases. Machine learning is concerned with the development of algorithms allowing the machine to learn via inductive inference based on observing data that represents incomplete information about statistical phenomenon and generalize it to rules and make predictions on missing attributes or future data. An important task of machine learning is classification, which is also referred to as pattern recognition, in which machines “learn” to automatically recognize complex patterns, to distinguish between exemplars based on their different patterns, and to make intelligent predictions on their class.

Machine Learning at Stanford
http://www.ml-class.org/course/auth/welcome
Enroll today in our online class for free!

Reinforcement Learning: An Introduction
http://webdocs.cs.ualberta.ca/~sutton/book/ebook/the-book.html

Machine Learning
Systems that Improve Their Performance
http://aaai.org/AITopics/MachineLearning

Does Machine Learning Really Work?
http://www.aaai.org/ojs/index.php/aimagazine/article/view/1303/1204

My first encounter with the topic:
Samuel’s Checkers Player
http://webdocs.cs.ualberta.ca/~sutton/book/ebook/node109.html

TD Gammon
http://webdocs.cs.ualberta.ca/~sutton/book/ebook/node108.html

University of Alberta, Department of Computing Science, Machine Learning
https://www.cs.ualberta.ca/research/research-areas/machine-learning

University of Alberta, CS, Research
https://www.cs.ualberta.ca/research
See
https://www.cs.ualberta.ca/research/research-areas/bioinformatics
https://www.cs.ualberta.ca/research/research-areas/computer-games
https://www.cs.ualberta.ca/research/research-areas/artificial-intelligence
https://www.cs.ualberta.ca/research/research-areas/advanced-man-machine-interfaces

Turing award goes to ‘machine learning’ expert
http://www.physorg.com/news/2011-03-turing-award-machine-expert.html

Stanford School of Engineering – Stanford Engineering Everywhere
http://see.stanford.edu/see/courseInfo.aspx?coll=348ca38a-3a6d-4052-937d-cb017338d7b1

InfoQ: Machine Learning: A Love Story
http://www.infoq.com/presentations/Machine-Learning

Informaniac: Machine Learning for Bug Discovery
http://www.informaniac.net/2008/06/machine-learning-for-bug-discovery.html

io9. We come from the future.
http://m.io9.com/5659503/a-computer-learns-the-hard-way-by-reading-the-internet

bradford’s infer at master – GitHub
http://github.com/bradford/infer

Pragmatic Programming Techniques: Map/Reduce to recommend people connection
http://horicky.blogspot.com/2010/08/mapreduce-to-recommend-people.html

Smarter Than You Think – I.B.M.’s Supercomputer to Challenge ‘Jeopardy!’ Champions – NYTimes.com
http://www.nytimes.com/2010/06/20/magazine/20Computer-t.html?hp

Google Prediction API: Commoditization of Large-Scale Machine Learning? – A Computer Scientist in a Business School
http://behind-the-enemy-lines.blogspot.com/2010/05/google-prediction-api-commoditization.html

Apache Mahout – Overview
http://mahout.apache.org/

Papers – Hadoop Wiki
http://wiki.apache.org/hadoop/Papers

20Q – Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/20Q

Machine Learning in Game AI – Stack Overflow
http://stackoverflow.com/questions/970060/machine-learning-in-game-ai

Applications of Machine Learning to the Game of Go
http://videolectures.net/epsrcws08_stern_aml/
David Stern, Applied Games Group, Microsoft Research Cambridge

Deep Boltzmann Machine on MNIST
http://quotenil.com/Deep-Boltzmann-Machine-on-MNIST.html

Introduction to MGL (part 1)
http://quotenil.com/Introduction-to-MGL-(part-1).html

Measuring Measures – blog – Learning about Machine Learning, 2nd Ed.
http://measuringmeasures.com/blog/2010/3/12/learning-about-machine-learning-2nd-ed.html

IET/BCS Turing Lecture 2010 | Professor Christopher Bishop
http://tv.theiet.org/technology/infopro/turing-2010.cfm

So you think machine learning is boring?
http://www.causata.com/blog/2010/02/so-you-think-machine-learning-is-boring.html

Google AI Challenge
http://csclub.uwaterloo.ca/contest/

Common Lisp and Google AI Challenge
http://aerique.blogspot.com/2010/02/google-ai-challenge-2010.html

Infer.NET: Building Software with Intelligence :: Sessions :: Microsoft PDC09
http://microsoftpdc.com/Sessions/VTL03

Infer.NET – Now with F# support @ JustinLee.sg
http://www.justinlee.sg/2009/12/09/infer-net-now-with-f-support/

Pragmatic Programming Techniques: Machine Learning: Association Rule
http://horicky.blogspot.com/2009/10/machine-learning-association-rule.html

Pragmatic Programming Techniques: Machine Learning with Linear Model
http://horicky.blogspot.com/2009/11/machine-learning-with-linear-model.html

A New Theory of Awesomeness and Miracles, by James Bridle, concerning Charles Babbage, Heath Robinson, MENACE and MAGE
http://shorttermmemoryloss.com/menace/

A small personal project to learn Clojure by implementing some simple machine learning algorithms edit
http://github.com/mreid/injuce/

Introducing Apache Mahout
http://www.ibm.com/developerworks/java/library/j-mahout/index.html

Apache Mahout – Overview
http://lucene.apache.org/mahout/

How Flightcaster squeezed predictions from flight data
http://www.datawrangling.com/how-flightcaster-squeezes-predictions-from-flight-data

Map-Reduce for Machine Learning on Multicore
http://www.cs.stanford.edu/people/ang//papers/nips06-mapreducemulticore.pdf

Torch3: The Dream Comes True
http://www.torch.ch/introduction.php

Reinforcement Learning and Artificial Intelligence: Toolkit
http://rlai.cs.ualberta.ca/RLAI/RLtoolkit/RLtoolkit1.0.html

Machine Learning Book Code
http://seat.massey.ac.nz/personal/s.r.marsland/MLBook.html

Scientific Commons: Simon Colton
http://de.scientificcommons.org/simon_colton

A Grid-based Application of machine learning to model generation
http://www.doc.ic.ac.uk/~sgc/papers/sorge_ki04.pdf

Reinforcement Learning: An Introduction
http://webdocs.cs.ualberta.ca/~sutton/book/ebook/the-book.html

Learning Draughts/Checkers
http://www.codeproject.com/KB/game/learning_draughts.aspx

Learning Connect Four
http://www.codeproject.com/KB/game/learningconnectfour.aspx

Introduction to Machine Learning
http://robotics.stanford.edu/~nilsson/mlbook.html

The Use of Java in Machine Learning
http://www.developer.com/java/other/article.php/10936_1559871_1

Similarity Learning – IDL – EE – Washington.edu
http://idl.ee.washington.edu/similaritylearning/

Gwap
http://www.gwap.com/gwap/about/

Machine Learning
http://aima.cs.berkeley.edu/ai.html#learning

Artificial Intelligence on the Web
http://aima.cs.berkeley.edu/ai.html
This page links to 820 pages around the web with information on Artificial Intelligence.

Yu-Han Chang
http://www.yuhanchang.com/home.html
“My research centers on learning in rich multi-agent environments”

My Links
http://www.delicious.com/ajlopez/machinelearning

Angel “IAmStillLearning” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

May 25, 2011

Code Generation and Artificial Intelligence

In late seventies and early eighties (past century ;-) ) I was learning a lot about programming, programming languages and computer science in general. They were the days of COBOL, BCPL, IBM/360 assembler languages, JCL, punched cards, Pick Operating Systems, Pick Basic, ALGOL/W, Fortran, PL/I, and C (in CP/M, DOS, Unix/Xenix world). One of my preferred topics (then and now) was Artificial Intelligence, a broad term. Those days were the golden age of expert systems. I was writing a lot of C code, then, as a lazy programmer, I started to write my own C utilities to generate more C programs ;-) . Since then, I have an idea:

Code Generation should be an Artificial Intelligence application

In the late eighties, early nineties, the amount of code to write to have a professional application diminished (new IDEs, wizards). But that was a transitory state: the complexity imposed by market, new customer requirements, online application, concurrency, new technologies and languages (Windows, GUIs…) all conspired to the increase of effort that should be employed to create any non-trivial application. I embraced Java at mid-90s, and .NET at 2001. Large class libraries, new tips and tricks, architectural styles, patterns, JSP, JSF, MVC, ASP.NET, Javascript, some PHP, distributed computing, physical tiers… The software development arena became more complex. And now, we have mobile, Android, Windows Phone 7, ASP.NET MVC, new JDKs, JVMs, new dynamic languages… I could continue this enumeration for ever, no break here ;-)

So, at the begin of the century, I decided to start my open source project for code generation, AjGenesis. First, this is the current process I use in my code generation projects:

(Ok, I’m a developer, not a designer ;-) )

The staring models (left) are free: you can use any model you want, it’s not fixed. This is a key decision: I want YOU have the freedom to start whit whatever you want as a base for your code generation. But it should be a MODEL. It’s not only code generation: it’s CODE GENERATION FROM A MODEL(S). Usually, I have an abstract model, like:

<Project>
	<Name>AjApp</Name>
	<Description>Building an Application using AjGenesis</Description>
	<Model>
		<Entities>
			<Entity Source="Entities/Customer.xml"/>
			<Entity Source="Entities/Supplier.xml"/>
		</Entities>
	</Model>
</Project>

and one or more technology model, like:

<Technology>
	<Programming>
		<Dialect>CSharp4NhMvc</Dialect>
	</Programming>
	<Database>
		<Dialect>MsSql</Dialect>
		<Name>AjTestNh</Name>
		<Host>.\SQLEXPRESS</Host>
	</Database>
	<NHibernate>
		<Dialect>NHibernate.Dialect.MsSql2000Dialect</Dialect>
	</NHibernate>
</Technology>

(more info in my AjGenesis posts). The models can be written using XML or text. Or you can use your own models (see Models for Code Generation in AjGenesis). The text artifacts could be Java, C#, VB.NET, Ruby, whatever you want. Notably: my AjGenesis examples started generating PHP, and JSP 1.x, and they evolved WITHOUT CHANGING THE TOOL to generate PHP (new versions), Java, JSP 2.x, Hibernate, NHibernate, ASP.NET 1.x, ASP.NET 2.x, ASP.NET MVC… It can be adapted to any text-based technology. To have such flexibility, it has no GUI IDE association. It's has Spartan interface, but I liked it.

Since inception, I adopted a general dynamic language, AjBasic, to support tasks and templates: I didn't want a transformation engine, from model to code via templates. I want to have the power of a GENERAL language. Why? TO SUPPORT EXTENSIBILITY, beyond template expansion. And, surprise! What kind of extensibility? Anyone, but you know…. yes, right! Artificial Intelligence!

My assertion:

Code Generation from a Model can be implemented as an Expert System, and then, it's a clear target for Artificial Intelligence

Graphically:

You can view software developers as experts. We can distill their expertise in expert systems and add them to code generation process. Some examples:

- An expert system can use a rule engine to make decisions: macro or mini ones. Mini-one: “This web report can have lot of rows, I need pagination, filtering, and ordering….” And then, some part of the expert systems recommends: “Yes! We could use JQuery and JQuery.UI, client-side filtering”… and other part (yes, my expert systems is multi-mind ;-) ) says “No! We need server-side filtering, then we need such queries and services, and Ajax endpoints and … “ Got the picture?

A micro-decision I employed last year in a real project: one kind of entity, in an abstract model, was marked as “massive” meaning: “we have lot of instances of Entity X”. Then, when in the UI we needed to select one Entity X, instead of a dropdown, the code generation engine put a search box, with auto-complete, with Ajax service at server.

I could use, for the abstract model, some base ontology and make assumptions and decisions. Example:

- Every entity could be: a person, a company, a place, a physical good, an event, a document. Then, the expert system could infer: a place has an address. A physical good should be located in a place. A document X should be needed to represent the move of a physical good from place A to place B. A person can be an employee. Every employee has social security… etc…. etc.. Then, we need a report of the X events, ordered by date, grouped by location, etc… etc… This document has a money total, it should be interesting to have a total grouped by any party (customer? company? person?) involved in the document. And by month? Yes, we need a pie chart … and so on… ;-)

I could add a rule engine, to make some of these kind of decisions, with rules like “if entity X is massive and the UI is web and JQuery is an available option then … “. Or rules like: “if entity X inherits from entity Y and we need persistence, we adopt table-per-hierarchy (or table-per-concrete class) ORM strategy, and then we generate…. database tables and …. ORM mapping code or configuration”. Or: “this entity X is a document having a date, we add an index on that date/time column in Y table”. So many decisions can be made in this way. Actually, in AjGenesis, most of these decisions are in the tasks and technology models.

In the long term, code generation from a model involves:

- This is the starting point: abstract models, technical models (restrictions: “we need all this in ASP.NET MVC 3”)

- This is the expected deliverable (a partial working system)

- And these are the distilled expert knowledge we got from our/others experience.  And with all these, we can go from start to end. using the accumulated programming skills, ORM configuration, dependency injection libraries, UI tips and tricks, recurrent patterns, database creation knowledge, etc..

Software development and architecture is related to:

- Know what you need

- Know what are the problems to resolve (persistence, concurrency, security, traceability, UI access, etc…)

- Know what are the available solutions (database, NoSql, language, class libraries, frameworks, UI technology, patterns…)

Code generation from a model has a (great, IMO) benefit: it put clear the existence, separation and relations of the above points.

Other way to explore: the use of expert agents. What does “expert agent” mean in my jargon? My vision: you can have modules, agents that can be added, removed without much effort, that can resolves problems. Then, someone can develop a JSF expert, that knows what JavaBeans to define for implement a given interface in a use case. Then, if in the future the rule engine or the initial restrictions say: “Now, we need JSF 17.2, or ASP.NET MVC 6.5 or the new SuperDuperOpenSourceUIThatIsTheNextBigThingHere”, we can adopt new solutions for the similar problems, distilling the new knowledge and putting it in a new expert agent.

Ok, all these are the reasons for an (upcoming?) AjRules ;-) . And the justification for AjLisp (see here) and some AjProlog to be updated (see it inside AjCodeKatas).

Related posts (in Spanish):

Models, decisions, Artificial Intelligence and AjGenesis

About Code Generation

Keep tuned!

Angel “Java” Lopez

http://www.ajlopez.com

http://twitter.com/ajlopez

Older Posts »

Theme: Shocking Blue Green. Blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.

Join 28 other followers