I just noticed that my old photo galleries have not been available since Nov 2006 because the free server account they were on was closed. So now I just put those galleries to the same server where the web page is. Also, there was a dead link under CSSS2004 gallery section, and I removed the link.
Sunday 11 March 2007
Poster presentation for EWSCS'07
By Taivo Lints on Sunday 11 March 2007, 22:46
This week I participated in 12th Estonian Winter School in Computer Science, which was a pleasant and well organized event in a nice location. Not all lectures were equally interesting for me, of course, but I had foresightedly taken some reading with me to avoid wasting time :) But some of the lectures WERE interesting for me, too (e.g. membrane computing by Gheorghe Păun, digital watermarking by Ingemar J. Cox, and Arvind's lectures about hardware synthesis), and anyway, such schools are not only about listening lectures, but also getting new contacts and having discussions and just having fun :)
I also made a poster presentation for EWSCS'07, which is now downloadable from my homepage's subsection PhD Topic (in the end of the page).
Sunday 25 February 2007
Homepage update
By Taivo Lints on Sunday 25 February 2007, 22:53
From now on, I will notice about my homepage updates here in the blog instead of on the homepage itself.
The latest update:
- Added an old unpublished overview paper of MyANN project to the MyANN page.
- Added section "PhD Topic".
- Added link to this blog.
- Moved homepage update news to this blog. The old news are:
November 2006: Photo gallery Euro'06.
September 2006: I moved my bookmarks from Jots to del.icio.us and made corresponding changes on "Links" page, including the addition of Tag Cloud (I left Jots because it has developed several problems: advertisements, noticeable downtime, problems with API, long page load time,...). Some updates on page "Who am I?". From page "Links" removed YouSendIt (not so good service anymore, there are better ones now available).
January 2006: ECAL'05 photo gallery.
December 2005: "Site Info" and "Links" ready.
Autumn 2005: most of the new site up and running.
Friday 8 December 2006
My PhD Thesis Overview: Adaptivity. Your Suggestions Very Welcome!!!
By Taivo Lints on Friday 8 December 2006, 23:50
Goal of the project: to find out the properties and processes that make systems adaptive.
Project status: collecting background information. I am (as of Dec 2006) in the first half of the 2nd year (of the total of 4) of my PhD studies. 1st year was mostly spent on taking courses.
1. What
Adaptation in general is a process through which a system restores, maintains or increases its fitness when outer and inner environments change, or increases its fitness in a nonchanging environment. Adaptation can be observed:
- at different levels: single individual (or nonbiological object, or part of an organism), a group (or a small number of objects), society (or a huge number of objects);
- at different time scales: short periods (compared to individual's lifetime), individual's lifetime, species' lifetime (if it can be determined, as species are usually in a constant change), and even longer periods;
- etc.
My thesis, in its currently very general formulation, is: "The properties and processes causing adaptivity in various systems are similar (when described at a suitable level of abstraction), or at least form a small number of different classes.".
Keywords related to the thesis: adaptivity, learning, flexibility, elasticity, plasticity, context-dependency/-dependence, context-awareness, self-organization, (self-)adjustability, (self-)reconfigurability, feedback, resilience, evolution, conformance, ...
2. Why
The phenomenon of adaptivity is obviously quite widely studied in various systems. However, I have not been able to find any good interdisciplinary, yet thorough, source giving a well-systematized overview of adaptation in different kinds of systems and of underlying processes of adaptation in specific cases and in general (note: there are good materials on adaptation as an evolutionary process, but I am using the term adaptation in a much more general sense here). Possible reasons for not finding such a source:
- I have not searched well enough? In that case this source must be quite hard to find and is likely to be missed by many other searchers, too, as I have already done at least medium level searches from databases of scientific papers, from amazon.com and from elsewhere in the web. I do continue searching, of course: if not to find THE source, then at least to find numerous existing works on adaptation in specific fields of study.
- The generalizations are impossible to make? This is not very likely as at least some generalizations HAVE been made. For example the notion of evolution can be used to describe slow adaptation in biological species as well as, for example, in the ideas moving around in a society (as suggested by memetics theory), and it is used as an inspiration for genetic algorithms. Also, cybernetics has pointed out a general process important for adaptation, namely the feedback. Of course, it can be wondered whether there would be any use for very broad generalizations at all, as Kenneth Boulding says (Boulding, 1956): "... we always pay for generality by sacrificing content, and all we can say about practically everything is almost nothing.". But he immediately continues: "Somewhere however between the specific that has no meaning and the general that has no content there must be, for each purpose and at each level of abstraction, an optimum degree of generality.". For the work on adaptation to have the biggest value, therefore, it should probably present in a systematic way the information characterizing adaptation at different levels of abstraction: starting from specific examples and going through various levels of abstraction (possibly in several parallel paths) up to the general notion of adaptivity.
- Such an overview is just not written yet, though it would be possible, and very useful for understanding and creating adaptive systems? Considering the preceding discussion I find this the most probable reason for not finding the aforementioned thorough source. Therefore, creating a work analyzing and systematizing the adaptation processes of various systems seems to be, in my opinion, well justified.
3. How
Methods of doing my work will likely include:
- Studying many different kinds of adaptation by reading articles, books, web sources, talking with (knowledgeable) people, experimenting in silico and otherwise.
- Contacting specialists of different disciplines for finding out their views on the topic, what adaptation means in their field of work and asking for reading suggestions. There is a very large number of potentially relevant fields. To name just a few: biology, ecology, psychology, anthropology, culturology, linguistics, urbanistics, art, marketing, cybernetics, artificial life, etc., etc., etc.
- Identifying the underlying causes and mechanisms of adaptation processes; systematizing and generalizing them onto different levels of abstraction.
- Suggesting applications for the results and possibly creating a few example applications myself.
4. Your Help Welcome!
If you have any comments or ideas about my work and about the topic in general, or any suggestions about what I should read (references to articles, books, web pages, etc.) or whom I might find interesting / useful to contact, then please let me know! You can post a comment directly here or send me an e-mail (find the up-to-date mail address at taivo.net.
If you know anybody who might be interested in reading this blog entry and giving me suggestions, then please send them a link to this page!
5. References
Boulding, K. E., 1956: "General Systems Theory: The Skeleton of Science," in Management Science, Vol. 2, No. 3, 1956, pp. 197-208. Reprint (with an introduction by Kurt A. Richardson) in Emergence: Complexity and Organization, Vol. 6, No 1-2, 2004, pp. 127-139. http://emergence.org/ECO_site/web-content/ECO_6_1-2.html
Tuesday 5 December 2006
Flockheadz
By Taivo Lints on Tuesday 5 December 2006, 17:30
Abstract: The following is a short overview of my idea about how to create a novel control system / problem solver using ideas from the field of swarm intelligence.
Note: I have written an 18p term paper on this topic: TLints_Flockheadz_2006_EST.pdf, but it is in Estonian.
Swarm Intelligence
Swarm Intelligence (SI) is a branch of artificial intelligence (or maybe more specifically, of computational intelligence, see http://en.wikipedia.org/wiki/Computational_Intelligence). It is inspired by the behavior of animal / bird / fish / insect swarms, flocks, herds and schools in nature. Artificial swarms, be they soft- or hardware, are typically made up of a population of simple agents interacting locally with one another and with their environment (http://en.wikipedia.org/wiki/Swarm_intelligence). Even though the agents can be very simple and "dumb", the resulting group behavior may be quite interesting and/or useful. SI can be broadly divided into two branches. One of them mainly wants to imitate natural swarms, e.g. to create a swarm of robots that cooperates like a colony of ants or maybe to create a natural-looking software simulation of flocks and herds for use in movies and computer games. The other takes a more abstract approach and uses a virtual artificial swarm as a problem-solving tool, often not even bothering to visualize the moving agents.
Examples of the first approach:
- Craig Reynolds has done a lot of work on flocking. See the page http://www.red3d.com/cwr/boids/ for a short explanation about how to get simple flocking quite easily (don't miss the applet at http://www.red3d.com/cwr/boids/applet/) and where to look for more information (notice, though, that the page is last updated in 2001, so it doesn't cover new sources).
- The page of a completed European robotics project Swarm-bots has many videos, browse at http://www.swarm-bots.org/index.php?main=3&sub=35. And be sure not to miss the last video on page http://www.swarm-bots.org/index.php?main=3&sub=224&conpage=stoy ! (but note that the bots in the first video on that second page are remotely controlled by humans just to show some constructional properties of the bot system. In other videos they are NOT remotely controlled).
Examples of the second, more abstract approach:
- Ant Colony Optimization (ACO) -- a probabilistic algorithm for solving computational problems which can be reduced to finding good paths, typically on graphs (http://en.wikipedia.org/wiki/Ant_colony_optimization). Basically the algorithm simulates ants who wander around and leave a trail of pheromones to the ground on certain circumstances (e.g. to indicate for other ants the path towards food). For a simple explanatory visualization of foraging ants see http://ccl.northwestern.edu/netlogo/models/Ants and choose "Run Ants in your browser" (or download the whole NetLogo package with a great many interesting models).
- Particle Swarm Optimization (PSO) is based on the idea that members of a swarm may communicate with each other, mainly in the form of reporting the situation in their immediate neighborhood. For example if someone finds food, she can call all others to eat there as well. In PSO the members of swarm are usually represented by moving particles, whose speed vector is influenced by the announcements of other particles. The goal of the algorithm typically is to find the optimums of some function in the multi-dimensional search space of problem-related parameters. For a more detailed description see http://en.wikipedia.org/wiki/Particle_swarm_optimization. For some pictures of PSO in action see http://pages.cpsc.ucalgary.ca/~khemka/pso/model.html.
Flockheadz
While ACO is quite narrowly specialized on finding the optimal paths, PSO can be applied to somewhat wider set of problems. However, PSO has restrictions as well, e.g. the algorithm should, in most cases, be able to compute the fitness value for whatever position any of the particles happens to be in.
My idea is not to create a replacement for ACO or PSO, but to try out a new approach, which may be more inclined towards control systems than problem solvers (though it may well be applicable in other areas as well. Or nowhere at all :D ). (Note: I call the idea new because I am not aware of any similar idea by anybody else. If you know, let me know as soon as possible!)
The idea is to create a "brain" (a control or problem solving system of some weird kind) through the following steps:
- Take a simulated flock (like the boid flocks by Craig Reynolds).
- Put it in a closed virtual space.
- Add some sensors to the boids, e.g. for sensing the intensity and direction of light.
- Add some rules to the boids so that the sensor readings will influence their behavior.
- Create input channels to this "brain", for example map the input parameters to the parameters of light sources in the virtual space (light position, intensity, color, ...).
- Create output channels by mapping swarm-related variables (location and speed vector of swarm center, density of the swarm, etc.) to output variables.
To give a very simple example: imagine we have a virtual creature in a computer game and it must avoid bad guys.

In the upper right corner above you can see the good green guy confronted by two bad red creatures. Let's put the swarm (small blue triangles) into a circular two-dimensional room, which is the "brain" of the good creature. Bad guys are represented as light sources on the edge of the circle. Swarm members are repelled by the light and move downwards (big blue arrow). When swarm reaches the lower part of the circle, the good green guy will also start moving down (4 grey arrows in the circle indicate the relation between swarm position and output signal that controls the green creature; left and right arrows indicate turning of the creature).
The described hand-constructed system is not very good:
- When bad guys encircle the good one, the swarm moves to the center and creature will stay in one place (which is not necessarily bad, though).
- More importantly, the avoidance of bad guys is directly written in by the system designer: swarm members are made to behave like the creature itself should behave.
The second point does NOT necessarily mean that using a "swarm-brain" is not justified and rules should be written directly for the creature -- the Flockheadz approach may make the creature move a bit less expectedly and therefore more interestingly. Instead, the problem is: when the complexity of the task increases, human designers are less likely to be able to come up with an effectively constructed swarm-brain.
One way to overcome this problem is to try using genetic algorithms (see http://en.wikipedia.org/wiki/Genetic_algorithms for more information on GAs) for generating appropriate "brains" for given tasks. It is encouraging to note that GAs have already been successfully used to find good control systems, composed of various building blocks, for many virtual creatures. For inspiration, see the Karl Sims 1994 video at http://www.archive.org/details/sims_evolved_virtual_creatures_1994 (references to Sims' papers are also there). Another very cool example is the work of Julian Miller and Simon Harding, who took a matrix LCD screen (a real piece of hardware, not some simulation) of a usual pocket calculator and evolved it, in one of their experiments, to become a controller of a simulated robot, which then moved around, avoiding obstacles. Their general suggestion is to try genetic algorithms on all kinds of potentially evolvable physical materials that can be influenced using electrical signals (most non-electrical systems are just immensely harder to evolve in a lab), e.g. liquid crystal, nanoparticle suspensions, Langmuir-Blodgett films, conducting and electroactive polymers, voltage controlled colloids, irradiated Silicon and microbial consortia. Harding's publications are listed at http://www.cs.mun.ca/~simonh/publications.html (see the section "Publications on Evolution In Materio").
When evolving Flockheadz, the changeable variables might include: the mappings between "brain" input and virtual signal sources inside the "brain"; the mappings between swarm parameters and "brain" output; the functions governing boid behavior. For more complex tasks it may be necessary to increase the system complexity: different species of boids, different sensors and signal sources, etc.
You
If you have any comments or suggestions, then please let me know! If you are interested in doing some work on this idea (just for fun or for writing scientific papers or for profit or whatever), then feel free to contact me, let's cooperate! :)
Friday 1 December 2006
Water Elephant
By Taivo Lints on Friday 1 December 2006, 19:51

Once I was walking on Roosisaare bridge near lake Tamula (Võru, Estonia) and saw swans, fed by children. I entertained myself with the idea that those are the heads of submerged elephants :D
Later, to avoid forgetting that funny idea, I made a quick image hack. Though, I wasn't particularly aiming at representing the elephantness, but rather just tried to make something interesting, and so the pic ended up being a mix of swan, panda bear, fish, elephant and whatnot.
The original photo is made by Kiss Zoltán and is available at http://www.sxc.hu/photo/239731
Blog opened!
By Taivo Lints on Friday 1 December 2006, 18:12
Hi All,
As you may have noticed, I finally decided to start blogging. :)
Currently I plan to use the blog mostly for publishing my ideas and observations related to my scientific exploration (of complex adaptive systems, and everything), and for notifying about changes of the content of my homepage taivo.net, but it is very likely that I will now and then throw in some other topics as well.
The rate of publishing new blog entries will be low, so don't be afraid to add the RSS feed to your aggregator -- I won't clutter it with excessive loads of articles.
Suggestions and comments are always welcome, as well as proposals for cooperation (scientific, artistic, etc.). In case you would like to send me an e-mail, get the address from my webpage taivo.net.
Have fun! :)
Taivo
page 4 of 4 - next entries »