2001-gre-vs-practice.pdf/Q39 — различия между версиями

Материал из DISCOPAL
Перейти к: навигация, поиск
 
Строка 1: Строка 1:
{{checkme|[[Участник:Илья52|илья52]] 21:57, 25 декабря 2024 (UTC)}}== Вопрос: Q39-e5724f ==
+
== Вопрос: Q39-e5724f ==
 +
Для вычисления матричного произведения <m>M_1</m> и <m>M_2</m>,
 +
* где <m>M_1</m> содержит ''p''-строк и ''q'' столбцов,
 +
* <m>M_2</m> — ''q'' строк и ''r'' столбцов,
 +
* требуется время, пропорциональное ''p × q × r'' , и в результате получается матрица из ''p'' строк и ''r'' столбцов.
 +
** алгоритм Штрассена или алгоритм Копперсмита-Винограда не рассматриваем.
  
{{reserve-task|[[Участник:Илья52|илья52]] 11:04, 21 декабря 2024 (UTC)}}
+
Рассмотрим произведение трех матриц
<blockquote>
+
* <m>N_1</m> — ''w'' строк и ''x'' столбцов
Для вычисления матричного произведения <m>M_1</m> и <m>M_2</m>, где <m>M_1</m> содержит <m>p</m> строк и <m>q</m> столбцов, а <m>M_2</m> - <m>q</m> строк
+
* <m>N_2</m> — ''x'' строк и ''y'' столбцов
и <m>r</m>  столбцов, требуется время, пропорциональное <m>pqr</m> , и в результате получается матрица из <m>p</m> строк и <m>r</m> столбцов.
+
* <m>N_3</m> — ''y'' строк и ''z'' столбцов.
Рассмотрим произведение трех матриц <m>N_1</m>, <m>N_2</m>, <m>N_3</m>, которые содержат, соответственно, <m>w</m> строк и <m>x</m> столбцов, <m>x</m> строк и <m>y</m> столбцов, а также <m>y</m> строк и <m>z</m> столбцов. При каком условии потребуется меньше времени, чтобы вычислить произведение
+
 
как (<m>N_1</m><m>N_2</m>) <m>N_3</m>, (т.е. сначала умножить первые две матрицы), или быстрее вычислить его как <m>N_1</m> (<m>N_2</m><m>N_3</m>)?
+
При каком условии потребуется меньше времени, чтобы вычислить произведение как (<m>N_1</m> × <m>N_2</m>) × <m>N_3</m>, (то есть сначала умножить первые две матрицы), или быстрее вычислить его как <m>N_1</m> × (<m>N_2</m> × <m>N_3</m>)?
</blockquote>
+
  
 
=== Ответы ===
 
=== Ответы ===
Строка 18: Строка 22:
  
 
=== Объяснение ===
 
=== Объяснение ===
<i> {{cstest-source|2001-gre-vs-practice.pdf|33|39}}
+
{{cstest-source|2001-gre-vs-practice.pdf|33|39}}
 
+
Оценим сколько времени нужно на умножение (<m>N_1</m><m>N_2</m>) <m>N_3</m>.
+
 
+
Умножение (<m>N_1</m><m>N_2</m>) пропорцианально <m>wxy</m>, получается матрица размера <m>w</m> на <m>y</m>. Далее результат умножается на <m>N_3</m>. Время умножения пропорцианально <m>wyz</m>.
+
  
Таким образом, первое умножение пропорцианально <m>wxy + wyz</m>.
+
Оценим сколько времени нужно на умножение (<m>N_1</m> × <m>N_2</m>) × <m>N_3</m>.
  
Аналогичными рассуждениями получаем, что умножение вторым способом пропорцианально <m>xyz + wxz</m>.
+
На всякий случай, повод вспомнить стандартный механизм умножения двух матриц (скажем <m>N_1</m> × <m>N_2</m>).
 +
* Для каждого элемента результирующей матрицы, которая будет иметь размер ''w × y'' необходимо вычислить скалярное произведение строки из первой и столбца из второй.
 +
* Каждое скалярное произведение включает ''x'' умножений и ''x - 1'' сложений.
 +
* Общее количество операций равно:
 +
<m>w \times y \times (x \text{ умножений} + (x - 1) \text{ сложений}) \approx w \times x \times y </m>
  
По условию, первый способ должен занимать меньше времени, составим неравенство:
+
Умножение (<m>N_1</m> × <m>N_2</m>) пропорционально ''wy'', получается матрица размера ''w × y''. Далее результат умножается на <m>N_3</m>. Время умножения пропорционально ''wyz''.
  
<m>wxy + wyz < xyz + wxz</m>
+
Таким образом, первое умножение пропорционально ''wxy + wyz''.
  
Разделим обе части на <m>wxyz</m>.
+
Аналогичными рассуждениями получаем, что умножение вторым способом пропорционально ''xyz + wxz''.
  
Получим неравенство <m>\frac{1}{x} + \frac{1}{z} < \frac{1}{w} + \frac{1}{y}</m>.
+
По условию, первый способ должен занимать меньше времени, составим неравенство:
  
</i>
+
''wxy + wyz < xyz + wxz''
  
{{question-ok|}}
+
Разделим обе части на ''wxyz''.
  
{{Badsol}}
+
Получим неравенство <m>\frac{1}{x} + \frac{1}{z} < \frac{1}{w} + \frac{1}{y}</m>.
  
[[Участник:StasFomin|StasFomin]] 19:04, 23 декабря 2024 (UTC):  Илья, если вы невнимательно посмотрели постановку квеста, просмотрите сначала [https://t.me/c/2489499765/78/191 все замечания по оформлению в канале], уже нет сил переделывать за всеми.
+
{{question-ok|[[Участник:StasFomin|StasFomin]] 22:21, 27 декабря 2024 (UTC)}}
  
[[Категория:Надо не забыть выбрать тему]]
+
[[Категория:Умножение матриц]]
 +
[[Категория:Анализ временной сложности]]

Текущая версия на 22:21, 27 декабря 2024

Вопрос: Q39-e5724f

Для вычисления матричного произведения и ,

  • где содержит p-строк и q столбцов,
  •  — q строк и r столбцов,
  • требуется время, пропорциональное p × q × r , и в результате получается матрица из p строк и r столбцов.
    • алгоритм Штрассена или алгоритм Копперсмита-Винограда не рассматриваем.

Рассмотрим произведение трех матриц

  •  — w строк и x столбцов
  •  — x строк и y столбцов
  •  — y строк и z столбцов.

При каком условии потребуется меньше времени, чтобы вычислить произведение как ( × ) × , (то есть сначала умножить первые две матрицы), или быстрее вычислить его как × ( × )?

Ответы

  • Нет такого условия, время всегда будет одним и тем же.
  • Правильный ответ:

Объяснение

Исходники — вопрос 39 на 33 странице книги «2001-gre-vs-practice.pdf»

Оценим сколько времени нужно на умножение ( × ) × .

На всякий случай, повод вспомнить стандартный механизм умножения двух матриц (скажем × ).

  • Для каждого элемента результирующей матрицы, которая будет иметь размер w × y необходимо вычислить скалярное произведение строки из первой и столбца из второй.
  • Каждое скалярное произведение включает x умножений и x - 1 сложений.
  • Общее количество операций равно:

Умножение ( × ) пропорционально wy, получается матрица размера w × y. Далее результат умножается на . Время умножения пропорционально wyz.

Таким образом, первое умножение пропорционально wxy + wyz.

Аналогичными рассуждениями получаем, что умножение вторым способом пропорционально xyz + wxz.

По условию, первый способ должен занимать меньше времени, составим неравенство:

wxy + wyz < xyz + wxz

Разделим обе части на wxyz.

Получим неравенство .