Запитання з тегом «dynamic-programming»

Запитання щодо проблем, які можна вирішити, поєднуючи рекурсивно отримані рішення підпроблем.

3
Проблема з ранцем - NP-комплект незважаючи на динамічне рішення програмування?
Проблеми з рюкзаком легко вирішуються за допомогою динамічного програмування. Динамічне програмування працює в поліномічний час; тому ми це робимо, правда? Я читав, що це насправді NP-повна проблема, хоча це означатиме, що вирішити проблему в поліноміальній задачі, ймовірно, неможливо. Де моя помилка?

3
Вирішення субпроблем динамічного програмування
Я неодноразово використовував техніку динамічного програмування, проте сьогодні друг запитав мене, як я берусь щодо визначення своїх субпроблем, я зрозумів, що не можу дати об'єктивну формальну відповідь. Як ви формально визначите підпроблему для проблеми, яку ви вирішили, використовуючи динамічне програмування?

2
Чи є різниця між динамічним програмуванням зверху вниз і знизу вгору?
Чи є принципова різниця між динамічним програмуванням «зверху вниз» та «знизу вгору»? Зокрема, чи існує проблема, яку можна вирішити знизу вгору, але не зверху вниз? Або підхід знизу вгору є лише розкручуванням повторення підходу зверху вниз?

4
Що таке динамічне програмування?
Вибачте заздалегідь, якщо це питання звучить нерозумно ... Наскільки мені відомо, побудова алгоритму з використанням динамічного програмування працює таким чином: висловити проблему як рецидиви; реалізувати відношення рецидивів або через запам'ятовування, або за допомогою підходу знизу вгору. Наскільки я знаю, я все сказав про динамічне програмування. Я маю на увазі: динамічне …

5
Відмінність випадку щодо динамічного програмування: потрібен приклад!
Я деякий час працюю над динамічним програмуванням. Канонічний спосіб оцінювання динамічної рекурсії програмування - це створення таблиці всіх необхідних значень і заповнення її рядком за рядком. Дивіться, наприклад, Cormen, Leiserson et al: "Вступ до алгоритмів" для вступу. Я зосереджуюсь на табличній обчислювальній схемі у двох вимірах (заповнення по рядках) та …

6
Чим динамічне програмування відрізняється від Brute force
Я читав про динамічне програмування, коли натрапив на наступну цитату Динамічний алгоритм програмування вивчить усі можливі шляхи вирішення проблеми та підбере найкраще рішення. Тому ми можемо приблизно думати про динамічне програмування як про інтелектуальний, грубої метод, який дозволяє нам пройти всі можливі рішення, щоб вибрати найкраще . Якщо сфера проблеми …

3
Найбільша сума, що ділиться на n
Я задав це питання на StackOverflow , але думаю, що тут є більш підходяще місце. Це проблема від Введення в курс алгоритмів : У вас є масив з позитивними цілими числами (масив не потрібно сортувати або елементи унікальні). Запропонуйте алгоритм , щоб знайти найбільшу суму елементів, що ділиться на .aаanнnO(n)О(н)O(n)nнn …

3
динамічні вправи програмування на різанні струн
Я працюю над наступною проблемою з цієї книги . Певна мова обробці рядків пропонує примітивну операцію, яка розбиває рядок на дві частини. Оскільки ця операція передбачає копіювання початкового рядка, то на рядок довжиною n потрібно n одиниць часу, незалежно від місця розрізу. Припустимо, тепер ви хочете розірвати рядок на багато …

3
Пам'ятка без масиву
У вступі Кормен та ін. До алгоритмів , розділ 15.3 Елементи динамічного програмування пояснюють запам'ятовування наступним чином: Запам'ятований рекурсивний алгоритм підтримує запис у таблиці рішення кожної підпрограми. Кожен запис таблиці спочатку містить спеціальне значення, яке вказує на те, що запис ще потрібно заповнити. Коли вперше виникає підпроблема, коли розгортається рекурсивний …

2
Коли я можу використовувати динамічне програмування, щоб зменшити часову складність мого рекурсивного алгоритму?
Динамічне програмування може скоротити час, необхідний для виконання рекурсивного алгоритму. Я знаю, що динамічне програмування може допомогти зменшити складність часу алгоритмів. Чи загальні умови такі, що при задоволенні рекурсивного алгоритму буде означати, що використання динамічного програмування зменшить складність часу алгоритму? Коли я повинен використовувати динамічне програмування?

2
Матричне множення ланцюга та експоненціація
Якщо у мене є дві матриці і розмірами та відповідно, і хочеться обчислити , то більш ефективно спочатку переписати вираз як і лише тоді оцінюйте числово, тому що має розмірність а має розмірність .B 1000 × 2 2 × 1000 ( A B ) 5000 A ( B A ) …

2
Факторизація слів за
Враховуючи два рядки , ми пишемо для їх конкатенації. Давши рядок і ціле число , запишемо для конкатенаціїS1,S2S1,S2S_1, S_2S1S2S1S2S_1S_2SSSk≥1k≥1k\geq 1(S)k=SS⋯S(S)k=SS⋯S(S)^k = SS\cdots Skkk копійSSS . Тепер, задавши рядок, ми можемо використовувати це позначення для його «стиснення», тобтоAABAABAABAABAABAAB може бути записано як((A)2B)2((A)2B)2((A)^2 B)^2 . Назвемо вагукомпресіїчисло символів, що з’являються в ній, …

1
Варіант проблеми з рюкзаком
Як би ви підходили до проблеми рюкзака в ситуації динамічного програмування, якщо вам зараз доведеться обмежувати кількість предмета в рюкзаку постійним ? Це та сама проблема (максимальна вага , кожен предмет має значення і вагу ), але ви можете додати до лише елементи і, очевидно, потрібно оптимізувати значення рюкзака.pppWWWvvvwwwppp Чи …

2
Динамічне програмування з великою кількістю підпрограм
Динамічне програмування з великою кількістю підпрограм. Тому я намагаюся вирішити цю проблему з Інтерв'ю-стріт: Сіткова ходьба (Оцінка 50 балів) Ви знаходитесь у мірній сітці в положенні . Розміри сітки ). За один крок ви можете піти на крок вперед або позаду в будь-якому з вимірів. (Отже, завжди є можливих різних …

1
Чи може це бути неповною проблемою?
Розглянемо наступне твердження проблеми: Давши початкове число, ви з вашим другом по черзі віднімаєте з нього ідеальний квадрат. Перший, який потрапив до нуля, виграє. Наприклад: Початковий стан: 37 Гравець1 віднімає 16. Стан: 21 Гравець2 віднімає 8. Стан: 13 Гравець1 віднімає 4. Стан: 9 Гравець2 віднімає 9. Стан: 0 Player2 перемагає! …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.