Many problems arisen in the real world can be modeled discretely, by using graphs. We, the algorithm group, design various algorithms to solve problems on such graphs. Problems formulated on such discrete structure can be solved indeed, however, it will need so much time. Also, if we design inefficient algorithms, we may not get any solutions “in practical time” for those problems.
Thus, we should learn how to design efficient algorithms.
In order to become a sophisticated algorithm designer, we must study the basic technique that have been ripened over the decades, and come to apply such techniques in proper situations.
Our main activities are as follows:
(1) study the basic but essential techniques of algorithm designs and their analyses,
(2) experience the programming methods of the latest, cutting-edge algorithms, and
(3) design algorithms that are useful to solve the real problems, utilizing the above techniques.