A Talk of Robust Solution

I am not the expert in vehicle routing. But, I do learn a lesson from Prof. Sam Thangiah’s talk in FICT UTAR today.

The rough meaning is something like this:

Best solution appears in publication. But in real world, only the robust solution does matter.

For example, Dijkstra’s algorithm works perfectly in finding the shortest path from point A to point B. However, it seems not to be feasible when it is applied to calculating the pick-up points for buses in a city. Heuristic approach is much appreciated instead.

Leisure Reading – Gantz

Front cover of Gantz 1 . Bought it from Kinokuniya.
Back cover of Gantz 01.
Story: A pair of high school students, Kei Kurono and Masaru Kato, are run over by a subway train in an attempt to save the life of a homeless drunk who had fallen onto the tracks. Following their deaths, Kurono and Kato find themselves transported to the interior of an unfurnished Tokyo apartment. And, a sphere that are known as “Gantz”, commanded them to kill an alien somewhere in Tokyo … (Quoted from http://en.wikipedia.org/wiki/Gantz).

I like this manga as they have a fine drawing and the nice storyline. But, RM44 per book is not cheap!

Tackling Polynomial Equations with Python (Numpy)

How to calculate a polynomial of  (s+1)(s+2)…(s+10) in a short time?

Instead of calculate them one by one, we can do it with the help of Python library – Numpy.

1. Make sure you have installed Numpy for your Python interpreter. In Ubuntu, you may just want to install python-scipy as it contains all the scientific calculation tools.

2. Try the following example in your python interpreter:

from numpy import *
p1 = poly1d(1, 1 ) #(S+1)
p2 = poly1d(1, 2 ) #(S+2)
p3 = poly1d(1, 3 ) #(S+3)
p4 = poly1d(1, 4 ) #(S+4)
p5 = poly1d(1, 5 ) #(S+5)
p6 = poly1d(1, 6 ) #(S+6)
p7 = poly1d(1, 7 ) #(S+7)
p8 = poly1d(1, 8 ) #(S+8)
p9 = poly1d(1, 9 ) #(S+9)
p10 = poly1d(1, 10) #(S+10)
print p1*p2*p3*p4*p5*p6*p7*p8*p9*p10

3. Then, you will an get an output like:

   10      9      8       7       6       5       4       3      2
1 x  - 10 x + 45 x - 120 x + 210 x - 252 x + 210 x - 120 x + 45 x - 10 x + 1

That is the answer:

 x^10 - 10x^9 +45x^8 - 120x^7 + 210x^6 
- 252x^5 + 210x^4  - 120x^3 + 45x^2 - 10x + 1

4. Say, we need to find the root of this polynomial. With the help of Python, we can get the roots by feeding these line into the interpreter.

(p1*p2*p3*p4*p5*p6*p7*p8*p9*p10).r #.r means root.

And, we will get an output like this:

array([ 1.04405137+0.0143565j ,  1.04405137-0.0143565j ,
        1.02709855+0.03755416j,  1.02709855-0.03755416j,
        0.99974141+0.04619473j,  0.99974141-0.04619473j,
        0.97275208+0.03706564j,  0.97275208-0.03706564j,
        0.95635659+0.01406697j,  0.95635659-0.01406697j])

The polynomial has 5 complex conjugates: 1.04405137 +/- 0.0143565j, 1.02709855 +/- 0.03755416j, 0.99974141+/- 0.04619473j, 0.97275208 +/-0.03706564j, 0.97275208 +/- 0.03706564j and 0.95635659 +/- 0.01406697j .

[J-Drama] With Love

<With Love> is the first Japanese drama that I watched in my secondary school. Seeing this youtube brings me back to my sentimental high school puppy love. @_+

The storyline goes as follows:

Takashi (Takenouchi), a talented composer, who could not write a love song ever since his girlfriend Rina left him suddenly. Accidentally, Takashi sent an uncompleted piece of his latest work to Amane (Tanaka) via email.

Deeply touched by his music, Amane wrote back to him, without getting a reply. Amane continued writing to him, pouring out her thoughts, with the nickname of  “Teru Teru Bozu”.  One day, Takashi responded with a mail saying “WHO ARE YOU?” because what Rina left him as a farewell gift was a teru teru bozu!

(Quoted from http://jdorama.com/drama.445.htm)