Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Тяпничная унификация / 25 сообщений из 227, страница 1 из 10
01.09.2017, 21:48
    #39514321
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничная унификация
Привед други!

Как всегда. Илья. Сова. Дима-Т. И все-все.

В продолжение темы Работа с большими данными

Автор затих и топик не имеет продолжения. Я решил что зря.
Тема хорошая и ее стоит возобновить. Значит так.

Дано: текстовый файл большого размера. Для простоты в 2-4 раза превышающий
объем оперативной памяти.

Найти: список уникальных строк из этого файла. Время поиска должно быть минимально
настолько, насколько это возможно.

Ограничения:

1. Будем считать что максимальная длина строки - 64 килобайта. Просто договоримся что исходные данные таковы.
Так будет проще.
2. Кодировка ASCII. 1 байт на символ. Семантика символов 127-255 - на наше усмотрение.
3. Алгоритмы и структуры данных - любые. Все что есть.
4. Сторонние библиотеки юзать можно. Главное чтоб были в наличии исходники и чтоб мы поняли
суть алгоритма.
5. Базы данных - не используем.
6. Сортировка уникальных в данных в результате нас не интересует. То есть мы не ставим такой задачи.
Главное - сделать уникальность.

Пример usecase:
Код: sql
1.
$ sql-ru-uniq inputfile.txt outfile.txt


Результат - файл с уникальным набором строк.

Go! Go!

Хардкод приветствуется! С/С++ Moar хардкода! Можно и ассемблер.

P.S. Я еще не написал ни строчки кода по сабж. Пока только мысли Поэтому go-go!

Примечание №1 Можно многократно сканировать исходный текстовый файл для достижения
полезного эффекта. Собирать статистику. Делать какие-то примерные оценки или прикидывать
размеры. Главное - чтоб общее время работы алгоритма было минимально.
...
Рейтинг: 0 / 0
01.09.2017, 21:51
    #39514323
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничная унификация
mayton,

тестовые данные - приготовил?
...
Рейтинг: 0 / 0
01.09.2017, 21:52
    #39514324
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничная унификация
Ссылок на тестовые данные я подкину позже. В крайнем случае - сгенерю. Не вижу проблемы.
...
Рейтинг: 0 / 0
01.09.2017, 22:36
    #39514337
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничная унификация
mayton,

а мой ответ из первой темы был слишком сложен и недопонят ?
...
Рейтинг: 0 / 0
01.09.2017, 23:04
    #39514343
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничная унификация
Siemargl, это грубо. К чему так?
...
Рейтинг: 0 / 0
01.09.2017, 23:13
    #39514350
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничная унификация
maytonSiemargl, это грубо. К чему так?Где тут грубость?

Берем хеш таблицу по строкам и всё.

У меня встречный вопрос - неужели так нечем заняться (хотя бы контрибутить в реальные проекты(.)(.), чтобы придумывать искусственные задачи уровня школьников(даже не олимпиадные) ???
...
Рейтинг: 0 / 0
01.09.2017, 23:15
    #39514351
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничная унификация
Siemargl, ты уверен что твой метод сработает?
...
Рейтинг: 0 / 0
01.09.2017, 23:18
    #39514352
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничная унификация
mayton,

В чем у тебя сомнения ?

Если хэш совпал, достаточно перепроверить содержимое. Для таблицы хэшей памяти хватит.
...
Рейтинг: 0 / 0
01.09.2017, 23:20
    #39514353
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничная унификация
Siemargl, worst case?
...
Рейтинг: 0 / 0
01.09.2017, 23:22
    #39514354
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничная унификация
maytonSiemargl, worst case?Сама задача. Слишком просто.

http://nedoblog.ru/физики-против-математиков/
...
Рейтинг: 0 / 0
02.09.2017, 09:12
    #39514376
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничная унификация
Задним числом я поредактировал тему. Добавил важное ограничение
касающееся минимизации времени работы.
...
Рейтинг: 0 / 0
02.09.2017, 11:23
    #39514397
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничная унификация
UP! Чо-как?
...
Рейтинг: 0 / 0
02.09.2017, 13:32
    #39514439
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничная унификация
Тут интересен примерный размер результата, влезет он в память или нет, из этого надо исходить, в том топике я задавал этот вопрос, но ТС пропал и вопрос остался без ответа.
...
Рейтинг: 0 / 0
02.09.2017, 13:38
    #39514441
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничная унификация
SiemarglДля таблицы хэшей памяти хватит.
а если сам файл из подобных хэшей состоит?
...
Рейтинг: 0 / 0
02.09.2017, 13:57
    #39514444
wst
wst
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничная унификация
Если при проходе хеши перестают влезать в память - придется поделить хеши на "маска 3-6 бит + остальной хеш" и устроить несколько проходов для разных масок. Если за первый проход посчитать распределение по маскам - самые "непопулярные" маски можно объединять и обрабатывать за 1 проход.
...
Рейтинг: 0 / 0
02.09.2017, 14:08
    #39514446
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничная унификация
ИзопропилSiemarglДля таблицы хэшей памяти хватит.
а если сам файл из подобных хэшей состоит?
Я если честно не понял причин раздражения Зямы. Он считает что создал алгоритм?
Хм... его работоспособность надо доказать. Возможно речь идёт о двух-фазной работе
где вторая фаза осуществляет некую зачистку ключей.

Но здесь я миллионный раз бью себя по рукам. Я допускаю свою собственную ошибку
пытаясь влезть в моск к другому разработчику и ДОДУМАТЬ то что было сказано.
Я так больше не делаю. Я умолкаю и даю возможность ему описать то что имелось
в виду на уровне формальных steps алгоритма.
...
Рейтинг: 0 / 0
02.09.2017, 14:10
    #39514447
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничная унификация
Еще раз редактирую описание. Ввожу примечание. (Внизу)
...
Рейтинг: 0 / 0
02.09.2017, 16:32
    #39514468
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничная унификация
Dima TТут интересен примерный размер результата, влезет он в память или нет, из этого надо исходить, в том топике я задавал этот вопрос, но ТС пропал и вопрос остался без ответа.
В наихудшем сценарии в файле будет (к примеру 2 строки дубля) все остальные - уникальны.
Мы не укладываемся в память если будем брать unsortable_map. Нужно думать как работать
с пачками или порциями.
...
Рейтинг: 0 / 0
02.09.2017, 21:03
    #39514504
Bred eFeM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничная унификация
mayton,
Дано: текстовый файл большого размера.
Найти: список Создать файл-результат состоящий только из уникальных строк из этого файла.Для простоты в 2-4 раза превышающий объем оперативной памяти. Важно знать или указать не соотношение файл/память, а возможно ли разместить хеши+смещения всех строк или только "1/128" часть в оперативной памяти?

Ссылок на тестовые данные я подкину позже. В крайнем случае - сгенерю. Не вижу проблемы.Давай, будем попробовать )
...
Рейтинг: 0 / 0
02.09.2017, 22:12
    #39514517
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничная унификация
Bred eFeMВажно знать или указать не соотношение файл/память, а возможно ли разместить хеши+смещения всех строк или только "1/128" часть в оперативной памяти?
Я не очень понимаю о каком соотношении вы говорите.

Давайте проще. Есть текстовый файл. Необходимо эффективно решать вопрос поиска уникальных строк.
Я обратил внимание (очень давно) что решать эту задачу эффективно можно только для файлов
небольшого размера. Как только наши структуры данных превышают доступную физическую память - начинается
резкое замедление работы этих структур данных.

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

И я не могу ответить на ваш вопрос о "хешах и смещениях". Возможно вы сами ответите на него в процессе.
...
Рейтинг: 0 / 0
02.09.2017, 22:15
    #39514520
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничная унификация
mayton,

нужно взять в руки кувалду - отсортировать файл любым алгоритмом внешней сортировки
...
Рейтинг: 0 / 0
02.09.2017, 22:21
    #39514523
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничная унификация
Изопропил, вы готовы доказывать в топике что сортировка будет эффективно
решать мою задачу?
...
Рейтинг: 0 / 0
02.09.2017, 22:27
    #39514527
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничная унификация
maytonИзопропил, вы готовы доказывать в топике что сортировка будет эффективно
решать мою задачу?
она будет гарантированно её решать. метрики - у Кнута в третьем томе.
...
Рейтинг: 0 / 0
02.09.2017, 22:30
    #39514528
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничная унификация
ИзопропилmaytonИзопропил, вы готовы доказывать в топике что сортировка будет эффективно
решать мою задачу?
она будет гарантированно её решать. метрики - у Кнута в третьем томе.
Прекрасно. Я рад что есть оппозиция. Только я в скобках замечу что сортировка - это minor.
Это не главная задача в топике.

Вы проводите допущение что решить сортироку - решить унификацию. А я с этим не согласен.
...
Рейтинг: 0 / 0
02.09.2017, 22:32
    #39514531
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничная унификация
maytonЭто не главная задача в топике
это подзадача.
хотя дубли можно ликвидировать непосредственно в процессе сортировки.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Тяпничная унификация / 25 сообщений из 227, страница 1 из 10
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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