powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Разреженные матрицы
17 сообщений из 17, страница 1 из 1
Разреженные матрицы
    #39124947
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые форумчане, хочу по интересоваться, использовали ли в своей практике какие-либо библиотеки по работе с разреженными матрицами? Если да, то что использовали и какие остались ощущения? Что порекомендуете?

Акцент на том, что имеете опыт личного использования, в гугле я не забанен, какие примерно есть варианты в этой области уже смотрел, пока присматриваюсь либо к la4j, либо к апачевским реализациям.
...
Рейтинг: 0 / 0
Разреженные матрицы
    #39124957
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
just_vladimir,

А проблема в том чтобы хранить или обрабатывать? Просто не очень понял какие ещё библиотеки нужны. Структуру писали сами, обработка через любую "векторизацию".
...
Рейтинг: 0 / 0
Разреженные матрицы
    #39124987
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня есть макетный функционал, в основе которого лежат алгоритмы работы с матрицами, текущая реализация "в лоб" (матрица двумерный массив, честное перемножение за N^3 и т.д.), функционально все вышло то что нужно, но на более менее серьезном объеме с легкостью получится как минимум OutOfMemory, по своей природе матрицы очень разрежены. Желания вкладываться в самостоятельную имплементациею структур для хранения и нужные алгоритмы (в то же перемножение) особо нет.
...
Рейтинг: 0 / 0
Разреженные матрицы
    #39125016
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
just_vladimir,

Ну, я на Mahout когда-то смотрел. Но оно мне не сильно понравилось. Заточено всё под хадуп, когда мне эта распраделенность нафиг не упала. Алгоритмы были простые и на существующих объемах было проще на SQL посчитать, чем на Map/Reduce.
Пара умножений на вектор и потом суммирование. Ерунда.
Про OOME, я вообще не понял. Разреженые матрицы они же и хранятся совсем иначе.
...
Рейтинг: 0 / 0
Разреженные матрицы
    #39125045
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использовал COLT . Но не для матриц.
...
Рейтинг: 0 / 0
Разреженные матрицы
    #39125057
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,
в макете никак не учитывается, что они разреженные, создается двумерный массив и вперед на встречу к OOME, а чтобы такого не происходило, то как раз и нужно хранить правильно.
...
Рейтинг: 0 / 0
Разреженные матрицы
    #39125064
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
just_vladimir,

Рекомендации? Не?
...
Рейтинг: 0 / 0
Разреженные матрицы
    #39125073
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

???
...
Рейтинг: 0 / 0
Разреженные матрицы
    #39125079
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
just_vladimir,

Просто любопытно чего вы там на этих матрицах считаете. И какие объемы. Потому как если объемы сурьезные, а математика - нет, тогда, есть смысл на Mahout сразу смотреть. А если наоборот - объемы средние, а математики много, то лучше брать мат. пакеты типа того же R и вызывать из Java.
...
Рейтинг: 0 / 0
Разреженные матрицы
    #39125094
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,
никакого rocket science точно нет :-)
Объемы маленькие до 10 000 и то это с запасом, но допустим мне надо 10 000, то это уже 10 000 * 10 000 * 4 байта и это будет 400 Мб, через чур накладно, в разреженной с легкостью уместилось бы в 1Мб.
Математика тоже весьма не хитрая.
А библиотеку смотрю, чтобы не заниматься велосипедостроением, но и так, чтобы можно было пользоваться, а не баги в библиотеке фиксить.
...
Рейтинг: 0 / 0
Разреженные матрицы
    #39125111
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
just_vladimirBlazkowicz,
никакого rocket science точно нет :-)
Объемы маленькие до 10 000 и то это с запасом, но допустим мне надо 10 000, то это уже 10 000 * 10 000 * 4 байта и это будет 400 Мб, через чур накладно, в разреженной с легкостью уместилось бы в 1Мб.
Математика тоже весьма не хитрая.
А библиотеку смотрю, чтобы не заниматься велосипедостроением, но и так, чтобы можно было пользоваться, а не баги в библиотеке фиксить.
Для Java очень мало нормальной математики. Поэтому в большинстве случаев проще взять широкораспространенные алгоритмы и закодить реализацию.
...
Рейтинг: 0 / 0
Разреженные матрицы
    #39125222
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
just_vladimir , если заведомо известно что ваши коэффициенты "скучились" возле диагонали и возле краёв
то не составит большого труда самому закодить подобную матрицу.

Возможно на некоторых тестах скорости она будет обгонять обобщённые варианты sparsed matrices.
...
Рейтинг: 0 / 0
Разреженные матрицы
    #39126048
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо, переписал с использованием la4j, пока доволен. Библиотечка хоть и совсем скудна на документацию, но достаточно интуитивно понятна, пользоваться приятно.
...
Рейтинг: 0 / 0
Разреженные матрицы
    #39126076
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
just_vladimir, я-бы взал 2 библиотеки и сравнил на скорость итератора. По всей матрице.

И хотя-б 3 случая. Заполненная. Средне-заполненная. И очень редкая.
...
Рейтинг: 0 / 0
Разреженные матрицы
    #39126100
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
можно, но не вижу в этом большой потребности, API оказалось удобным, по алгоритмам все что мне нужно там есть, свою проблему не эффективности по памяти я снял, по CPU у меня очень огромный запас.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Разреженные матрицы
    #40034429
neutrino1015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прототип сжатой матрицы - время доступа к элементу log(n):

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
import java.util.TreeMap;

/**
 *
 * компактная матрица на основе TreeMap
 */
class QMatrix<ObjType> {

    private TreeMap<String, ObjType> qmatrix;

    public QMatrix() {
        this.qmatrix = new TreeMap<String, ObjType>();
    }

    public ObjType get(Integer i, Integer j) {
        return qmatrix.get(Integer.toString(i) + "_" + Integer.toString(j));
    }

    public void set(Integer i, Integer j, ObjType obj) {
        qmatrix.put(Integer.toString(i) + "_" + Integer.toString(j), obj);
    }
}

public class Main
{
	public static void main(String[] args) {
	QMatrix<String> ii = new QMatrix<String>();
        ii.set(1, 0, "mde");
        System.out.println(ii.get(1, 0));
	}
}
...
Рейтинг: 0 / 0
Разреженные матрицы
    #40034450
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neutrino1015, тебе нужен интерфейс NavigableMap ?
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Разреженные матрицы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]