Коледж алгоритмічного програмування

    Лекція Четверта (Сезон Другий)

    Четверта лекція другого сезону відбудеться 14 жовтня о 18 годині у конференц-залі на третьому поверсі.

    Лекцію ведуть: GeKa та CUPIDON.

    Тема: Вступ до алгоритмів на графах.

    На порядку денному:

    • Означення та приклади графів.
    • Способи представлення графів.
    • Орієнтовані та неорієнтовані графи.
    • Обхід графа в ширину і в глибину.
    • Зважені графи та алгоритми пошуку найкоротших шляхів.
    06.10.2010 | Shef | 18 коментарів

    18 коментарів to “Лекція Четверта (Сезон Другий)”

    1. insearching каже:
      07.10.2010 о 16:55

      ого! супер! вже не можу дочекатись коли почую цю лекцію! графи дуже цікава тема!

    2. Glamour каже:
      13.10.2010 о 17:28

      Ой, мій улюблений лектор буде :)

    3. Patlatus каже:
      14.10.2010 о 13:21

      1) Коли і де можна буде скачати відеозаписи пропущених лекцій?
      2) В силу обмеженості місця в авдиторії, коли можна буде під’єднатися до лекції, маючи навушники і камеру через скайп оовоо або подібні технології?
      Дякую.

    4. Patlatus каже:
      14.10.2010 о 13:47

      шукаючи цитати Dragonspirit’a знайшов цікаву цитату:
      http://ukrbash.org/quote/2310
      “Плем’я людожерів узяло у полон красуню білявку. Відпустити її чи з’їсти має вирішити зібрання 100 старійшин, які дуже полюбляють банани. «Доброму» вождю людожерів білявка дуже сподобалась і він хоче прийняття зборами рішення про її звільнення, але «зла» дружина вождя проти цього. При вирішенні долі білявки кожен старійшина віддасть свій голос за ту пропозицію, за яку одержить більше бананів. Якщо старійшина одержує однакову кількість бананів від протилежних сторін, то при голосуванні він утримується. Щоб будь-яке рішення було прийняте необхідно, щоб «ЗА» проголосував принаймні 51 старійшина. Вождь знає, що дружина може роздати старійшинам не більше 1000 бананів. Яку мінімальну кількість бананів і по скільки повинен роздати вождь, щоб гарантувати прийняття рішення на свою користь, не зважаючи на те, у який спосіб роздасть банани його дружина.

      хм… на олімпіаді для абітурієнтів дали задачу про хабарюків О_о”

      До речі, цікава задачка з теорії чисел:
      нехай р – просте число. Знайдіть усі натуральні n, такі що число (р-n)!(n-1)!+(-1)^n-1 ділиться на р

    5. Patlatus каже:
      14.10.2010 о 14:01

      До речі, про графи найкраще написано у цих двох книжках:
      Cormen, Leiserson, Rivest, Stein. Introduction to algorithms
      mainika_optimization_network_graph

      Э.Майника
      АЛГОРИТМЫ ОПТИМИЗАЦИИ НА СЕТЯХ И ГРАФАХ
      М.: Мир, 1981, 324 стр.
      Предисловие редактора перевода 5
      Предисловие 7
      Глава 1. Введение в теорию графов и сетей 9
      1.1. Вводные замечания 9
      1.2. Некоторые понятия и определения 11
      1.3. Линейное программирование 15
      Упражнения 21
      Литература 22
      Глава 2. Алгоритмы построения деревьев 23
      2.1. Алгоритмы построения покрывающих деревьев 23
      2.2. Алгоритм построения максимального ориентированного леса 30
      Упражнения 40
      Литература 41
      Глава 3. Алгоритмы поиска путей 42
      3.1. Алгоритм поиска кратчайшего пути 42
      3.2. Алгоритмы поиска всех кратчайших путей 51
      3.3. Алгоритм поиска k кратчайших путей 63
      3.4. Поиск других оптимальных путей 77
      Упражнения 81
      Литература 83
      Глава 4. Потоковые алгоритмы 84
      4.1. Введение 84
      4.2. Алгоритм поиска максимального потока 91
      4.3. Алгоритм поиска потока минимальной стоимости 100
      4.4. Алгоритм дефекта 111
      4.5. Алгоритм поиска динамического потока 122
      4.6. Потоки с усилениями 146
      Упражнения 166
      Литература 170
      Глава 5. Алгоритмы поиска паросочетаний и покрытий 171
      5.1. Введение 171
      5.2. Алгоритм решения задачи о паросочетаний максимальной мощности 175
      5.3 Алгоритм выбора паросочетания с максимальным весом 189
      5.4. Алгоритм построения покрытия с минимальным весом 201
      Упражнения 216
      Литература 218
      Глава 6. Задача почтальона 219
      6.1. Введение 219
      6.2. Задача почтальона для неориентированного графа 222
      6.3. Задача почтальона для ориентированного графа 227
      6.4. Задача почтальона для смешанного графа 231
      Упражнения 239
      Литература 240
      Глава 7. Задача коммивояжера 241
      7.1. Формулировка и некоторые свойства решений задачи коммивояжера 241
      7.2. Условия существования гамильтонова контура 244
      7.3. Нижние границы 251
      7.4. Методы решения задачи коммивояжера 255
      Упражнения 262
      Литература 264
      Глава 8. Задачи размещения 265
      8.1. Введение 265
      8.2. Задачи поиска центра 273
      8.3. Задачи поиска медиан 279
      8.4. Обобщения 287
      Упражнения 288
      Литература 289
      Глава 9. Сетевые графика 290
      9.1. Метод критического пути (МКП) 290
      9.2. Определение длительности выполнения операции из условия
      обеспечения минимальной стоимости 302
      9.3. Обобщенные сетевые графики 309
      Упражнения 315
      Литература 318
      Предметный указатель 319
      Предметный указатель
      Абсолютная медиана 272, 281
      Абсолютный центр графа 272, 275
      Алгебраическое направление теории
      графов 10
      Алгоритм 11, 15
      - Данцига 51, 57—60, 63, 249
      - – обобщенный 74—77
      - Дейкстры 44—49, 61—63, 81
      - дефекта 111, 113, 117—122, 304
      - Джевелла 153
      - Флойда 53, 58, 61—63
      - – обобщенный 74—77
      - Форда 49—51, 61—63
      - – и Фалкерсона 92—101
      - Эдмондса 178, 189
      Анализ вычислительной сложности
      60—63
      Базисное решение 20, 21
      Букет 25
      Величина дефекта 116—118
      Венгерское дерево 181—183
      Вершина 10
      - внешняя 180
      - внутренняя 180
      - конечная 12
      - концевая 25
      - насыщенная 203, 204
      - начальная 12
      - ненасыщенная 203, 205
      - открытая 179
      - паросочетания 179
      - пустая 203
      Вершинное число 105, 109, 151
      Вес дерева 23

    6. kilotaras каже:
      14.10.2010 о 15:39

      @patlatus
      Ось вона ця легендарна цитата
      http://ukrbash.org/quote/31972

    7. Patlatus каже:
      14.10.2010 о 16:29

      @kilotaras:
      Ти мене не зрозумів.
      Я її знайшов. Точніше, я її ще бачив набагато раніше за згадування на цьому сайті.
      Але мене заінтригувало інше, мене заінтригувала фраза автора: “До речі, з усіх мною доданих цитат, ця дійшла до кондиції в 200 голосів найшвидше! Я здивований.” – я вирішив пошукати інші цитати цього автора, цікаво було, що він ще про коледж писав. Я інших цитат не бачив. Виявляється, інші його цитати не про коледж, тому я розчарувався.

    8. CUPIDON каже:
      14.10.2010 о 22:01

      Домашка:
      http://acm.lviv.ua/fusion/viewpage.php?page_id=9&id=1218&rid=4cb609dfdb2fe (1218 Котигорошко)
      http://acm.lviv.ua/fusion/viewpage.php?page_id=9&id=1302&rid=4cb609dfdb2fe (1302 Сузір’я)
      Клас – http://acm.lviv.ua/fusion/viewpage.php?page_id=9&id=1078&
      Цивілізація – http://acm.lviv.ua/fusion/viewpage.php?page_id=9&id=1087&
      Сусіднє село – http://acm.lviv.ua/fusion/viewpage.php?page_id=9&id=1209&
      Музикант заразний – http://acm.lviv.ua/fusion/viewpage.php?page_id=9&id=1224&

    9. Kerol каже:
      14.10.2010 о 22:07

      Мені здається, що ми забагато часу тратимо на вступ та загальні поняття. Наприклад, сьогодні ми половину лекції розбирали, а що ж таке той граф (e.g. “а давайте проголосуємо з ким з’єднувати вершину один…”, “а яку вершину виберемо…”, “а давайте проголосуємо за те якими числами заповняти матрицю суміжності замість одиничок…” і т.д.), якщо на нього треба 5хв., і нехай по 5хв. на кожен із способів відображення. Чи наприклад на, здається, 2 лекції ми робирали лінійний пошук в масиві 8 хв.!! лінійний пошук! А бінарний лише 3-4 хв.! Хоча які він має способи застосування!
      Можливо це лише на перших лекціях так, але тенденція не дуже хороша.

    10. PostScriptum каже:
      15.10.2010 о 09:07

      Про пошук: бінарний взагалі не входив в ту лекцію. По ньому буде окрема. Про нього я згадав тільки щоб ніхто не думав, що той лінійний пошук єдиний і найкращий =).

      А на рахунок вступів, то думаю, варто провести опитування і визначити рівень відвідувачів. Думаю, не кожен і за 45 хз зрозумів, з якого ж графства той граф… =) Хоча, якщо 80% людей знає, що це таке, то може дійсно краще трохи менше часу на то приділяти і звертати УВАГУ на анонси лекцій – щоб читали щось ще до лекції. Тут пропоную ще в анонсі вказати задачки на домашнє завдання і якісь матеріали для підготовки.

    11. Kerol каже:
      15.10.2010 о 17:12

      Погоджуюсь із ідеєю про анонси. Краще коли слухачі будуть хоч мінімально ознайомлюватись вдома із темою майбутньої лекції. Тоді вони:
      1) матимуть загальне уявлення про тему
      2) знатимуть що для них важко сприймалось вдома і на що треба звернути увагу на лекції
      3) зможуть підготувати питання, які їх зацікавили
      4) звертатимуть більшу увагу на деталі
      5) не відчуватимуть себе, мов “куди ми попали”
      6) на лекції встигатимуть опрацювати більше

      P.S. можна попробувати, а якщо буде погано, то повернутись до старого стилю
      P.P.S. я думаю, що при наявності бажання знайти хоч 1 годину в тиждень, щоб ознайомитись із темою наступної лекції не є складно

    12. Мо каже:
      15.10.2010 о 18:35

      Я теж не проти.
      Треба буде на наступній лекції провести голосування про це

    13. Jay каже:
      16.10.2010 о 15:33

      А змагання сьогодні будуть?

    14. CUPIDON каже:
      17.10.2010 о 11:06

      Ну шо… Я скажу дещо у своє оправдання… На базові знання на лекції було витрачено (чи використано?!) 40 хвилин часу. Я вважаю, шо ценормально, бо:
      1)тема лекції “Вступ(!) до алгоритмів на графах”. Хіба Вам було не очевидно шу буде на лекції?!
      2)Я вважаю, шо перша половина лекції НЕ була аж такою банальною… Я впевнений, шо , як мінімум, 50% слухачів не зали раніше про список суміжності. Особисто я ше рік тому не знав про список суміжності :( …
      До речі, саме через список суміжності робиться задачка “Котигорошко” та “Сузір’я”. Якшо я не помиляюсь, то матрицею суміжності та списком ребер ви того не зробите.
      І… Якщо Вам не вдалось зробити ці дві задачки, не переживайте – ці задачки трохи випереджають тему, насправді про нихговоритимуть на наступній лекції. Але подумати над ними не завадить – це своєрідна підготовка до наступної лекції.

      А, ледь не забув. На сайті E-Olimp розпочнеться в понеділок змагання на тиждень на тематику ГРАФІВ, а саме пошуку в ширину та глибину. Участь у цьому змаганні було б чудовим закріпленням теми. Ось посилання на це змагання:
      http://www.e-olimp.com/ua/competitions/348

      Якшо я не помиляюсь, то там досить цікава система таких замагань на тиждень – там кожного дня дописують нову задачу, тому не лякайтесь, якшо в понеділок побачите ЛИШЕ одну задачку – далі будуть і інші ;) … Ну шо, удачі вам на змаганні !)

    15. Kerol каже:
      18.10.2010 о 23:32

      CUPIDON, ти не подумай, це зауваження не до тебе :) , а до усіх лекцій загалом, щоб зробити їх трішки складнішими. Це ж цікаво!

    16. LeBron каже:
      20.10.2010 о 17:03

      Треба колись провести лекцію “зібрання пропущеного”… Там сортування підрахунком не було, тут Флойда… Отак потрохи набереться.

    17. Patlatus каже:
      23.10.2010 о 20:26

      Спробував це: http://www.e-olimp.com/ua/competitions/348
      Першу задачу щось дуже довго мучив, написав спочатку один розв’язок, через рекурсію. Він пройшов 2,3,4,5-тий тест, по 8-мому тесту сказало, що вичерпано ліміт часу, решту тестів не пройшов.
      Я подумав, ну, через рекурсію, це дуже тупо, це ж експоненціальний алгоритм, перебір усіх можливих випадків, спробую заюзати логіку. Задача схоже, на динамічне програмування, аналог дискретної задачі з рюкзаком. Скачав з вікіпедії код розв’язку дискретної задачі з рюкзаком, підправив з сішарпу на паскаль, замінив масив цін на той самий масив мас, підігнав під свою задачу, запустив, 1 тест пройшов – №1, решта не пройшло. Кумедно!
      Пробував якось заюзати логіку по-іншому, зберігати вже пораховані значення рекурсивної процедури в матричку, не пройшло жодного тесту.
      Потім подумав, а ну, зроблю так, якщо тест №1 підсуну розв’язок задачі з рюкзаком, а якщо решта, рекурсію, думав, точно 50% буде. Нєа, не канає, знову 40%, я в шоці)))

    18. Patlatus каже:
      23.10.2010 о 20:28

      А друга задача про хід конем взагалі елементарна. Там навіть пошук в глибину підходить, не кажучи, що там можна значно оптимізувати, використавши пошук в ширину з поверненням – якщо знайшов значення то можна вертатися і для решти клітинок не обчислювати значення

    Leave a Reply

    Клацніть, щоб скасувати відповідь.

    CAPTCHA Image CAPTCHA Audio
    Refresh Image
    Лекція П’ята (Сезон Другий)
    Лекція Третя (Сезон Другий)
     
    • Банери

    • Категорії

      • Змагання (2)
      • Лекції (149)
      • Некатегоризовано (12)
      • Розбір задач (13)
      • свято (4)
    • Архіви

      • Жовтень 2016 (1)
      • Квітень 2016 (3)
      • Березень 2016 (5)
      • Лютий 2016 (3)
      • Грудень 2015 (3)
      • Листопад 2015 (1)
      • Травень 2015 (1)
      • Квітень 2015 (4)
      • Березень 2015 (4)
      • Лютий 2015 (3)
      • Грудень 2014 (2)
      • Листопад 2014 (4)
      • Жовтень 2014 (5)
      • Вересень 2014 (1)
      • Травень 2014 (2)
      • Квітень 2014 (3)
      • Березень 2014 (3)
      • Лютий 2014 (1)
      • Грудень 2013 (3)
      • Листопад 2013 (4)
      • Жовтень 2013 (4)
      • Травень 2013 (2)
      • Квітень 2013 (4)
      • Березень 2013 (4)
      • Лютий 2013 (4)
      • Листопад 2012 (7)
      • Жовтень 2012 (2)
      • Травень 2012 (1)
      • Квітень 2012 (4)
      • Березень 2012 (5)
      • Лютий 2012 (4)
      • Грудень 2011 (3)
      • Листопад 2011 (4)
      • Жовтень 2011 (4)
      • Вересень 2011 (3)
      • Травень 2011 (2)
      • Квітень 2011 (5)
      • Березень 2011 (4)
      • Грудень 2010 (4)
      • Листопад 2010 (5)
      • Жовтень 2010 (4)
      • Вересень 2010 (3)
      • Травень 2010 (4)
      • Квітень 2010 (4)
      • Березень 2010 (6)
      • Лютий 2010 (3)
      • Січень 2010 (1)
      • Грудень 2009 (7)
      • Листопад 2009 (2)
      • Жовтень 2009 (2)
    • ACM-Контестер

      • ACM-Contester Архів задач із автоматичною системою тестування “ACM Contester”.
    • Мета

      • Зареєструватись
      • Вхід
      • RSS публікацій
      • RSS коментарів
    

    © 2026 Коледж алгоритмічного програмування is proudly powered by WordPress | Constructor Theme
    Entries (RSS) and Comments (RSS).
    Наші проекти: Контестер, _Колледж.