Главная » Статьи » В помощь учителю » Математика |
01 АПРЕЛЯ, 09:53 // Владимир Грамм // abc.net.au Внешняя простота игрушки – шесть сторон куба, поворачивающихся вдоль любой из трёх взаимно перпендикулярных осей, скрывает 43 квинтиллиона конфигураций (4,3*1019), и это без учёта вращений кубика как целого. Если бы каждый из 300 миллионов кубиков, проданных в мире (среди них есть и кубики 2x2x2, 4x4x4, 5x5x5 и даже 6x6x6 и 7x7x7, но львиная доля – всё же «классические» 3x3x3), можно было бы перестраивать в новую конфигурацию раз в секунду, перебор всех возможностей потребовал бы более 3 тысяч лет. С начала 1980-х годов проводятся ежегодные чемпионаты мира по скоростной сборке кубика, и в настоящее время рекорд составляет 9,18 секунды, что на полсекунды меньше рекорда преодоления стометровки в лёгкой атлетике. Алгоритмы сборки головоломки появились вскоре после её появления в продаже. Они отличаются и универсальностью, и длиной, и сложностью. Существуют наборы всего из нескольких универсальных приёмов, включающих два–три поворота, позволяющих разобраться с большинством конфигураций за сотню шагов, существуют наборы из нескольких десятков сложных приёмов, грамотное использование которых сводит количество необходимых операций к трём–четырём десяткам. В конечном итоге вопрос эффективности алгоритма решается индивидуально. Кому-то проще держать в голове много сложных приёмов, дольше времени соображая, каким из них воспользоваться, кому-то – быстро оценить ситуацию и пытаться управиться небольшим количеством заготовок. Однако если публику больше интересует быстрота сборки, измеренная в секундах, то математиков – количество шагов – единичных операций, за которые эта сборка осуществима. Шаги и повороты Одна из них признаёт лишь повороты На фоне последних чисел новая работа калифорнийского программиста Томаса Рокицкого (также, разумеется, не лишённого профессионального математического образования) впечатляет. Он оценивает «цену» своего лимита в полторы тысячи часов (два месяца) компьютерного времени; при этом потребовались скромных 8ГБ памяти – параметр, более характерный для средней руки сервера, чем для суперкомпьютера. На деле подсчёт занял даже меньше двух месяцев, поскольку Рокицкий не начинал с нуля, а успешно приспособил имевшиеся у него прежде разработки касательно кубика Рубика для новой задачи. Калифорниец модернизировал метод немецкого математика Герберта Коцимбы, разработанный тем в начале 1990-х годов. Среди 43 квинтиллионов конфигураций немец выделил 20 миллиардов «избранных», которые можно перевести друг в друга десятью «избранными» поворотами. Среди этих 20 миллиардов нашлось место и собранному кубику. Как оказалось, все остальные «избранные» отстоят от него не более чем на 18 «избранных» поворотов. Позднее удалось доказать, что любая конфигурация из общего множества отстоит от одной из избранных лишь на 12 ходов, а значит, каждый кубик Рубика можно собрать за 12 + 18 = 30 ходов. Метод Коцимбы позволяет искать «почти оптимальные» алгоритмы (правда, не позволяя доказать их минимальность) довольно простым способом. Сначала составляется таблица, в которой для всех 20 миллиардов «избранных» конфигураций хранится число ходов, необходимых для сборки кубика. Потом для каждой выбранной конфигурации рассматривается минимальный путь перевести её в одну из избранных. Суммарная длина двух участков пути и даёт полную длину пути от заданного состояния к финальному. Перебирать все пути длиной до 20 шагов программы, основанные на методе Коцимбы, позволяют за несколько миллисекунд. Тот из них, что окажется самым коротким, и берётся за «почти оптимальный». Рокицкий пошёл иным путём. Для каждой конфигурации он ищет все алгоритмы определённой длины, переводящие её в одну из «избранных». Поскольку все разрешённые конфигурации переводятся друг в друга определённым набором поворотов, то рано или поздно исчерпываются все «избранные». Если записать для каждой из них длину предложенного решения, то максимальная из них даст максимальную длину не только для заданного положения, но и ещё для двух миллиардов конфигураций, отличающихся от своей «избранной» той последовательностью движений, что переводит заданную конфигурацию в свою «избранную». Все эти наборы не пересекаются и вместе составляют полное множество из 43 квинтиллионов конфигураций. Оценка длины Сказать, какой именно алгоритм переводит заданную конфигурацию в исходную, можно лишь для тех наборов, длина максимальных алгоритмов которых установлена; таковых на данный момент – 8 тысяч из 2 миллиардов. | |
Просмотров: 2280 | |
Форма входа |
---|
Социальные закладк |
---|
Поиск |
---|
Друзья сайта |
---|
Теги |
---|
Статистика |
---|