логические операции над матрицами

Jun 18, 2013 01:53

Всем привет, подскажите, пожалуйста, есть ли такая вещь как subj? eg:

0 1 0
1 0 0
0 1 0
&
0 1 0
1 1 0
1 0 0
=
0 1 0
1 0 0
0 0 0

т.е.

A&B=C

интересует более-менее академический подход и алгоритмы луче полного перебора, спасибо.

Leave a comment

visualdoj June 18 2013, 05:15:36 UTC
Пример кажется нерепрезентативным, в нём взаимное расположение битов не влияет на результат, т.е. действие чисто поразрядное, а потому не отличается от аналогичных действий просто над массивом бит.

Reply

rootkid June 18 2013, 05:33:18 UTC
возможно, но если отвлечься от конкретного примера, в какую сторону можно копать A&B=C ?

Reply

neatfires June 18 2013, 06:19:46 UTC
Если отвлечься от конкретного примера, то выходит общий случай. В общем случае матрица отличается от массива бит только тем, что число ее бит делится на m и на n. Поэтому единственная возможность оптимизировать - это как раз используя специфику конкретного случая. В вашем примере такая специфика не просматривается. Примерно вот что хотел сказать товарищ выше.

Reply

shredder_by June 18 2013, 09:44:45 UTC
не надо в эту сторону копать.

мой не первой свежести процессор теоретически способен складывать-умножать порядка 3ггц * 64бит = 192 гигабит в секунду. проблема только в том, как эти гигабиты в него скормить. так, скорость чтения с хдд в лучшем случае на два порядка меньше. в итоге процессор 1 такт складывает битики, потом 99 тактов ждет следующей порции.

вот если ваш источник единиц и нулей будет отдавать их в сжатом виде, это разгрузит ввод-вывод и позволит более эффективно использовать цпу.

Reply

rootkid June 18 2013, 09:50:10 UTC
знаю, это не подходит

Reply

visualdoj June 18 2013, 10:55:22 UTC
Алгоритмически ничего нового тут не придумать. Аппаратно стоит копать в сторону SSE, параллельных вычислений на GPU и т.д.

Reply


Leave a comment

Up