Обсуждение:Задача о паросочетании максимального веса в дереве, амортизированные оценки для ДП на дереве — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
 
Строка 5: Строка 5:
 
: {{tick | ticked=1}} Не надо писать «Псевдокод на ''C++''», так как это не с++. Просто «Псевдокод»
 
: {{tick | ticked=1}} Не надо писать «Псевдокод на ''C++''», так как это не с++. Просто «Псевдокод»
 
: {{tick | ticked=1}} Псевдокод надо оформить в виде функции, которая принимает граф в каком-либо его виде, а возвращает максимальный вес паросочетания. Тут же только dfs, и даже неясно, из какой вершины его запускать(видимо, из произвольной, но всё же).
 
: {{tick | ticked=1}} Псевдокод надо оформить в виде функции, которая принимает граф в каком-либо его виде, а возвращает максимальный вес паросочетания. Тут же только dfs, и даже неясно, из какой вершины его запускать(видимо, из произвольной, но всё же).
: {{tick}} Раз упомянул про алгоритм Куна, добавь ссылку на него, он есть в конспектах дискретки второго курса. И на паросочетание добавь.  
+
: {{tick | ticked=1}} Раз упомянул про алгоритм Куна, добавь ссылку на него, он есть в конспектах дискретки второго курса. И на паросочетание добавь.  
: {{tick}} еще не хватает категорий
+
: {{tick | ticked=1}} еще не хватает категорий
: {{tick}} « работает за время <tex>O \left ( \sum_{x=1}^n \limits \left ( Ch \left ( x \right ) \right )^k \right )</tex> для вершины x.». Странно, для вершины x, а вершину x мы перебираем в суммировании. Как-то странно. А еще тут нет модуля, тебе же нужна мощность множества Ch.
+
: {{tick | ticked=1}} « работает за время <tex>O \left ( \sum_{x=1}^n \limits \left ( Ch \left ( x \right ) \right )^k \right )</tex> для вершины x.». Странно, для вершины x, а вершину x мы перебираем в суммировании. Как-то странно. А еще тут нет модуля, тебе же нужна мощность множества Ch.
: {{tick}} Ch(x) — не множество потомков, а множество сыновей, наверное. Мне кажется, это разные вещи.
+
: {{tick | ticked=1}} Ch(x) — не множество потомков, а множество сыновей, наверное. Мне кажется, это разные вещи.
: {{tick}} br'ы убирай, для этого есть двойной перевод строки.
+
: {{tick | ticked=1}} br'ы убирай, для этого есть двойной перевод строки.
  
 
== Замечания АС ==
 
== Замечания АС ==
  
 
: {{tick | ticked=1}} Определение - множество ребер чего? Надеюсь, графа ;)
 
: {{tick | ticked=1}} Определение - множество ребер чего? Надеюсь, графа ;)
: {{tick}} Опять сразу "заведём массивы a, b и c размерностью n" без формулировки принципов оптимальности
+
: {{tick | ticked=1}} Опять сразу "заведём массивы a, b и c размерностью n" без формулировки принципов оптимальности
 
Как следствие, дальнейшие рассуждения выглядят безосновательными.
 
Как следствие, дальнейшие рассуждения выглядят безосновательными.
 
: {{tick}} А второй раздел с места в карьер начинается утверждением, им и заканчивается. Возникает естественный вопрос: "и что?"
 
: {{tick}} А второй раздел с места в карьер начинается утверждением, им и заканчивается. Возникает естественный вопрос: "и что?"
 
:: И зачем шаблон убрал, все равно это не изменило бы замечания АС, а форматирование ухудшилось.  
 
:: И зачем шаблон убрал, все равно это не изменило бы замечания АС, а форматирование ухудшилось.  
: {{tick}} Про утверждение: "алгоритм динамического программирования" - а другой алгоритм не будет так работать, будет дольше?
+
: {{tick | ticked=1}} Про утверждение: "алгоритм динамического программирования" - а другой алгоритм не будет так работать, будет дольше?

Текущая версия на 07:59, 29 февраля 2012

Написать код алгоритма.
Почитать внимательно правила оформления псевдокода, особенно насчёт фигурных скобок и именований переменных
Зачем вводить странную конструкцию типа «переберем блаблабла», можно же написать что-то типа «for w in adjList[v]»? И предка лучше передавать в рекурсии явно, а то непонятно, как без цветов вершин в обходе мы вообще можем узнать, что было предком. --Дмитрий Герасимов 15:26, 27 ноября 2011 (MSK)
Не надо писать «Псевдокод на C++», так как это не с++. Просто «Псевдокод»
Псевдокод надо оформить в виде функции, которая принимает граф в каком-либо его виде, а возвращает максимальный вес паросочетания. Тут же только dfs, и даже неясно, из какой вершины его запускать(видимо, из произвольной, но всё же).
Раз упомянул про алгоритм Куна, добавь ссылку на него, он есть в конспектах дискретки второго курса. И на паросочетание добавь.
еще не хватает категорий
« работает за время [math]O \left ( \sum_{x=1}^n \limits \left ( Ch \left ( x \right ) \right )^k \right )[/math] для вершины x.». Странно, для вершины x, а вершину x мы перебираем в суммировании. Как-то странно. А еще тут нет модуля, тебе же нужна мощность множества Ch.
Ch(x) — не множество потомков, а множество сыновей, наверное. Мне кажется, это разные вещи.
br'ы убирай, для этого есть двойной перевод строки.

Замечания АС

Определение - множество ребер чего? Надеюсь, графа ;)
Опять сразу "заведём массивы a, b и c размерностью n" без формулировки принципов оптимальности

Как следствие, дальнейшие рассуждения выглядят безосновательными.

А второй раздел с места в карьер начинается утверждением, им и заканчивается. Возникает естественный вопрос: "и что?"
И зачем шаблон убрал, все равно это не изменило бы замечания АС, а форматирование ухудшилось.
Про утверждение: "алгоритм динамического программирования" - а другой алгоритм не будет так работать, будет дольше?