ルービックキューブをアルゴリズムで解くということ

ルービックキューブを解くアルゴリズムについて書きます.この記事では具体的なアルゴリズムの話はありません.
(情報工学的アプローチでの見方です.ルービックキューブを解くアルゴリズムは「群論」とも深く関わりがありますが,私は情報工学系の人間なので群論は全くわかりません.)

※ この記事はルービックキューブを解くアルゴリズムの概念的なものを説明した記事です. 実際のルービックキューブを我々人間が解くやり方は以下のページをおすすめします.とてもわかりやすく書かれています.

ルービックキューブの解き方

はじめに

まず,いくら時間をかけて良いという環境のもとであればルービックキューブを単に解くということは実は非常に簡単なタスクです.
ただ,それをいかに効率良く解くか,というのが非常に重要なことで,多くの人々の興味の対象でもあります.
その手順がアルゴリズムです.
本記事ではルービックキューブを解くアルゴリズムの概念を説明した後,既存手法を 1)人間的アプローチ,2)コンピュータ的アプローチのそれぞれでごくごく簡単に分析し,自分がこれから試してみたいことをまとめます.

Read more »

WCAデータベースのMySQLへのインポートにはBigDumpを使うと高速で楽

ブログ初投稿の記事です.

はじめに

一部のスピードキューバの方々はWCAのDatabase exportを利用されていると思います. 近年の公式大会数の増大に伴って,データベースファイルが容易に扱いにくくなるレベルまでサイズが大きくなっています.(2014-11-14現在,sqlファイル約94.4MB)
エクスポートページではSQLファイルとTSVファイルが公開されていますが,これほど大きいサイズのデータを扱うとなると,TSVファイルを純粋なファイル関数やオレオレパーザで現実的な時間で操作することはほとんど不可能になってきています.
そこでSQLファイルを使用して,MySQL等のデータベースを使用するのが妥当でしょう.

公開されているSQLは差分をinsertするのではなく,テーブルをdropして1からデータを挿入するため,データ量が膨大になるにつれ,インポート時間が相当長くなるという問題があります.
さらに,php.iniでいろいろファイルサイズやタイムアウト値を制限されてると変更だったり面倒だし,レンタルサーバ等ではこれらの値を変更されることができずにインポートができないことも考えられます.
仮に変更できたとしても,phpMyAdmin等からインポートすると,1回でインポートしきれないため,途中から再開したりだとかとにかくいろいろ手間がかかりまくりです.

本記事は,BigDumpを使用すると,楽に,高速にインポートできるよ,というお話です.
データベースはMySQL前提です.

※サーバに直接ログインできる or ssh接続できる 等の環境であれば,mysqlコマンドからインポートできるので,本記事はVPS等ではなく共用のレンタルサーバでsshログインが許可されていない場合を想定しています.

Read more »