Title: Algorithms and Data Structures 3 Improve your algorithmic knowledge
1Algorithms and Data Structures 3 Improve your
algorithmic knowledge study and master advanced
ADS!
- The ability to devise efficient and correct
algorithms, analyze them, implement using best
available data structures distinguish a master
computer scientist from merely an adequate coder.
- Algorithms existed long before the invention of
computers. Most problems cannot be solved by a
brute-force method and expensive hardware, but
require that you learn or invent a new
sophis-ticated algorithm. The course aims at
extending and deepening the algorithmic knowledge
of the students, providing a rich algorithmic
toolbox for solving fundamental computational
problems and analyzing algorithms. - How can you prove that an algorithm is optimal,
that there is no better one to solve the same
problem? Try to create a
malevolent demon that
forces the
algorithm to work hard. - How can coin flipping be
useful for creating
correct and efficient algorithms? Surprisingly,
for many practical problems randomized algorithms
relying on outcomes of probabilistic experiments
provide simplest and most efficient solutions.
- The theory of NP-completeness asks Are
deterministic and non-deterministic polynomial
time computations of the same power? What can
you do if your problem is NP-hard, i.e.,
presumably intractable? The most successful
approach consists in approximating, getting an
appropriate suboptimal solution efficiently. Many
practically important NP-hard problems admit
such solutions, with different quality of
approximation andtrade-offs betweenquality/effi
ciency.
Construct a Hamiltonian cycle visit every
corner exactly once and return to the starting
point
Prerequisites Algorithms and data structures
DV2, logic, linear algebra, discrete
mathematics, probability and statistics, advanced
programming. Goal acquaint students with
powerful and elegant methods, provide solid
algorithmic backgrounds, and introduce to the
contemporary algorithmic research.