Теорія алгоритмів. Обчислювальні алгоритми (30)
(Теорія алгоритмів. Обчислювальні алгоритми (30))

Структури даних і алгоритми служать тими матеріалами, з яких будуються програми.
Структура даних відноситься, по суті, до "просторовим" поняттями: її можна звести до схеми організації інформації. Алгоритм ж є відповідним процедурним елементом в структурі програми - він служить рецептом розрахунку.
Структури даних, що застосовуються в алгоритмах, можуть бути надзвичайно складними. У результаті вибір правильного представлення даних часто служить ключем до вдалого програмування та може більшою мірою позначатися на продуктивності програми, ніж деталі використовуваного алгоритму.

Відомо, що ознайомившись з базовими алгоритмічними структурами — лінійними, розгалуженими і циклічними, можна побудувати алгоритм розв’язку практично будь-якої задачі. Частіше за все розв’язання складних алгоритмічних задач, метою яких є пошук кращого з усіх можливих варіантів розв’язків, може бути реалізовано за допомогою повнопереборних алгоритмів.

Однак існують різні методи, які дозволяють оптимізувати такі задачі і розв’язати їх за більш короткий час. Методи розв’язування таких задач представлені в інформатиці різними розділами: теорії графів, лінійне та динамічне програмування тощо.

Метою даного курсу є ознайомлення з базовими алгоритмами на графах. Основи теорії графів зустрічаються як у математичних курсах, так і у розділах алгоритмізації. Але саме в алгоритмізації теоретичні базові знання набувають зовсім іншого "звучання": їх ефективність можна оцінити на практиці у вигляді комп'ютерних програм.

Завданням курсу є опанування студентами базовими алгоритмами теорії графів, уміння реалізації їх у вигляді програм мовою програмування, набуття навичок тестування розроблених програмних кодів та оцінювання ефективності алгоритмів.