数独に関するshogen2018のブックマーク (2)

  • 数独を通して組合せ最適化を学ぼう - Qiita

    i. 目的 「様々な課題を組合せ最適化を使って解決できたら」と思った人に向けて、数独1を題材にして説明していきます。 一般に、パズルは解く過程を楽しむものです。 組合せ最適化を使って解くパズルは、モデル化の過程を楽しむものです。 ii. 組合せ最適化とは 数理モデルを使った最適化で、下記のような、いろいろな問題があります。 参考:典型問題と実行方法 もう少し詳しい説明は、下記をご覧ください。 参考:組合せ最適化を使おう 組合せ最適化は、難しい問題が多いですが、ソルバーを使うと数理モデルを作成するだけで、ソルバーが答えを出してくれます。 最近では、ソルバーの性能が上がってきて、過去、解けなかったものも解けるようになってきています。 参考:組合せ最適化ソルバーの威力 iii. 手順について 課題を解くための手順です。 問題をまとめる ヒアリングしたり、頭を整理したりして、必要な情報をまとめてい

    数独を通して組合せ最適化を学ぼう - Qiita
  • 数独問題を解くアルゴリズムと実装 - Qiita

    この記事はBrainPad Advent Calender 2017の22日目の記事です。 こんにちは、BrainpadでWebエンジニアやっています、チンバトと申します。記事ではいくつかのアルゴリズムで数独問題を解いて見たのをまとめました。 数独問題の解き方 いろいろあると思います。普通に眼、頭、手の組み合わせで解いたり、オンラインツール使ったり、だれか解を知っている人に教えてもらったりとか。。。しかし、今回はプログラミングで解く方法について簡単に紹介したいと思います。 1. Backtracking 要はよくある深さ優先探索のことです。つまり、ありえる組み合わせを繰り返してチェックして行きます。もちろん途中で枝刈りしたりなどの工夫入れることで速度を上げることも可能です。単純に$9\times9$のフィールドに1から9までの数字を入れる組み合わせの数は$9^{81}$個(約 $2\ti

    数独問題を解くアルゴリズムと実装 - Qiita
  • 1