Необходимо написать курсовую работу по Функциональному и логическому программированию по теме "Задача Прима – Краскала («жадный» алгоритм) на Прологе".
Дана плоская страна и в ней n городов. Нужно соединить все города телефонной связью так, чтобы общая длина телефонных линий была минимальной. Уточнение задачи. В задаче речь идет о телефонной связи, т. е. подразумевается транзитивность связи: если i-й город связан с j-м, а j-й с k-м, то i-й связан с k-м. Подразумевается также, что телефонные линии могут разветвляться только на телефонной станции, а не в чистом поле. Наконец, требование минимальности (вместе с транзитивностью) означает, что в искомом решении не будет циклов. В терминах теории графов задача Прима – Краскала выглядит следующим образом: Дан граф с n вершинами; заданы длины ребер. Найти остовное дерево минимальной длины. Как известно, дерево с n вершинами имеет n-1 ребер. Оказывается, каждое ребро надо выбирать жадно (лишь бы ни возникали циклы). Алгоритм Прима – Краскала (краткое описание)
В цикле n-1 раз делай: "выбрать самое короткое еще не выбранное ребро при условии, что оно не образует цикл с уже выбранными". Выбранные таким образом ребра образуют искомое остовное дерево. Напишите программу для решения задачи Прима – Краскала на SWIPrologе.
| Гарантия на работу | 1 год |
| Средний балл | 4.54 |
| Стоимость | Назначаете сами |
| Эксперт | Выбираете сами |
| Уникальность работы | от 70% |