Re: коммивояжёр

From
Oleg Khovayko ()
To
Vitaly Lugovsky
Date
2003-01-12T22:29:19Z
Area
RU.ALGORITHMS
From: Oleg Khovayko <olegh@hotpop.com>


Виталий! Вы человек, конечно, грамотный, но уж слишком запальчиво
и безапелляционно отстаиваете сомнительные точки зрения навроде:

 >  Это не болтовня, это факт. Любой алгоритм в рекуррентной форме
 > представляется гораздо лучше, и анализировать (в том числе и
 > автоматически)
 > его удобнее.


Ну вот Вам с ходу пример алгоритма, который все же удобнее рассматривать
и анализировать именно итеративно:

Вводные данные:
    Есть конечное число пунктов (городов) N. Они соединены
сетью однонаправленых дорог. То есть по дороге можно двигаться
только в одну сторону, и если есть прямой путь A->B, то это не
означает, что есть также прямой путь В->А. Между пунктами может быть
несколько дорог, а также могут быть "кольцевые" дороги типа A->A.
Структура дорог задается матрицей NxN, в которой M[i,j] есть
число прямых путей из точки i в точку j.
Задача:
   Для заданых пунктов I, J и числа шагов К найти количество
возможных путей из точки I в точку J за К шагов.

Ну как? Прямо просится рекурсивное решение с обходом графа и тп.
Вопрос: Сколько времени эта рекурсивная байда будет работать для N=1000?

А есть простое итеративное решение этой задачи за N*N*K операций.

Как, можно с ходу написать рекурентное соотношение, приводящее
к алгоритму такой вычислительной сложности?

А на topcoder-е народ такую задачу примерно за 40 минут кодирует.
40 минут - это все время -- с момента получения условия до
submit-a работающего безглючного кода.


> Или наоборот. Они же почти тождественны, что то, что другое - одно говно.

А что есть еда?

--- ifmail v.2.15dev5
 * Origin: Demos online service (2:5020/400)