Задача

Message boards : Science : Задача
Message board moderation

To post messages, you must log in.

Previous · 1 . . . 4 · 5 · 6 · 7

AuthorMessage
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 13107
Credit: 0
RAC: 0
Message 3838 - Posted: 6 Jun 2019, 18:10:25 UTC
Last modified: 6 Jun 2019, 18:12:03 UTC

Так, посмотрела папку source.
Исходный код программы generator_kf, видимо, в файле main_gen.cpp
Вот блок вывода на консоль количества проверенных СН ДЛК и количества найденных КФ

	if(cnt_sndlk % 500000 == 0){
			te = clock();
			if(te - tb >= timeout){
				cout << "СНДЛК: " << cnt_sndlk << " КФ: " << cnt_bz
					<< " время: " << (te - t0) / CLOCKS_PER_SEC << " сек\n";;
				tb = te;

В этот блок надо вставить вывод каждого миллиардного СН ДЛК.
Только... не знаю, где его взять - сам СН ДЛК.
Переменная cnt_sndlk - это количество проверенных СН ДЛК.
А сами СН ДЛК где? Они же должны быть в программе, их же программа проверяет на КФ.
Все они, конечно, не хранятся в программе, но... как-то можно текущий проверенный СН ДЛК сохранить для вывода, если он k-миллиардный???

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

Или же, как раньше предлагала: записывать последний проверенный СН ДЛК при прерывании программы с помощью Ctrl+C.
ID: 3838 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 13107
Credit: 0
RAC: 0
Message 3839 - Posted: 6 Jun 2019, 18:30:46 UTC

Десятая попытка сделать прыжок
. . . . . . . . . 
СНДЛК: 160500000 КФ: 0 время: 628 сек
СНДЛК: 161000000 КФ: 0 время: 630 сек
СНДЛК: 161500000 КФ: 0 время: 632 сек
СНДЛК: 162500000 КФ: 0 время: 636 сек
СНДЛК: 163500000 КФ: 0 время: 640 сек
СНДЛК: 164500000 КФ: 0 время: 644 сек
СНДЛК: 165500000 КФ: 0 время: 648 сек
СНДЛК: 166500000 КФ: 0 время: 652 сек
. . . . . . . . . .

Не удаётся!

Здесь приближается к 3 миллиардам СН ДЛК, новых КФ нет
. . . . . . . .
СНДЛК: 2922500000 КФ: 85899 время: 14131 сек
СНДЛК: 2923500000 КФ: 85899 время: 14135 сек
СНДЛК: 2924000000 КФ: 85899 время: 14137 сек
СНДЛК: 2924500000 КФ: 85899 время: 14139 сек
СНДЛК: 2925500000 КФ: 85899 время: 14143 сек
СНДЛК: 2926000000 КФ: 85899 время: 14145 сек
СНДЛК: 2926500000 КФ: 85899 время: 14148 сек
СНДЛК: 2927000000 КФ: 85899 время: 14150 сек
СНДЛК: 2927500000 КФ: 85899 время: 14152 сек
СНДЛК: 2928000000 КФ: 85899 время: 14155 сек
. . . . . . . 

Сейчас прерву, выужу 85899 КФ и на этом остановлю генерацию вперёд.
Этакая генерация никуда не годится!!!
ID: 3839 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 13107
Credit: 0
RAC: 0
Message 3840 - Posted: 6 Jun 2019, 18:33:58 UTC

В генерации назад СН ДЛК записываются!
Слава Богу, хоть здесь не впустую программу гоняла.
Дошла до СН ДЛК

0 3 4 8 2 7 9 5 6 1
9 1 8 7 6 4 5 3 2 0
7 9 2 6 5 1 8 0 4 3
5 2 6 3 8 9 4 1 0 7
3 0 5 9 4 6 7 2 1 8
4 8 0 2 3 5 1 9 7 6
1 4 7 5 0 3 6 8 9 2
6 5 9 0 1 8 2 7 3 4
2 7 1 4 9 0 3 6 8 5
8 6 3 1 7 2 0 4 5 9

Сейчас определю начало интервала.
ID: 3840 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 13107
Credit: 0
RAC: 0
Message 3841 - Posted: 6 Jun 2019, 18:38:15 UTC
Last modified: 6 Jun 2019, 18:42:36 UTC

Итак, интервал в конце 1046-й группы линейки №38

текущий максимум КФ
0 3 4 8 2 7 9 5 6 1
9 1 8 7 6 4 0 3 2 5
7 9 2 6 8 3 1 0 5 4
6 8 7 3 5 9 4 2 1 0
5 2 3 9 4 6 8 1 0 7
4 6 1 0 3 5 7 8 9 2
3 4 0 5 1 2 6 9 7 8
2 5 9 1 0 8 3 7 4 6
1 7 6 2 9 0 5 4 8 3
8 0 5 4 7 1 2 6 3 9

СН ДЛК
0 3 4 8 2 7 9 5 6 1
9 1 8 7 6 4 5 3 2 0
7 9 2 6 5 1 8 0 4 3
5 2 6 3 8 9 4 1 0 7
3 0 5 9 4 6 7 2 1 8
4 8 0 2 3 5 1 9 7 6
1 4 7 5 0 3 6 8 9 2
6 5 9 0 1 8 2 7 3 4
2 7 1 4 9 0 3 6 8 5
8 6 3 1 7 2 0 4 5 9

Вопрос: есть ли в этом интервале неподвижные точки преобразования КФ?
Начало интервала не считать, это КФ.
ID: 3841 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 13107
Credit: 0
RAC: 0
Message 3846 - Posted: 7 Jun 2019, 15:49:51 UTC
Last modified: 7 Jun 2019, 16:10:51 UTC

Рак у меня трудится с самого раннего утра, устал бедолага :)
Генерация КФ назад идёт не так шустро, как генерация вперёд. Оно и понятно: попробуйте-ка пятиться назад :)
Но зато при генерации назад я знаю последние СН ДЛК в сгенерированных порциях!! Чего я совсем не знаю при генерации вперёд.
Ну вот дошёл рак сегодня до СН ДЛК

0 3 4 8 2 7 9 5 6 1
9 1 8 7 6 4 5 3 2 0
7 9 2 4 5 1 8 0 3 6
6 5 7 3 0 2 4 1 9 8
1 2 3 9 4 6 0 8 7 5
2 8 1 6 3 5 7 9 0 4
3 4 0 5 8 9 6 2 1 7
5 6 9 0 1 8 2 7 4 3
4 7 5 1 9 0 3 6 8 2
8 0 6 2 7 3 1 4 5 9

Неподвижных точек преобразования КФ рак не обнаружил.
Тем не менее интервал немного уменьшился и теперь стал такой:

текущий максимум КФ
0 3 4 8 2 7 9 5 6 1
9 1 8 7 6 4 0 3 2 5
7 9 2 6 8 3 1 0 5 4
6 8 7 3 5 9 4 2 1 0
5 2 3 9 4 6 8 1 0 7
4 6 1 0 3 5 7 8 9 2
3 4 0 5 1 2 6 9 7 8
2 5 9 1 0 8 3 7 4 6
1 7 6 2 9 0 5 4 8 3
8 0 5 4 7 1 2 6 3 9

СН ДЛК
0 3 4 8 2 7 9 5 6 1
9 1 8 7 6 4 5 3 2 0
7 9 2 4 5 1 8 0 3 6
6 5 7 3 0 2 4 1 9 8
1 2 3 9 4 6 0 8 7 5
2 8 1 6 3 5 7 9 0 4
3 4 0 5 8 9 6 2 1 7
5 6 9 0 1 8 2 7 4 3
4 7 5 1 9 0 3 6 8 2
8 0 6 2 7 3 1 4 5 9

Бабушка надвое сказала: в этом интервале могут быть неподвижные точки преобразования КФ, а могут и не быть.
Возможно, Белышев мог бы сказать не надвое, но он, увы, ничего не будет говорить. Держит в тайне сию теорию :)

PS. Кое-кто ну никак не понимает, зачем нужна максимальная КФ в группе.
Объясняю.
Представьте, что показанная выше текущая максимальная КФ есть действительно максимальная КФ в 1046-й группе линейки 38.
Представили?
Тогда на этой КФ проверка 1046-й группы (на ОДЛК) заканчивается. И работа в группе вообще заканчивается.
Совершенно незачем проверять оставшийся хвост группы, бесполезно затрачивая время на поиск КФ, которых больше нет. А хвост-то не маленький остался!

Именно для этого я стараюсь найти минимальные и максимальные КФ в группах, а также промежуточные КФ - опорные точки (границы интервалов).
Метод интервалов у меня давным-давно работал и сейчас работает.
Посмотрите тему "Метод интервалов"
https://boinc.progger.info/odlk/forum_thread.php?id=29#423
Она создана в 2017 году.
ID: 3846 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 13107
Credit: 0
RAC: 0
Message 3853 - Posted: 8 Jun 2019, 14:47:37 UTC
Last modified: 8 Jun 2019, 14:50:38 UTC

Рак трудится потихоньку.

Решила пощупать следующую, 1047-ую группу.
Запускаю программу на поиск минимальной КФ в группе, глухо!

. . . . . . . . . .
СНДЛК: 537500000 КФ: 0 время: 2596 сек
СНДЛК: 538500000 КФ: 0 время: 2599 сек
СНДЛК: 539500000 КФ: 0 время: 2603 сек
СНДЛК: 540500000 КФ: 0 время: 2606 сек
СНДЛК: 541500000 КФ: 0 время: 2609 сек
СНДЛК: 542500000 КФ: 0 время: 2612 сек
. . . . . . . 

Не только конец 1046-й группы, но и начало 1047-й неподвижных точек преобразования КФ не содержит.
И как долго нет КФ в 1047-й группе??? А может их нет во всей этой группе???
Пока всё покрыто мраком неизвестности.
Разумеется, имея мощную технику (несколько единиц), да ещё при круглосуточной работе, можно найти ответы на все вопросы, тупо запустив программу генерации КФ на много часов.
Но гораздо лучше решать задачу не применением грубой силы.
Недаром поговорка молвится: "Сила есть - ума не надо" :)
ID: 3853 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 13107
Credit: 0
RAC: 0
Message 3855 - Posted: 8 Jun 2019, 15:33:55 UTC
Last modified: 8 Jun 2019, 15:35:07 UTC

Используя свой генератор 4, за 3 минуты нашла первую КФ в 1047-й группе линейки №38

0 3 4 8 2 7 9 6 5 1
3 1 5 4 6 8 0 9 2 7
4 5 2 6 9 1 7 0 3 8
6 0 7 3 5 9 4 8 1 2
5 9 8 1 4 6 2 3 7 0
9 2 6 7 3 5 8 1 0 4
7 8 1 5 0 4 6 2 9 3
1 6 9 2 8 0 3 7 4 5
2 7 0 9 1 3 5 4 8 6
8 4 3 0 7 2 1 5 6 9

Конечно, в минимальности данной КФ не уверена.
Теперь можно от этой КФ запустить генерацию назад, чтобы найти минимальную КФ в группе.

В общем, как уже отмечалось, комбинирование методов поиска неподвижных точек преобразования КФ даёт хорошие результаты, гораздо лучше тупой генерации КФ программой generator_kf.
Вот, к примеру, запустила сейчас поиск минимальной КФ в 1047-й группе программой generator_kf, больше миллиарда СН ДЛК проверила и искомую КФ не нашла.
ID: 3855 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 13107
Credit: 0
RAC: 0
Message 3856 - Posted: 8 Jun 2019, 16:30:12 UTC
Last modified: 8 Jun 2019, 16:31:44 UTC

Рак немножко улучшил текущий минимум КФ в 1047-й группе

0 3 4 8 2 7 9 6 5 1
3 1 5 4 6 8 0 9 2 7
4 5 2 6 9 1 3 0 7 8
7 2 0 3 8 9 4 5 1 6
9 8 1 7 4 6 2 3 0 5
6 9 8 0 3 5 7 1 4 2
1 4 7 5 0 2 6 8 9 3
5 6 9 2 1 0 8 7 3 4
2 7 6 9 5 3 1 4 8 0
8 0 3 1 7 4 5 2 6 9

но пока неизвестно, действительно ли это минимальная КФ в данной группе.
Скорее всего, нет.
ID: 3856 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 13107
Credit: 0
RAC: 0
Message 3857 - Posted: 8 Jun 2019, 18:48:21 UTC

Всё, рак уполз на отдых, еле клешни уволок :)
После сегодняшней работы рака интервал в конце 1046-й группы стал таким

текущий максимум КФ
0 3 4 8 2 7 9 5 6 1
9 1 8 7 6 4 0 3 2 5
7 9 2 6 8 3 1 0 5 4
6 8 7 3 5 9 4 2 1 0
5 2 3 9 4 6 8 1 0 7
4 6 1 0 3 5 7 8 9 2
3 4 0 5 1 2 6 9 7 8
2 5 9 1 0 8 3 7 4 6
1 7 6 2 9 0 5 4 8 3
8 0 5 4 7 1 2 6 3 9

СН ДЛК
0 3 4 8 2 7 9 5 6 1
9 1 8 7 6 4 5 3 2 0
7 8 2 4 9 3 1 0 5 6
1 5 6 3 0 9 4 8 7 2
5 2 3 0 4 6 8 9 1 7
6 4 0 2 3 5 7 1 9 8
4 9 7 5 8 1 6 2 0 3
2 0 9 6 1 8 3 7 4 5
3 7 1 9 5 0 2 6 8 4
8 6 5 1 7 2 0 4 3 9

Неподвижных точек преобразования КФ не обнаружено.
Медленно рак продвигается, но всё-таки ползёт назад.
Завтра продолжим, если рак живой будет после такой изнурительной работы :)
ID: 3857 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 13107
Credit: 0
RAC: 0
Message 3866 - Posted: 10 Jun 2019, 15:42:28 UTC - in response to Message 3857.  
Last modified: 10 Jun 2019, 15:43:50 UTC

Рак работать отказался :)
Пока остановлен этот поиск.
Генерация КФ назад тоже имеет неудобства: приходится много выполнять операций с диском.
Сначала порция миллион СН ДЛК генерируется, записывается на диск; затем эта порция канонизируется, то есть считывается с диска и снова записывается на диск; далее файл output.txt снова считывается с диска, чтобы извлечь последнюю КФ в порции.
И так много-много раз: 50 - 100 - 200...
Рак говорит, что это очень не рационально. Правильно говорит, я с ним согласна. Не будем зря диск бить.
Обе программы (и генерация КФ вперёд, и генерация КФ назад) должны быть модифицированы.
ID: 3866 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Previous · 1 . . . 4 · 5 · 6 · 7

Message boards : Science : Задача


©2024 (C) Progger