|
1 / 1 / 0
Регистрация: 22.10.2013
Сообщений: 56
|
||||||
Задача об эффективном перемножении матриц25.05.2014, 20:48. Показов 3920. Ответов 4
Метки нет (Все метки)
Помогите разобраться с алгоритмом об эффективном перемножении матриц(расстановка скобок).
Я понял что суть действия в том, что мы выбираем где разбить нашу последовательность матриц. далее мы вычисляем стоимость каждой из подпоследовательностей и суммируем = общая стоимость перемножения. Не очень понял как выбирается место где разбивать на 1м шаге? Вот мы разбили, далее мы внутри каждой подпоследовательности выполняем все возможные расстановки скобок, и считаем при них стоимость каждой подпоследовательности? это звучит как то не очень правдоподобно. Не очень понял как происходит процесс сохранения стоимостей и положения скобок. Если это все же так далее мы бьем последовательность еще раз и повторяем все заново? (уже имея в памяти некоторые стоимости). и так в итоге выбираем наименьшую? []http://upload.wikimedia.org/math/b/c/1/bc10a0ddacf68b72db6454b5b5144ccb.png[/] объясните пожалуйста пошагово как работает рекурсиваня формула.
Помогите пожалуйста! очень СРОЧНО нужно разобраться уже уйму времени читаю главу посвященную этому в книге "Алгоритмы построение и анализ" Но никак толком не могу понять(( Помогите, рассудите... Добавлено через 14 минут допустим если рассматривать на примере 6 матриц A1 A2 A3 A4 A5 A6 в рекурсивной формуле сказано следующее что минимальная стоимость матрици А1..6 будет минимальная стоимость матрицы А1..k + А(k+1)...j но вопрос в том, как мы узнаем минимальныю стоимость А1..k и А(k+1)...j кроме как не подставив еще раз в формулу и получив А(k+1)..Ak1 + A(k1+1)..A6 так же и с первой подпоследовательностью. И к чему мы так придем? или все таки внутри этих подпоследовательностей нужно все возможные сочетания скобок смотреть и из них выбирать наименьшую стоимость, потом менять изначальное k и считать заново, пока не найдем значение k чтобы общая стоимость была наименьшей? Добавлено через 1 минуту Как выбирается вышеупомянутое k?
0
|
||||||
| 25.05.2014, 20:48 | |
|
Ответы с готовыми решениями:
4
Ошибка в перемножении матриц Мусор при перемножении матриц Ошибка при перемножении матриц |
|
|
|
| 25.05.2014, 22:57 | |
Сообщение было отмечено AshleyLight как решение
Решение
Вы признаёте, что расстановка скобочек определяется последовательностью размерностей p0, p1, p2, ... , pn, где p[i] x p[i+1] есть размеры матрицы A[i] ?
Если так, то функция m[i,j] определяется естественно. Так, m[i,i] = 0 для любого i. Далее, m[i,i+1] = m[i,i]+m[i+1,i+1]+p[i-1]p[i]p[i+1] = p[i-1]p[i]p[i+1]. Далее, m[i,i+2] = min( m[i,i]+m[i+1,i+2]+p[i-1]p[i]p[i+2], m[i,i+1]+m[i+2,i+2]+p[i-1]p[i+1]p[i+2] ) = min(p[i]p[i+1]p[i+2] + p[i-1]p[i]p[i+2], p[i-1]p[i]p[i+1] + p[i-1]p[i+1]p[i+2]). Продолжите дальше, чему равно m[i,i+3] для произвольного i? В приведённом коде как раз это и делается: для каждого l = 0..n заполняются все элементы m[i,i+m], где i = 0..(n-l)
1
|
|
|
1 / 1 / 0
Регистрация: 22.10.2013
Сообщений: 56
|
|
| 25.05.2014, 23:13 [ТС] | |
|
Да, спасибо большое я уже разобрался, не мог понять что в рекурсивной формуле к пробегает все значения свои, и тем самым в каждом элементе матрицы m[i,j] кроме как i=j лежит наименьшая стоимость для произведения соответствующего диапазона матриц. и смысл динамического программирования тут как раз в в том чтобы после выбора наименьшего в следующем когда уже будет такая же расстановка скобок, её не считать! Спасибо большое за ответ, а то обычно мои посты на этом форме игнорят(
Добавлено через 8 минут можете пояснить почему скорость именно О(n^3)?
0
|
|
|
|
||
| 25.05.2014, 23:52 | ||
Сообщение было отмечено AshleyLight как решение
Решениевнешний по l = 0..n, (n+1) итераций средний по i = 0..n-l+1, (n-l+2) итераций внутренний по k = i..i+l-2, (l-1) итераций Всего действий:
1
|
||
|
1 / 1 / 0
Регистрация: 22.10.2013
Сообщений: 56
|
|
| 26.05.2014, 00:16 [ТС] | |
|
Справедливо, спасибо, весьма благодарен за уделенное внимание!
0
|
|
| 26.05.2014, 00:16 | |
|
Помогаю со студенческими работами здесь
5
Свойство ассоциативности при перемножении матриц Ошибка при перемножении квадратных матриц Ошибка вывода при перемножении матриц При перемножении матриц ошибка с памятью Программа, которая оптимальным образом расставляет скобки при перемножении матриц Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|