Lightening talk at #tqrk13
Copyright Drecom Co., Ltd. All Rights Reserved. !13VCZͱ1ZUIPOͲͪΒ͕͍ͷ͔ʁURSL٢ԬͻΖ͖
View Slide
Copyright Drecom Co., Ltd. All Rights Reserved. !2自己紹介吉岡ひろきWebエンジニアirohiroki / いろ登壇、執筆 少々
Copyright Drecom Co., Ltd. All Rights Reserved. !3今どきのゲーム 何でも自動ʰࠇ͍࠭യʱͷࣗಈङΓ
Copyright Drecom Co., Ltd. All Rights Reserved. !4今どきのゲーム 何でも自動自動戦闘自動移動自動アイテム処分自動装備自動パーティ編成…
Copyright Drecom Co., Ltd. All Rights Reserved. !5今どきのゲーム 何でも自動自動戦闘自動移動自動アイテム処分自動装備自動パーティ編成…組合せ最適化問題ʢ͍ΘΏΔφοϓαοΫʣ
Copyright Drecom Co., Ltd. All Rights Reserved. !6組合せ最適化問題近似解法ミツバチコロニー最適化など厳密解法動的計画法バックトラッキング分岐限界法など
Copyright Drecom Co., Ltd. All Rights Reserved. !7あるブログ
Copyright Drecom Co., Ltd. All Rights Reserved. !8ίʔυ3VCZ൛ͱಉ͚ͩ͡Ͳ ʢ1ZUIPOͷํ͕ʣ͍Έ͍ͨɻͳ͔ͥΒͳ͍͚Ͳʂ
Copyright Drecom Co., Ltd. All Rights Reserved. !9喧嘩売ってる?
Copyright Drecom Co., Ltd. All Rights Reserved. !10検証安定版Ruby 2.6.3Python 3.7.3分岐限界法
Copyright Drecom Co., Ltd. All Rights Reserved. !11分岐限界法# Value Cost V/C1 14 4 3.52 18 6 33 5 2 2.54 3 2 1.5Cap=6
Copyright Drecom Co., Ltd. All Rights Reserved. !12分岐限界法V:0, C:0UB:20# Value Cost V/C1 14 4 3.52 18 6 33 5 2 2.54 3 2 1.5Cap=6UB = 14 + 18 * (6 - 4) / 6
Copyright Drecom Co., Ltd. All Rights Reserved. !13分岐限界法V:0, C:0UB:20V:14, C:4UB: 20# Value Cost V/C1 14 4 3.52 18 6 33 5 2 2.54 3 2 1.5Cap=6+ I1UB = 14 + 18 * (6 - 4) / 6
Copyright Drecom Co., Ltd. All Rights Reserved. !14分岐限界法V:0, C:0UB:20V:14, C:4UB: 20V: , C:10UB:# Value Cost V/C1 14 4 3.52 18 6 33 5 2 2.54 3 2 1.5Cap=6+ I1+ I2
Copyright Drecom Co., Ltd. All Rights Reserved. !15分岐限界法V:0, C:0UB:20V:14, C:4UB: 20V: , C:10UB:V:14, C:4UB:19# Value Cost V/C1 14 4 3.52 18 6 33 5 2 2.54 3 2 1.5Cap=6+ I1+ I2 - I2UB = 14 + 5 * (6 - 4) / 2
Copyright Drecom Co., Ltd. All Rights Reserved. !16分岐限界法V:0, C:0UB:20V:14, C:4UB: 20V:0, C:0UB: 18V: , C:10UB:V:14, C:4UB:19# Value Cost V/C1 14 4 3.52 18 6 33 5 2 2.54 3 2 1.5Cap=6+ I1 - I1+ I2 - I2
Copyright Drecom Co., Ltd. All Rights Reserved. !17分岐限界法V:0, C:0UB:20V:14, C:4UB: 20V:0, C:0UB: 18V: , C:10UB:V:14, C:4UB:19# Value Cost V/C1 14 4 3.52 18 6 33 5 2 2.54 3 2 1.5Cap=6V:19, C:6UB:19+ I1 - I1+ I2 - I2+ I3
Copyright Drecom Co., Ltd. All Rights Reserved. !18分岐限界法V:0, C:0UB:20V:14, C:4UB: 20V:0, C:0UB: 18V: , C:10UB:V:14, C:4UB:19# Value Cost V/C1 14 4 3.52 18 6 33 5 2 2.54 3 2 1.5Cap=6V:19, C:6UB:19V:14, C:4UB:17+ I1 - I1+ I2 - I2+ I3 - I3
Copyright Drecom Co., Ltd. All Rights Reserved. !19分岐限界法V:0, C:0UB:20V:14, C:4UB: 20V:0, C:0UB: 18V: , C:10UB:V:14, C:4UB:19# Value Cost V/C1 14 4 3.52 18 6 33 5 2 2.54 3 2 1.5Cap=6V:19, C:6UB:19V:14, C:4UB:17+ I1 - I1+ I2 - I2+ I3 - I3
Copyright Drecom Co., Ltd. All Rights Reserved. !20irohiroki/knapsacker
Copyright Drecom Co., Ltd. All Rights Reserved. !21irohiroki/knapsacker-py
Copyright Drecom Co., Ltd. All Rights Reserved. !22テストデータアイテム数 … 200Value … 1 〜 10Cost … 1 〜 10キャパシティ … 500
Copyright Drecom Co., Ltd. All Rights Reserved. !230.42秒Rubyで解く
Copyright Drecom Co., Ltd. All Rights Reserved. !24118 / 2003.5 x 1057 通りRubyで解く
Copyright Drecom Co., Ltd. All Rights Reserved. !25Pythonで解く
Copyright Drecom Co., Ltd. All Rights Reserved. !260.14秒Pythonで解く
Copyright Drecom Co., Ltd. All Rights Reserved. !27Pythonで解く0.14秒Pythonの方が速い
Copyright Drecom Co., Ltd. All Rights Reserved. !28Pythonで解く3倍速い0.42秒 0.14秒
Copyright Drecom Co., Ltd. All Rights Reserved. !29ちょっと待って
Copyright Drecom Co., Ltd. All Rights Reserved. !30リハーサルの方が速い…?Rubyで解く 2
Copyright Drecom Co., Ltd. All Rights Reserved. !31リハーサルやめるbenchmark.bmbmbenchmark.bm
Copyright Drecom Co., Ltd. All Rights Reserved. !32リハーサルなし0.18秒
Copyright Drecom Co., Ltd. All Rights Reserved. !33他のデータで…
Copyright Drecom Co., Ltd. All Rights Reserved.アイテム数 … 200Value … 1 〜 10Cost … 1 〜 10キャパシティ … 503!34テストデータ2+3
Copyright Drecom Co., Ltd. All Rights Reserved. !350.02秒Rubyで解く 2ʢࢀߟɿͷͱ͖ඵʣ
Copyright Drecom Co., Ltd. All Rights Reserved. !360.03秒Pythonで解く 2
Copyright Drecom Co., Ltd. All Rights Reserved. !370.03秒Pythonで解く 2勝った
Copyright Drecom Co., Ltd. All Rights Reserved. !38キャパシティ 500〜599
Copyright Drecom Co., Ltd. All Rights Reserved. !39JITがある!
Copyright Drecom Co., Ltd. All Rights Reserved. !40JITとは一部をCに変換、コンパイルして実行 → 速くなる2.6から実験的に組み込まれている
Copyright Drecom Co., Ltd. All Rights Reserved. !41--jit
Copyright Drecom Co., Ltd. All Rights Reserved. !42キャパシティ 500〜599
Copyright Drecom Co., Ltd. All Rights Reserved. !43結論Pythonの方が速かった
Copyright Drecom Co., Ltd. All Rights Reserved. !44Python vs Rubyhttps://www.educba.com/python-vs-ruby-performance/
Copyright Drecom Co., Ltd. All Rights Reserved. !45https://www.educba.com/python-vs-ruby-performance/Python vs Rubyએݴత ಈత
Copyright Drecom Co., Ltd. All Rights Reserved. !46https://www.educba.com/python-vs-ruby-performance/Python vs Ruby؆ܿͰϚδΧϧతͰಡΈ͍͢
Copyright Drecom Co., Ltd. All Rights Reserved. !47https://www.educba.com/python-vs-ruby-performance/Python vs Ruby؆͕ܿͩσόοά͠ʹ͍͘͜ͱ໌ࣔత͕ͩΤϨΨϯτͰͳ͍͜ͱ
Copyright Drecom Co., Ltd. All Rights Reserved. !48https://www.educba.com/python-vs-ruby-performance/Python vs RubyΣϒΞϓϦͷϓϩτλΠϐϯάେྔͷσʔλͱܭࢉ
Copyright Drecom Co., Ltd. All Rights Reserved. !49速さで選んでるんじゃないし。
Copyright Drecom Co., Ltd. All Rights Reserved. !50おまけ - Python書いたらself忘れるreturn忘れるメソッド呼ぶとき()忘れるメソッドじゃないのに()つけちゃうtrue → Truey if x else z
Copyright Drecom Co., Ltd. All Rights Reserved. !51Rubyの方がいいし。End