ABSTRACT

This chapter provides a brief overview of some commonly used general concepts and algorithmic techniques. It describes ways of analyzing the complexity of algorithms, followed by general algorithmic concepts like greedy algorithms and dynamic programming. The chapter discusses graph algorithms including network flow techniques and NP completeness and computational geometry. An algorithm is considered good if its overall runtime is small and rate at which this runtime increases with the problem size is small. This runtime complexity is analytically measured/modeled as a function of the total number of elements in the input problem. Greedy algorithms have the property of making a choice that looks the best at that time. This may or may not guarantee the optimality of the final solution. The chapter concludes with the description of the technique of simulated annealing. The problem of shortest paths in graphs has several important practical applications. Computational geometry deals with the study of algorithms for problems pertaining to geometry.