Конференция "Основная" » AI для кубика Рубика [Delphi, Windows]
 
  • Kira © (21.01.06 18:59) [0]
    Здравствуйте! Подкиньте, кто может, идею - как реализовать автоматическое собирание кубика Рубика. Желательно для Delphi и так, чтобы до меня дошло :o)
  • Kira © (21.01.06 18:59) [0]
    Здравствуйте! Подкиньте, кто может, идею - как реализовать автоматическое собирание кубика Рубика. Желательно для Delphi и так, чтобы до меня дошло :o)
  • Kira © (21.01.06 18:59) [0]
    Здравствуйте! Подкиньте, кто может, идею - как реализовать автоматическое собирание кубика Рубика. Желательно для Delphi и так, чтобы до меня дошло :o)
  • Bogdan1024 © (21.01.06 20:05) [1]
    Не представляю как это сделать иначе чем методом перебора :) А вообще если делаешь игру, то лучше просто запомнить последовательность движений, которые привели куб до текущего состояния, а потом просто повторить обратно их чтобы собрать... если плеер крутил куб, то там можно проанализировать какие движения будут лишними, а какие нужно добавить.
  • П7 (21.01.06 20:56) [2]

    > Kira ©   (21.01.06 18:59)

    Возьми кубик Рубика. И Собирай его, пока не постигнешь всю силу алгоритма.
    У меня было как-то так, я целый год бегал с ним. Мог за минуты собрать все стороны. (:
    А вот недавно взялся опять - не получается. Забыл всё. Так и забросил не разобравшись. (:
  • ArtemESC © (22.01.06 03:02) [3]
    algolist.manual.ru
  • П7 (22.01.06 05:01) [4]

    > ArtemESC ©   (22.01.06 03:02) [3]

    А ведь точно. (:
  • Kira © (26.01.06 20:49) [5]
    Всем, кто откликнулся, большое спасибо!
    Но боюсь, что я неправильно выразился.
    Мне необходимо РЕАЛИЗОВАТЬ автоматическую сборку кубика.
    Как его собирать ручками, я знаю.
  • Леонид (31.08.06 11:25) [6]
    Я собираю кубик Рубика уже 25 лет.Нет ничего проще.2 слоя собираю без всяких  алгоритмов, а для сборки третьего слоя существует около 300 алгоритмов,которые я выучил и собираю весь кубик в пределах около 40 ходов.Для запоминания алгоритмов составляю  предложения по первым буквам моих алгоритмов.Молодым желаю творческих успехов-у них ещё есть время,чтобы овладеть сборкой кубика.Для начала необходимы статьи из журнала наука и жизнь 80-х годов прошлого века.
  • Владимир (03.09.06 16:55) [7]
    Меня заинтересовала цитата №6. Я тоже собираю кубик практически без
    алгоритмов и давно отказался от обычной сборки по слоям. В среднем собираю за 45-55 ходов, а личный рекорд 35 ходов.
  • Думкин © (04.09.06 06:50) [8]
    > практически без алгоритмов


    Это как? И главное - что значит практически - так с алгоритмами или без? Рэндомом?
  • Владимир (08.09.06 19:31) [9]
    Я начинаю сборку кубика с вершин. Только на этом этапе применяю алгоритмы состоящие из 7-9 ходов. На это уходит от 7 до 21 хода. Дальнейшая сборка (20-40 ходов) алгоритмов не требует, если не считать за алгоритмы простейшие перемещения кубиков, используемые при построении  на уже собранном  кубике фигур.
  • Думкин © (11.09.06 06:10) [10]
    > Владимир   (08.09.06 19:31) [9]

    А что же это такое, если не алгоритмы?
  • Владимир (11.09.06 18:25) [11]
    Думкин, мне интересно, ты сам кубик собираешь? Или грузишь от нечего делать?
  • Думкин © (12.09.06 07:04) [12]
    > Владимир   (11.09.06 18:25) [11]

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

    Если же вы покажете, что собираете рэндомом - я съем свою шляпу. Я не гружу - я интересуюсь.
  • Думкин © (12.09.06 07:10) [13]
    Что касается задачки.
    1. Если начальное состояние получено не из полной сборки верными перемещениями. то восе не обязательно кубик соберется. Также как и в игре 15. Поэтому положения в играх таких(да и в реале) получают из конечного путем правильных перемещений - тогда сборка осуществима точно.
    2. Один алгоритм в этом случае есть точно - повторить те ходы наоборот, что и было использовано. А это не интересно.
    3. Было бы забавно выстроить алгоритм реализующий минимум ходов в любой ситуации.
    4. А так - использовать те что есть. Как и было заявлено, алгоритмов сборки - очень много. В том числе и простые перемещения кубиков.
  • Владимир (13.09.06 21:22) [14]
    Что такое "определенные методы"? Все очень мутно. Меня не интересуют
    общие фразы. Это напоминает объявления в газетах:приглашаем непонятно кого на непонятную работу. За сколько поворотов граней собираете кубик?
    И как вы его собираете? Я считаю, что если вы контролируете процесс сборки, знаете заранее,сколько ходов на это нужно, то это уже не алгоритмы, это уже от головы.
  • Virgo_Style © (13.09.06 21:46) [15]
    Владимир   (13.09.06 21:22) [14]
    то это уже не алгоритмы, это уже от головы


    ничего себе. Хотелось бы узнать, что в таком случае алгоритм. Или под головой подразумевалась интуиция?
  • Думкин © (14.09.06 05:45) [16]
    > Владимир   (13.09.06 21:22) [14]

    А какая разница за сколько я его собираю? если мне сейчас его дать - то минимум полчаса надо будет. И что? Очем это говорит?

    А вот определнение алгоритма от вас - не помешало бы.
  • Думкин © (14.09.06 05:46) [17]
    > Владимир   (13.09.06 21:22) [14]

    Вот вы без общих фраз и выложите свои недоалгоритмы. Пипец.
  • Думкин © (14.09.06 08:00) [18]
    > Kira ©   (21.01.06 18:59)  

    А как собирать прораммно можно по первому приближению так:
    1. Для описания состояния кубика можно использовать либо строку из 54 элементов, либо матрицу 6*9, или диагональные матрицы 54*54. :) Договориться какое место на кубике на каом месте в этих структурах.
    2. Описать правильные элементарные переходы - то есть пары состояний, когда из первого состояния путем поворота грани переходим во второе. Из них можно получить простые переходы, которыми собственно и оперируют собиральщики.
    3. Правильный переход - конечная линейно упорядоченая комбинация элементарных переходжов, где второе состояние каждого(кроме последнего) является первым у последующего.
    4. Правильное конечное состояние - это собранный кубик.
    5. Правильное состояние - если существует правильный переход связывающий его и правильное конечное.

    Задача: Дано состояние, выяснить правильное оно или нет и в случае правильности предъявить правильный переход.
    Построить конечный алгоритм по решению такой задачи.

    Простейшие алгоритмы - это стандартная сборка - описана на алголисте, а также можно воспользоваться огромной базой недоалгоритмов от Владимира. :)

    Более сложная задача - найти кратчайший правильный переход.

    И все. задача поставлена. Решайте.

    > Подкиньте, кто может, идею


    Идея подкинута. Можно и не 54 эелемента пользовать - но так понятнее.
  • Думкин © (14.09.06 08:02) [19]
    Кстати, в случае диаг.матриц - переходы можно описывать разреженными матрицами. Сам переход - умножение на такую матрицу - переведт одно состояние в другое.
  • Думкин © (14.09.06 08:04) [20]
    3. Правильный переход - линейно упорядоченная конечная цепочка состояний, где каждая пра соседей образует элементарный.
  • Думкин © (15.09.06 08:00) [21]
  • Матрица (16.04.07 06:36) [22]
    Сегодня от нефиг делать решил написать свой кубик. Оказалось, что кубик пишется за несколько часов. На GLScene.

    http://rapidshare.com/files/26241184/kubik.exe.html

    Ну, кто умеет собирать с размерами более чем 3 на 3 ?
  • dDan (16.04.07 09:53) [23]
    2 Матрица очень даже не плохо вышло, молодчина
  • Romm © (19.04.07 21:06) [24]

    > Матрица   (16.04.07 06:36) [22]

    чет я не врубаюсь как скачать :(
    Пишет
    Your IP-address 217.118.79.9 is already downloading a file... :((
  • ViK © (19.04.07 23:10) [25]

    > чет я не врубаюсь как скачать :(
    > Пишет
    > Your IP-address 217.118.79.9 is already downloading a file...
    > :((

    С rapidshare можно одновременно закачивать только один файл, причем если ты недавно уже закачивал что-либо, то приходится ждать некторое время чтобы закачать след. файл. Если ты пользуешься прокси или спутником (на некоторых тоже такие косяки бывают), то rapidshare считает, что ты уже пользуешься данным сервером и обламывает тебя
  • Матрица (21.04.07 02:16) [26]

    > dDan   (16.04.07 09:53) [23]
    >
    > 2 Матрица очень даже не плохо вышло, молодчина

    Спасибо. :)

    Но собрать с 4x4x4 пока так и не получилось. Вернее только частично. Уголки, например, также переставляются как на 3х3х3.


    > Romm ©   (19.04.07 21:06) [24]
    >
    >
    > > Матрица   (16.04.07 06:36) [22]
    >
    > чет я не врубаюсь как скачать :(
    > Пишет
    > Your IP-address 217.118.79.9 is already downloading a file.
    > .. :((

    Выложил на gamedev'е http://www.gamedev.ru/download/?id=5354

    В управление добавил шарик. Если кликнуть по нему одной кнопкой - вращает кубик в одну сторону, если другой - в другую.
  • Матрица (01.05.07 06:50) [27]
    Сделал сайт кубику: http://kubrub.googlepages.com/home

    Там при сохранении в файл, теперь сохраняется и Хистори, так, что можно посмотреть как кубик собирался.


    > Леонид   (31.08.06 11:25) [6]
    >
    > Я собираю кубик Рубика уже 25 лет.Нет ничего проще.2 слоя
    > собираю без всяких  алгоритмов, а для сборки третьего слоя
    > существует около 300 алгоритмов,которые я выучил и собираю
    > весь кубик в пределах около 40 ходов.

    Покажи как.


    > Владимир   (03.09.06 16:55) [7]
    >
    > Меня заинтересовала цитата №6. Я тоже собираю кубик практически
    > без
    > алгоритмов и давно отказался от обычной сборки по слоям.
    >  В среднем собираю за 45-55 ходов, а личный рекорд 35 ходов.
    >

    Покажи как.
  • Влад (04.05.07 12:06) [28]
    Матрице
    По поводу "недоалгоритмов от Владимира"(смотрите Думкина). У меня их всего два. В формате этой этой странички описать их сложно.
    В общих чертах:
    В "разобранном" кубике всегда есть пары. Как в вершинах, так и в крестах. Я и собираю его парами, начиная с вершин и заканчивая средним слоем, горизонтом.Главное, на всех этапах, правильно установить(поймать)пары.Если это удастся, можно уложиться в тридцать ходов. А в среднем, я уже указывал выше. Последний раз кубик "собрался" за 31 ход.
  • Думкин © (05.05.07 05:05) [29]
    > Влад   (04.05.07 12:06) [28]

    Ну так значит имеется алгоритм. Другое дело, что вы затрудняетесь в его формализации. Так это дело пятое.
    Это вроде - понимать понимаю, а сказать не могу.
  • Влад (05.05.07 10:54) [30]
    "Понимать понимаю, а сказать не могу"-  я не студент. Я хотел бы более интересного диалога, нежели выяснения кто умнее. А вы прицепились к "что такое алгоритм". Мне, например, нужно знать, за сколько ходов "машина" собирает кубик. Хотелось бы с ней посоревноваться.
    По поводу алгоритма. Кубик - это механизм.  Все детали его взаимопротивоположны, симметричны. К финалу его сборки остаются несколько пар(3 - 4). Как правило, одна из них неправильная, то есть кубики перевернуты.Вот здесь и нужны формулы(алгоритмы), а простейшие перемещения, которые подчиняются АЛГОРИТМУ СТРУКТУРЫ КУБИКА, Я ЗА АЛГОРИТМЫ НЕ СЧИТАЮ. Даже если разобрать кубик по винтикам, собирать его придется подчиняясь его структуре. Так что, в принципе, наш разговор бесплоден.
  • Думкин © (06.05.07 04:53) [31]
    > Влад   (05.05.07 10:54) [30]

    Для интересного диалога - все в ваших руках. Заточки для этого я выложил выше.

    1. > Мне, например, нужно знать, за сколько ходов "машина" собирает кубик.
    Машина - это что?

    2.
    а простейшие перемещения, которые подчиняются АЛГОРИТМУ СТРУКТУРЫ КУБИКА, Я ЗА АЛГОРИТМЫ НЕ СЧИТАЮ.



    Ну так дайте же наконец определение АЛГОЛРИТМА, которое вы считаете верным. А то у вас я так чувствую, некое свое собственно унутренне понимание оного, которое ничего общего не имеет с таковым в общепринятом смысле.

    3. Самый короткий алгоритм сборки - существует. Это довольно просто доказать. Другое дело, что он требует очень огромных ресуросов для свое работы. Как и шахматы. Но... о том и речь, что можно по крайней мере выбирать приемлемые. Вы видимо, таким обладаете, но в упор отказываетесь признавать это алгоритмом. Я допускаю, что это от того, что полностью формализировать свои размышлительные ходы во время сборки, вы просто не в состоянии. Ровно таким же образом, как и шахматисты. Играть они играют, а на вопрос как - мычат, как правило.

    А про кто умнее - это вы зря. Это вы видите. Я же действительно хочу узнать, что происходит в вашей глове когда вы собираетет кубик. Поэтому именно я и прицепился и ничего более. Остальные додумки на вашей совести. :)
  • Думкин © (06.05.07 05:06) [32]
    4. Что такое - АЛГОРИТМ СТРУКТУРЫ КУБИКА?
  • Влад (06.05.07 18:48) [33]
    Алгоритмом структуры кубика я называю его ограниченность, в рамках которой я вынужден его собирать. Например, я не могу перемещать его грани наискосок.Соотношение его центров 4 к 2, и никак иначе. А насчет того, что творится у меня в голове, то ничего особенного там не происходит. Весь процесс сборки достаточно хорошо отработан и предсказуем. Пример:
      При сборке вершин достаточно выставить цвета верха и низа, не обращая внимания на боковые грани. Получатся четыре пары. В этом случае образуются только три положения правильных и неправильных пар: 1х3, 2х2, 3х3. Четыре неправильных пары - это правильно собранные вершины, но только перевернутые. Все три комбинации пар решаются одним алгоритмом в десять ходов.
      Дальнейшая сборка представляет собой заполнение крестов верха и низа. Перекидывая кубики в среднем слое, в горизонте, я вгоняю их парами однвременно и вверх, и вниз, пока в горизонте не останутся две последние пары. Они легко собираются "тройкой" - четырех-ходовый алгоритм затрагивающий одновременно три кубика горизонта.
  • Матрица (07.05.07 07:11) [34]

    > Влад   (04.05.07 12:06) [28]
    >
    > Матрице
    > По поводу "недоалгоритмов от Владимира"(смотрите Думкина).
    >  У меня их всего два. В формате этой этой странички описать
    > их сложно.


    Там в программе есть возможность сохранить в файл. Хистори при этом сохраняется.


    > Мне, например, нужно знать, за сколько ходов "машина" собирает
    > кубик. Хотелось бы с ней посоревноваться.


    29 из любой позиции. Её не переиграешь в этом плане.
  • Влад (07.05.07 11:28) [35]
    Матрице.

    Спасибо за информацию. Я думаю, что переиграть можно. Я, собственно, этого и добиваюсь. Согласен, что не каждому это под силу, возможно, в том числе и мне, но - возможно.
  • Reindeer Moss Eater © (07.05.07 16:36) [36]
    AI - то здесь зачем потребовался?
    Есть алгоритм сборки.
    Или для нахождения корней квадратного уравнеия тоже надо AI?
  • Думкин © (08.05.07 05:46) [37]
    > Влад   (07.05.07 11:28) [35]

    А каким образом, если алгоритм дает минимальную сборку? Или о чем речь?

    > Матрица   (07.05.07 07:11) [34]

    А можно ссылку на такую сборку?
  • Влад (08.05.07 13:35) [38]
    Такой ссылки нет. Это мои наработки. Я собираюсь открыть страничку в интернете, где будет расписан принцип сборки. Но пока, к сожалению, у меня нет устойчивого минимального результата.
  • Влад (08.05.07 14:03) [39]
    Алгоритм минимальной сборки не дает. Он дает возможность понять и собрать кубик но, это не оптимальный вариант. В данном случае - это способ упорядочить некую с виду хаотичную среду. И чем проще алгоритм для восприятия, тем он протяженнее. Зато не надо думать, можно просто и тупо ставить кубики на свои места. Например, при сборке по слоям едва можно уложиться в 90 ходов, а обычно - 90-120. Но зато быстро. Просмотрев видео чемпиона мира 2002, я понял, что для сборки он комбинирует различные алгоритмы. Но по сути - это послойная сборка. Сборка, начинающаяся с центральных крестов, мне не понравилась. Геморрой. Она не короче послойной, но сложнее при исполнении. Во всех случаях используются протяженные алгоритмы(формулы),значительно удлинняющие сборку. Моя цель - избежать их.
  • Матрица (09.05.07 02:07) [40]

    > Думкин ©   (08.05.07 05:46) [37]
    > А можно ссылку на такую сборку?


    Про 29 ходов я только в новостях прочитал, а самой сборки не видел.

    Интересно, проводятся ли чемпионаты сборок больших кубиков? Там 5х5х5 например?
  • Влад (10.05.07 11:57) [41]
    Я не  в курсе. Виртуальными кубиками не занимаюсь. Если мне попадется "живой" кубик 4х4, я буду им заниматься. В компьютере можно вылепитиь и монстра 20х20, но какой в этом смысл? Есть игра, не компьютерная, где нужно на тетрадном листе очертить квадрат 10х10 клеток. Эти сто клеток нужно заполнить цифрами от 1 до 100, используя шахматный ход конем. Очень замечательный пример того, что такое алгоритм. Этот алгоритм работает во всех масштабах. Можно выложить клеточками дворцовую площадь -он сработает.
  • Матрица (11.05.07 03:11) [42]

    > Влад   (10.05.07 11:57) [41]
    >
    > Я не  в курсе. Виртуальными кубиками не занимаюсь. Если
    > мне попадется "живой" кубик 4х4, я буду им заниматься. В
    > компьютере можно вылепитиь и монстра 20х20, но какой в этом
    > смысл?

    А соберёшь? Я максимум 8x8x8 собирал.

    Кстати, если интересно, можешь попробовать вот такую головоломку: http://kubrub.googlepages.com/bublik

    Я уже давольно много с ней помучился, и по-моему сложнее кубика. Собрал только первые два уровня.
  • Матрица (13.05.07 01:42) [43]
    Ну как? Не по зубам бублик? :)
  • Матрица (17.05.07 03:23) [44]
    Научился собирать бублик.
    Демки на сайте.
  • имя (31.03.08 12:34) [45]
    Удалено модератором
 
Конференция "Основная" » AI для кубика Рубика [Delphi, Windows]
Есть новые Нет новых   [134484   +49][b:0][p:0.001]