Информация об изменениях

Сообщение Re: свести задачу к мат.модели? от 16.02.2017 21:43

Изменено 16.02.2017 21:58 omgOnoz

Re: свести задачу к мат.модели?
Здравствуйте, dunamo, Вы писали:

D>хотелось оптимизировать задачу математически.

D>например, сразу отбросить те элементы, которые не удовлетворяют заданному набору значений атрибутов (запросу).

Можно хранить список битовых массивов длиной "список людей".

* Список битовых масивов для языков: индекс элемента массива — индекс человека, значение элемента "1" если знает язык, "0" если не знает.
** Тоже самое для стран.

Затраты памяти на такую модель = люди * (языки + страны)
Операции выбора = побитовые "и" и "или" и др.

*** Хотим найти людей, которые посещаки одну из стран: побитовое "или" по **
Владеют заданым языком: побитове "и" по * и **
Хотим найти людей, которые посещали несколько стран: побитове "и" по **

ну и т.п.

ИМХО должно работать очень быстро.
Re: свести задачу к мат.модели?
Здравствуйте, dunamo, Вы писали:

D>хотелось оптимизировать задачу математически.

D>например, сразу отбросить те элементы, которые не удовлетворяют заданному набору значений атрибутов (запросу).

Можно хранить список битовых массивов длиной "список людей".

* Список битовых масивов для языков: индекс элемента массива — индекс человека, значение элемента "1" если знает язык, "0" если не знает.
** Тоже самое для стран.

Затраты памяти на такую модель = люди * (языки + страны)
Операции выбора = побитовые "и" и "или" и др.

*** Хотим найти людей, которые посещаки одну из стран: побитовое "или" по **
Владеют заданым языком: побитове "и" по * и **
Хотим найти людей, которые посещали несколько стран: побитове "и" по **

ну и т.п.

Задача сводится к банальным операциям множествами.

ИМХО должно работать очень быстро.