Сообщение Re: свести задачу к мат.модели? от 16.02.2017 21:43
Изменено 16.02.2017 21:58 omgOnoz
Re: свести задачу к мат.модели?
Здравствуйте, dunamo, Вы писали:
D>хотелось оптимизировать задачу математически.
D>например, сразу отбросить те элементы, которые не удовлетворяют заданному набору значений атрибутов (запросу).
Можно хранить список битовых массивов длиной "список людей".
* Список битовых масивов для языков: индекс элемента массива — индекс человека, значение элемента "1" если знает язык, "0" если не знает.
** Тоже самое для стран.
Затраты памяти на такую модель = люди * (языки + страны)
Операции выбора = побитовые "и" и "или" и др.
*** Хотим найти людей, которые посещаки одну из стран: побитовое "или" по **
Владеют заданым языком: побитове "и" по * и **
Хотим найти людей, которые посещали несколько стран: побитове "и" по **
ну и т.п.
ИМХО должно работать очень быстро.
D>хотелось оптимизировать задачу математически.
D>например, сразу отбросить те элементы, которые не удовлетворяют заданному набору значений атрибутов (запросу).
Можно хранить список битовых массивов длиной "список людей".
* Список битовых масивов для языков: индекс элемента массива — индекс человека, значение элемента "1" если знает язык, "0" если не знает.
** Тоже самое для стран.
Затраты памяти на такую модель = люди * (языки + страны)
Операции выбора = побитовые "и" и "или" и др.
*** Хотим найти людей, которые посещаки одну из стран: побитовое "или" по **
Владеют заданым языком: побитове "и" по * и **
Хотим найти людей, которые посещали несколько стран: побитове "и" по **
ну и т.п.
ИМХО должно работать очень быстро.
Re: свести задачу к мат.модели?
Здравствуйте, dunamo, Вы писали:
D>хотелось оптимизировать задачу математически.
D>например, сразу отбросить те элементы, которые не удовлетворяют заданному набору значений атрибутов (запросу).
Можно хранить список битовых массивов длиной "список людей".
* Список битовых масивов для языков: индекс элемента массива — индекс человека, значение элемента "1" если знает язык, "0" если не знает.
** Тоже самое для стран.
Затраты памяти на такую модель = люди * (языки + страны)
Операции выбора = побитовые "и" и "или" и др.
*** Хотим найти людей, которые посещаки одну из стран: побитовое "или" по **
Владеют заданым языком: побитове "и" по * и **
Хотим найти людей, которые посещали несколько стран: побитове "и" по **
ну и т.п.
Задача сводится к банальным операциям множествами.
ИМХО должно работать очень быстро.
D>хотелось оптимизировать задачу математически.
D>например, сразу отбросить те элементы, которые не удовлетворяют заданному набору значений атрибутов (запросу).
Можно хранить список битовых массивов длиной "список людей".
* Список битовых масивов для языков: индекс элемента массива — индекс человека, значение элемента "1" если знает язык, "0" если не знает.
** Тоже самое для стран.
Затраты памяти на такую модель = люди * (языки + страны)
Операции выбора = побитовые "и" и "или" и др.
*** Хотим найти людей, которые посещаки одну из стран: побитовое "или" по **
Владеют заданым языком: побитове "и" по * и **
Хотим найти людей, которые посещали несколько стран: побитове "и" по **
ну и т.п.
Задача сводится к банальным операциям множествами.
ИМХО должно работать очень быстро.