2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8 ... 130  След.
 
 Re: Новый конкурс программистов
Сообщение30.05.2012, 11:32 
Заблокирован
Аватара пользователя


22/03/08

7154
Саратов
Эх, хоть чуть-чуть постоять рядом с великими :D

1 Andrew Morozov 7.812720 05-30-2012 @ 12:24:25
2 Jarek Wroblewski 7.810000 05-30-2012 @ 09:19:13
3 Natalya Makarova 6.687840 05-30-2012 @ 12:29:02
4 Mark Mammel 6.039020 05-30-2012 @ 09:02:09
5 Ray Hartung 5.652930 05-30-2012 @ 08:58:05
6 Wes Sampson 5.210190 05-30-2012 @ 11:35:27

 Профиль  
                  
 
 Re: Новый конкурс программистов
Сообщение30.05.2012, 12:36 
Заблокирован
Аватара пользователя


22/03/08

7154
Саратов
Нет, работу программы на составление решений я никак не пойму, бездумно щёлкать по ячейкам мало толку, надо понять логику.
Так что пока использую эту программу только для проверки решений.

Кто-нибудь объяснит, как программа работает?

 Профиль  
                  
 
 Re: Новый конкурс программистов
Сообщение30.05.2012, 13:21 
Аватара пользователя


21/02/10
1594
Екатеринбург
5 25 625 Jarek Wroblewski @ 11:04:36 on 05-30-2012
7 49 2401 Jarek Wroblewski @ 11:05:38 on 05-30-2012
11 121 14641 Jarek Wroblewski @ 11:06:25 on 05-30-2012
13 169 28561 Jarek Wroblewski @ 11:07:27 on 05-30-2012
19 361 130321 Jarek Wroblewski @ 11:19:13 on 05-30-2012

Wroblewski явно нашел алгоритм построения решения N=C^2

 Профиль  
                  
 
 Re: Новый конкурс программистов
Сообщение30.05.2012, 14:43 
Заблокирован
Аватара пользователя


22/03/08

7154
Саратов
Ага, только как-то уж очень быстро он его нашёл :D
Можно только предположить, что он нашёл его не сегодня, а давным-давно.

-- Ср май 30, 2012 16:31:00 --

Да, весёленький старт :-)

Это первый конкурс, в котором я участвую прямо со старта.
Активно народ подключается, уже 25 человек. Россиян пока трое, как всегда стесняются :-)
Новый россиянин появился, Артём Караваев, в прошлых конкурсах я его не видела.

 Профиль  
                  
 
 Re: Новый конкурс программистов
Сообщение30.05.2012, 22:22 
Заслуженный участник


20/07/09
4026
МФТИ ФУПМ
Цитата:
Juha Saukkola нашел решение 17х17 для C=4. В статьях проблема 17х17 для C=4 числится как открытая. Вот так всегда. Кто то начинает с абсолютного нуля, а у кого то есть сильные домашние заготовки.

http://blog.computationalcomplexity.org ... 18x18.html
4-coloring остался только для матрицы 21*12, вроде бы. Для 2 и 3 цветов вообще все варианты рассмотрены.

 Профиль  
                  
 
 Re: Новый конкурс программистов
Сообщение31.05.2012, 03:47 
Заблокирован
Аватара пользователя


22/03/08

7154
Саратов
Мне пришло письмо от Дмитрия Каменецкого.
Думаю, что оно будет интересно всем:

Цитата:
Я не знаю как писать на новый форум, поэтому пишу тут. Как вы уже наверное догадались, задача спрашивает как покрасить доску NxN в C цветов чтобы не было ни одного прямоугольника с углами одного цвета. Чтобы использовать программу Эда, надо в самом начале нажать randomize. Это нужно чтобы обнулить все данные. Программа показывает прямоугольники только того квадратика который наведён мышкой. Задача решена для C<=4. Уже доказано что оптимальное решение для C=4 это N=18. Для C>5 известны лишь приближения.

Наверное, он хотел сказать, что для C>4 известны лишь приближения. Опечатка получилась.

Он прислал письмо через почту конкурса. Вот ведь: а я не знаю, как пользоваться почтой конкурса.

Немного начинаю понимать логику программы, но пока всё же действую больше вслепую, то есть бездумно щёлкаю по ячейкам, в которых надо изменить значения. Из наблюдений: значения изменяются автоматически, далее - не во всех случаях ошибку удаётся исправить. Иногда это получается одним щелчком мышки, а иногда возникают всё новые и новые ошибки. Догадываюсь, что тут действует перебор вариантов для устранения ошибки, программа пытается поставить в ту ячейку, по которой щёлкает мышка, разные значения, чтобы устранить ошибку, но не всегда это удаётся.

Вот такие у меня пока догадки :-)
Вообще мне нравится, как Эд сделал программу, спасибо ему огромное.
Только ни фига не понимаю, как она работает.

Такой ещё вопрос:
ввожу решение. В некоторых случаях оно в программе отображается нормально, как в квадрате NxN, а в некоторых случаях почему-то всё сдвигается, в первом столбце только один символ остаётся. Вот этот момент совсем не понимаю. Хотя решение и в этом случае программа делает правильно. Умная программа!

 Профиль  
                  
 
 Re: Новый конкурс программистов
Сообщение31.05.2012, 06:25 
Заблокирован
Аватара пользователя


22/03/08

7154
Саратов
Дмитрий
вы читаете эту тему, судя по полученному сейчас второму письму.

Принимайте участие в обсуждении, пожалуйста!
На этом форуме всё точно так же, как на форуме ПЕН, где вы уже писали. Зарегистрируйтесь, как обычно это делается на всех форумах. И далее без проблем пишите в тему.

Мне вот непонятно немного, как работает программа Эда, вы могли бы пояснить эти непонятные моменты.
Это будет интересно не только мне.
----

Придумала простенький алгоритм для C=21. Весьма любопытно, что дальше будет. Но! дальше, увы, двигаться вручную вряд ли смогу :-(
Нужна программа, а как её написать, не представляю. Вот же опять такая ситуация: вручную делаю, а программу написать не могу.

Алгоритм основан на циклическом сдвиге. Собственно этот алгоритм для меня не новость, я много занималась латинскими квадратами и прекрасно знаю, что такое циклический сдвиг. Как только прочитала описание задачи, недолго думая ввела все 20 решений в виде латинских квадратов. Кто видел старт, видел, как я блестяще стартовала :-)
Набрала 14 баллов, вышла на первое место. Это было красиво!
Но, к сожалению, быстро закончилось, потому что латинские квадраты дали минимальные решения, и как только другие конкурсанты стали находить лучшие решения, я стремительно начала терять баллы.

Да, так вот решение для C=21 в виде латинского квадрата даёт всего N=441. Здесь 21 фишек разных цветов размещены в квадрате 21х21.
Затем начала применять свой алгоритм циклического сдвига.
(Кстати, посмотрела в Интернете решения, во многих тот же циклический сдвиг.)

Сейчас получила решение для C=21, N=5329, то есть уже построила квадрат 73х73.
Удивительно! Алгоритм работает. И весьма интересно, до какого N он будет работать.
На конкурсе для C=21 найдено решение в квадрате 273х273, то есть N=74529.

Если бы написать программу, можно было бы проверить, до какого N будет работать мой алгоритм.
И пока не знаю, что у меня получится для других C.
Теперь становится понятно, откуда в рекордах берутся такие огромные числа. Но вручную это невозможно сделать.

Хе-хе, я им там хорошо БД заполнила: для C=21 вводила решения на каждом шагу, то есть для каждого N. Может быть, ещё попробую 2-3 квадратика (квадратища!) построить :D

Фрагмент решения C=21, N=5329

Изображение

Хорошо виден циклический сдвиг.

Да, сложности с программой у меня такие: я привыкла работать с квадратами, заполненными числами, там всё просто. Здесь квадраты заполнены символами. Забыла напрочь, как работать с символьными переменными :-( Это, конечно, совсем несложно, знаю. Но надо вспоминать. Ох!..

 Профиль  
                  
 
 Re: Новый конкурс программистов
Сообщение31.05.2012, 08:13 


26/01/10
959
Я вам хочу сказать, что алгоритм полного перебора для C=21 даёт гораздо лучшее решение, чем у Вас. Алгоритм простой:

Сначала красим всё наугад.
Если видим какой-нибудь прямоугольник, выбираем наугад одну из его четырёх вершин и перекрашиваем в случайный цвет.
Так делаем несколько миллиардов раз (пока не станет всё правильно). Этим алгоритмом легко получается NxN=116x116 (13456 балла).

Только толку всё равно мало, но всяко лучше обычных циклических сдвигов и пишется за несколько минут. Для старта...

 Профиль  
                  
 
 Re: Новый конкурс программистов
Сообщение31.05.2012, 08:42 
Заблокирован
Аватара пользователя


22/03/08

7154
Саратов
Цитата:
Я вам хочу сказать, что алгоритм полного перебора для C=21 даёт гораздо лучшее решение, чем у Вас.

А кто вам сказал, что у моего алгоритма предел N=116x116?
Так что насчёт лучшего ещё надо доказать!

И кроме того, мой алгоритм работает гораздо быстрее полного пребора. Никаких миллиардов вариантов! Вручную я дошла до квадрата 73x73.

Программу по моему алгоритму тоже можно написать за несколько минут.

 Профиль  
                  
 
 Re: Новый конкурс программистов
Сообщение31.05.2012, 08:50 
Аватара пользователя


21/02/10
1594
Екатеринбург
Nataly-Mak в сообщении #578428 писал(а):
Ага, только как-то уж очень быстро он его нашёл Можно только предположить, что он нашёл его не сегодня, а давным-давно.


Первая ссылка в описании
http://www.cs.umd.edu/~gasarch/papers/grid.pdf
"Rectangle Free Coloring of Grids"

If p is a prime and s ∈ N, then $G_{p^{2s},p^{2s}}$ is $p^s$-colorable

Чтобы полчуить результаты Wroblewski. Достаточно изучить эту статью и реализовать описанный там алгоритм.

 Профиль  
                  
 
 Re: Новый конкурс программистов
Сообщение31.05.2012, 09:05 
Заблокирован
Аватара пользователя


22/03/08

7154
Саратов
О! Я смотрела эту статью. Чтобы её изучить да ещё реализовать описанный там алгоритм, у меня мозгов точно не хватит. Один вид сложнейших формул меня сразу страшно напугал :D
Мне бы чего попроще.

Сварганила ещё один квадратик, N=75x75, оказывается, у меня уже до N=74 были построены квадраты. Вввела и этот результат, пополняю БД конкурса :-)

Zealint
на построение одного квадрата ручками у меня уходит 5-10 минут.
Сомневаюсь, что если вы раскрасите, например, квадрат 75х75 произвольным образом в 21 цвет, программа разберётся со всеми прямоугольниками за приемлемое время. Иногда исправить все прямоугольники вообще не удаётся, и программа ваша просто захлебнётся (зациклится).

Вот хвостик таблицы моих результатов:

Цитата:
19 625 0.004796 05-30-2012 @ 18:49:02
20 676 0.013967 05-30-2012 @ 18:58:58
21 5625 0.075474 05-31-2012 @ 09:54:47
Total 14360 4.962541

 Профиль  
                  
 
 Re: Новый конкурс программистов
Сообщение31.05.2012, 09:13 
Аватара пользователя


21/02/10
1594
Екатеринбург
Nataly-Mak в сообщении #578831 писал(а):
О! Я смотрела эту статью. Чтобы её изучить да ещё реализовать описанный там алгоритм, у меня мозгов точно не хватит.

Достаточно изучить главу 4.3. Собственно неспешно приступаю к изуечению этой главы. Может кто составит компанию?

 Профиль  
                  
 
 Re: Новый конкурс программистов
Сообщение31.05.2012, 09:25 
Заблокирован
Аватара пользователя


22/03/08

7154
Саратов
Pavlovsky в сообщении #578833 писал(а):
Собственно неспешно приступаю к изуечению этой главы. Может кто составит компанию?

Команду набираете... :-)

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

Ещё один квадратик смастерила - 76х76 для C=21 :-)

 Профиль  
                  
 
 Re: Новый конкурс программистов
Сообщение31.05.2012, 09:42 
Аватара пользователя


21/02/10
1594
Екатеринбург
Nataly-Mak в сообщении #578836 писал(а):
Команду набираете...

Призываю прежде чем кодить - изучить теорию.

Wroblewski получил результаты где количество цветов, простое число. Но согласно утверждению аналогичные результаты можно получить для количества цветов степень простого числа. То есть еще для C=8,9,16.

Например рекорд для C=16 принадлежит Алексею Чернову 128х128. Но этот результат можно как минимум удвоить до 256х256.

 Профиль  
                  
 
 Re: Новый конкурс программистов
Сообщение31.05.2012, 10:00 
Заблокирован
Аватара пользователя


22/03/08

7154
Саратов
Pavlovsky в сообщении #578838 писал(а):
Призываю прежде чем кодить - изучить теорию.

На изучение теории может уйти очень много времени. Конкурс уже закончится :-)

Есть результат N=6084 для С=21.
До N=6400 вполне могу дойти, дальше сложно вручную.

Конечно, толку мало, потому что до максимума ещё как до Луны, но это ручная работа :-) А она, как известно, всегда ценится очень высоко. Этот алгоритм я сама придумала, в этом вся прелесть моего участия в конкурсе. А на место плевать, пусть хоть будет тридцать-последнее :-)

Если в прошлых конкурсах улучшение результато приносило десятки, в худшем случае - сотки, то в этом конкурсе улучшение результата приносит тысячные или даже десятитысячные доли балла.

Пример
сейчас мой результат для C=21 N=6084, результат на конкурсе для этого C N=74529. Коэффициент K=0,0816.
Смотрим, что даст улучшение результата, например, до N=6400. Это даст всего 0,00427 балла.

Так что улучшать надо сразу на миллион :D

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 1937 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8 ... 130  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: YandexBot [bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group