Posts Tagged ‘optimization’

Adaptive UI

Thursday, October 9th, 2008

Designing a website, or a User Interface for a program is hard work.  One has to study people and their often hard to predict and difficult to quantity decision making processes.

For instance, google.com shows a clear knowledge that user’s get distracted by anything other than the task at hand if presented with multiple options.  Thus their site has one main focus… a search bar.  They, are are after all, a search company.

google.jpg yahoo-screenshot-2.jpg

But what if User Interface designers, and website designers started to pay attention to the actual math behind user interactions?  Like living organisms, what if the website or user interface adapted to the user?  For instance, if the website knew that people browsing on cloudy days liked a more cheerful design why wouldn’t it brighten up the background?

Or perhaps in Yahoo’s case why not reorder the sidebar links in order of most clicked on?  What about Yahoo’s search bar?  Might that feature become larger and more prominent?

Why aren’t websites and Program designers doing this already?  They may be, but the sheer volume and dynamism of large user bases makes it a very difficult and ever changing job.

I suggest that website and User Interface designers move to a design framework which includes the ability for the site or program to collect user statistics, and then reorganize itself according to some preset rules.  Flex, Flash, php, python and a host of other programming languages could all support these features really easily.  And if you can’t think of a better optimization algorithm, simply allow the user interactions with the site to be a sort of genetic algorithm.

Local Search Optimization

Thursday, October 2nd, 2008

What do you do to find the optimal solution to a problem that has an overwhelmingly large amount of equally appealing solutions?  Well, it turns out that mathematicians and computer scientists haven’t even really been able to answer the problem either.

In the book Combinatorial Optimization, Christos H. Papadimitriou admits that for most complex problems there is no easy way to find an optimal solution given a finite amount of computation time.  He recommends Local Search as a good starting point.

Local Search is actually a very simple algorithm which humans have been using for years. It goes as follows:

  1. Start off with your best guess, if you have no best guess then start off with a set of random solutions
  2. Modify your initial solution set slightly.  I.e. move about a small neighborhood of your initial solution set.
  3. If solution get’s better, keep on pursuing the direction you moved in, else try another neighboring solution.
  4. Keep proceding until a sufficiently optimal solution is found

Imagine the problem in this way, your friend told you he was going hiking next week, but didn’t tell you a day, time or location.  1 full week from now you’ve not heard from him, and are getting worried.  You call in the search and rescue team but where to start?  Colorado has thousands of trails.

Well, the best place to start is probably his house, then the 5 most frequently hiked or mentioned trails by your friend.  After that, go with the most popular, then the most available to hike.  If you haven’t found him at the initial places, then look at the trails closest to the ones just searched.

Good ol’ combinatorial optimization!

A good analogy for Operations Research

Thursday, September 25th, 2008

The other day I was trying to explain the concept of constrained optimization to an artist.  As I was fumbling around a bit, my friend (who was also a Math nerd) said:

Constrained optimization is like fishing… you have a limited amount of bait, you don’t know what the fish want, how many fish are out there, or what type/proportion they are but the goal is to catch as many as possible in a few hours.

While it’s not a perfect analogy… it’s pretty good.  What’s your favorite analogy for constrained optimization?