Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Oleg Khovayko                        2:5020/400     15 Jan 2003  05:55:46
 To : Vitaly Lugovsky
 Subject : Re: коммивояжёр
 -------------------------------------------------------------------------------- 
 
 Vitaly Lugovsky wrote:
 
 > 
 >  Hе годится контрпример - ведь это решение представимо в виде рекурсии.
 
 Пожалуйста, давайте не будем заниматься демагогией и втихаря подменять 
 тему дискуссии. Ведь дискуссия началась в Вашего утверждения:
 <<
    Это не болтовня, это факт. Любой алгоритм в рекуррентной форме
 представляется гораздо лучше, и анализировать (в том числе и автоматически)
 его удобнее.
 
  >>
 
 Иными словами, Вы утверждали, что не существует алгоритмов,
 которые удобнее было бы представлять и анализировать в
 нерекурентной форме. Теперь же Вы говорите о представимости -
 то есть принципиальной возможности представить - невзирая на
 "трудозатраты". Про представимость - я и никогда не спорил.
 Да, конечно, все представимо. Вопрос - какими силами?
 
 Продолжим на счет моего контрпримера. Да, рекурентно
 можно написать алгоритм, но толку то!
 Попробуйте проанализировать этот Ваш рекурентный алгоритм,
 и доказать его вычислительную сложность.
 Я уверяю, что будет существенно больше, чем O(N*N*K).
 А итерационный алгоритм дает именно такое
 решение, и анализ его тривиален. И кодируется он в десять
 строчек - в прямом смысле слова.
 
 Так и быть, привожу решение:
 
 int NumWays(int I, int J, int K, vector< vector<int> > matrix) {
    vector<int> V(N);
    V[I] = 1;
    while(K--)
      V *= matrix; // тут векторное произведение вектора на матрицу
    return V[J];
 }
 
 Вектороное произведение - два вложеных цикла по N, то есть N*N.
 Все это выполняется К раз. Итого время выполнения O(N*N*K).
 Дополнительной памяти - 2*N ячеек. ВСЕ.
 
 Теперь: рекурентное описание с анализом - в студию!
 Сравним понятность/краткость/возможность анализа.
 
 >  Вот я и хотел бы посмотреть на такую задачу, где требуется в явном виде
 > сложная итерация, и её нельзя было бы однозначно избавить от мутабельных 
 > объектов,  переведя в рекурсию.
 
 Смотрите выше. Попробуйте рекурентно это представить проще.
 
 А вот еще один пример:
 Есть дерево. Задача: обойти дерево по слоям.
 Я утверждаю, что существует итеративное решение этой задачи,
 пропорциональное N, то есть каждый узел дерева посещается один раз.
 
 Рекуррентный алгоритм - в студию!
 А потом я дам итерационный...
 
 --- ifmail v.2.15dev5
  * Origin: Demos online service (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: коммивояжёр   Vladimir Vassilevsky   12 Jan 2003 19:07:19 
 Re: коммивояжёр   Vitaly Lugovsky   12 Jan 2003 22:24:50 
 Re: коммивояжёр   Oleg Khovayko   12 Jan 2003 23:29:19 
 Re: коммивояжёр   Vitaly Lugovsky   14 Jan 2003 18:51:52 
 Re: коммивояжёр   Oleg I. Khovayko   14 Jan 2003 18:56:13 
 Re: коммивояжёр   Vitaly Lugovsky   15 Jan 2003 00:14:22 
 Re: коммивояжёp   Alexei Philippov   15 Jan 2003 04:55:49 
 Re: коммивояжёp   Vitaly Lugovsky   15 Jan 2003 19:29:41 
 Re: коммивояжёp   Alexander Krotov   18 Jan 2003 19:05:37 
 Re: коммивояжёр   Oleg Khovayko   15 Jan 2003 05:55:46 
 Re: коммивояжёр   Vitaly Lugovsky   15 Jan 2003 19:36:10 
 Re: коммивояжёр   Vitaly Lugovsky   16 Jan 2003 19:01:25 
 Re: коммивояжёр   Vitaly Lugovsky   16 Jan 2003 19:26:36 
 Re: коммивояжёр   Oleg I. Khovayko   17 Jan 2003 18:48:11 
 Re: коммивояжёр   Vitaly Lugovsky   17 Jan 2003 21:24:04 
 Re: коммивояжёр   Andrew Ezhguroff   15 Jan 2003 02:50:35 
 коммивояжёр   Alex Cvetkov   17 Jan 2003 01:44:23 
 Re: коммивояжёр   Vitaly Lugovsky   17 Jan 2003 15:36:28 
 коммивояжёр   Alexey Krasnov   13 Jan 2003 21:40:48 
 Re: коммивояжёр   Vitaly Lugovsky   14 Jan 2003 18:53:06 
 Re[2]: коммивояжёр   Alexey Krasnov   14 Jan 2003 18:54:10 
 Re: коммивояжёр   Vitaly Lugovsky   15 Jan 2003 00:15:28 
 коммивояжёр   Andrew Aksyonoff   15 Jan 2003 06:14:53 
 Re: коммивояжёр   Vitaly Lugovsky   16 Jan 2003 18:48:29 
 Re: коммивояжёр   Nick Kovaliov   17 Jan 2003 10:50:39 
 Re: коммивояжёр   Vitaly Lugovsky   17 Jan 2003 15:38:45 
 Re: коммивояжёр   Alexander Krotov   17 Jan 2003 17:05:22 
 коммивояжёр   Andrew Aksyonoff   17 Jan 2003 19:56:44 
 Re: коммивояжёр   Vitaly Lugovsky   18 Jan 2003 18:11:29 
 коммивояжёр   Roman Rogozin   14 Jan 2003 02:05:05 
 Re: коммивояжёр   Vitaly Lugovsky   14 Jan 2003 18:53:56 
 коммивояжёр   Dmitry Samoylov   14 Jan 2003 00:45:22 
Архивное /ru.algorithms/6577049cc12d.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional