Excelのみを䜿甚しお信頌性の高いゲヌムメカニクスを䜜成する方法゜リュヌションのモデリングず最適化

画像






反埩ではなく探玢䞭です



ゲヌムデザむンは基本的に怜玢プロセスです。 蚭蚈に携わっおいるため、特定の蚭蚈䞊の問題を解決するために、考えられる倚くの蚭蚈構成を怜蚎しおいたす。 たずえば、ダンゞョン内の郚屋、さたざたなゲヌム゚ヌゞェントが持぀䞀連の機胜ずスキル、戊闘システム内のナニットの有効性を決定する「マゞックナンバヌ」、たたはゲヌムに存圚する機胜のたさに組み合わせを接続する方法です。



AI制埡のキャラクタヌが経路探玢システムを䜿甚しおゲヌムの䞖界をナビゲヌトするように、蚭蚈者は可胜な構成の非垞に高レベルのスペヌスをナビゲヌトし、初期構成を取埗しお繰り返し倉曎する必芁がありたす。 蚭蚈の別の偎面-戊闘システム、ゲヌムの䞖界の䞀郚の1぀、戊略のテクノロゞヌツリヌ-を慎重に怜蚎し、この構成を倉曎するこずで改善する方法を芋぀けようずしたす。



蚭蚈者はこのプロセスを「反埩」ずいう甚語を䜿甚しお説明したすが、ここでは「怜玢」ずいう蚀葉の方が適しおいたす。 真実は、デザむンの「反埩」を䜜成するずきに、開発䞭のゲヌムを詊すこずです。 私たちは、珟圚の蚭蚈構成を新しいものに倉える小さな倉曎セットに぀いお合理的な仮定を立おたす。これは、私たちの意芋では、蚭蚈基準によりよく適合したす。



このような「反埩」は、コンピュヌタヌコヌドの「反埩」で通垞発生する線圢倉化ずはたったく異なりたす。 さらに倚くの急なタヌンず匷制リタヌンを䌎う迷路の探玢に䌌おいたす。 倚くの堎合、圌らは私たちを目暙に近づけたすが、倚くの堎合、ゲヌムが圌らから改善したかどうかは明らかではありたせん。 私たちの意芋では、ゲヌムを改善し、予期しない欠陥があったはずの蚭蚈倉曎が刀明するこずがあり、それらをロヌルバックするか、再詊行する必芁がありたす。



ゲヌムデザむンは非垞に耇雑な分野です。 このデザむンは、倚くの鋭いオブゞェクトのある暗い郚屋のようなものです。 亀通量の倚い道路から離れお安党に移動するこずは非垞に困難です。 特にあなたがあたりに速く動く堎合、途䞭でほずんど垞に痛みを䌎う怪我が私たちを埅っおいたす。 そしお、この暗い郚屋を照らすための非垞に倚くのツヌルず、そのようなデザむン怜玢プロセスを実行するための明確に定矩された詳现なテクニックはほずんどありたせん。











この暗い郚屋が存圚するため、「反埩」を実行したす。確認するたで、決定の結果がどうなるかはわかりたせん。 蚀い換えれば、私たちは怜玢䞭です  WDCは、GDC 2004での圌の講挔で、 「゜リュヌション空間での怜玢」ず呌びたした。



したがっお、蚭蚈がパフォヌマンスのボトルネックになり、欠陥の䞻な原因ずなり、ゲヌム開発の最倧のリスク芁因になるこずが非垞に倚くありたす。 数え切れないほどの開発チヌムが、考えられない蚭蚈゜リュヌションによっお手ず足に瞛られ、創造的なプロセスに滑り蟌み、機胜を倉え、タヌゲット垂堎を誀解し、補品品質の問題に぀ながった他の蚭蚈の問題に盎面したした。



蚭蚈実隓に関連するすべおの危険性を考えるず、倚くの出版瀟や倧芏暡な開発者がリスクを避けたいず匷く思っおいるこずは驚くこずではありたせん。 それが、圌らが未知の結果をもたらすかもしれない蚭蚈革新のよく知られたリスクに行かない理由です。 暗い郚屋を探玢するのは危険すぎる。



この態床を倉える方法を芋぀けたいず思いたす。 単にむノベヌションを回避するのではなく、デザむンスキルを向䞊させ、機胜を拡匵し、デザむンむノベヌションをより安党か぀効率的にする匷力なツヌルを䜜成する方法を芋぀けるこずをお勧めしたす。



このシリヌズの蚘事



この蚘事は、 モデリング゜リュヌションに関する䞀連の投皿の最初の蚘事です。これは、゜リュヌションを正匏なモデルに分解するための䞀連のツヌルであり、怜玢に䜿甚しお最も望たしい結果を芋぀けるこずができたす。



意思決定のモデル化ず最適化は、意思決定プロセスを改善し、意思決定ず最適化のさたざたな問題を解決するために、管理、財務、プロゞェクト蚈画などの倚くの分野でよく䜿甚されたす。 これは、可胜な遞択肢の䞭から怜玢するこずで実珟されたす。これは、人が手動で遞択するよりも高速です。



゜リュヌションの朜圚的な利点、モデリング、および最適化のすべおにも関わらず、ゲヌム業界のデザむナヌにずっおはかなり未螏のトピックのようです。 人気のある開発者フォヌラムでのプロのデザむナヌの調査では、少なくずも意思決定モデルに぀いお聞いたのは回答者の25のみであり、実際にそれを䜿甚したのは8だけでした。 Facebookを介しおデザむナヌ間で行われた同様の調査では、回答者の数がほが同じでほが同じ結果が瀺されたした。









モデリング゜リュヌションを正しく䜿甚するず、蚭蚈プロセスの倚くの偎面を倧幅に改善できたす。





この䞀連の蚘事では、3぀のカテゎリすべおの䜿甚䟋に぀いお説明したす。



定矩



「意思決定モデリング」ずは䜕ですか



簡単に蚀えば、それから



意思決定モデリングは、゜リュヌションをシミュレヌトするプロセスであり、その埌の蚈算の怜玢の自動化が行われたす。


ある皮の解を求めるこずから始め、次にこの解を構成するすべおの芁因を遞択し、解を正確に蚘述するモデルにそれらを埋め蟌み、入力倉数のセットず1぀の出力倉数を指定しようずしたす。 次に、可胜な限り最適な出力を䜜成する䞀連の決定倉数たたは入力倉数の最適な゜リュヌションを怜玢したす。



すべおが正しく行われおいる堎合、手動たたは想像で行われるよりもはるかに倚くの可胜な解決策を怜玢できたす。 このシステムをすべおに適甚するこずはできたせんが、䞀郚のタスクではより良い結果を埗るこずができ、それらをより速く蚈算できたす。たた、堎合によっおは他の方法では解決できない問題を解決するこずさえできたす。



このプロセスでは、モデルの正確性を確認する境界ずしお䜿甚される耇数の1぀たたは耇数の条件も瀺したす。 このような条件により、倀の範囲や入力倉数のタむプ、モデルのその他の偎面が制限される堎合がありたす。



モデルを䜜成する理由



Sid Meier's Civilizationをプレむした堎合は、い぀か疑問に思うでしょう。「ちょっず埅っおください。街の開発を始めるための最良の方法は 最初に蚘念碑を建お、次に倉庫を建おる必芁がありたすか たたは、最初に倉庫が必芁ですか たたは、最初に寺院、次に倉庫ですか どの決定を䞋す方がよいですか 誰でもこの質問に答えられたすか」



たた、リアルタむム戊略で戊闘の仕組みを思い出すこずができたす。 RTSの耇数のナニットのパラメヌタヌのバランスを取るこずは、その耇雑さで有名です。 各゜リュヌションをプレむせずにゲヌムの戊いのバランスをずるずいう質問に答えるこずで、バランスの問題の解決を加速できるシステムがあったらどうでしょうか システムに質問できるずしたらどうでしょうか たずえば、「2人のパむクマンず3人の射手を倒すには、䜕人の剣士が必芁ですか」たたは「敵の望楌を倒すための最も安䟡な射手ずカタパルトの組み合わせは䜕ですか」



実際、このようなシステムを䜜成できたす



これらの蚭蚈タスクを正しい方法でモデル化できれば、自動最適化ツヌルを䜿甚しおすべおの可胜な答えを怜玢し、数千回ゲヌムをプレむするこずなく 、基準を満たす最適な答えを芋぀けるこずができたす。



同様の問題の䟋は、シリヌズの今埌の蚘事で解決する䟋です。



SuperTankずいうゲヌムがあるずしたしょう。 SuperTankでは、他のスヌパヌタンクず戊堎で戊う巚倧で玠晎らしいタンクを運転したす。 各戊闘の前に、戊車甚の特定の歊噚の組み合わせを遞択できたす。









機噚に䜿甚できる100クレゞットがありたす。 プレむダヌのスヌパヌタンクは50トンの歊噚を搭茉でき、特殊なハむパワヌ歊噚甚の3぀の「クリティカル」スロットも備えおいたす。



ゲヌムには次の5皮類の歊噚があり、プレヌダヌは各皮類の任意の数量を䜿甚するか、完党に攟棄できたす。









可胜な限り最高のダメヌゞ倀を持぀ためにスヌパヌタンクが必芁だず仮定したす歊噚の速床に関係なく、1秒あたりのダメヌゞが瀺されるず仮定したす。 たた、すべおの歊噚の射皋、発射匟道、粟床、および発射頻床が同じであるず想定しおいたす。぀たり、衚に瀺されおいる倀を陀き、すべお同じです。



さお、マシンガン、ミサむル、レヌザヌなどの数にすばやく答えおください。 スヌパヌタンクに配眮する必芁がありたすか 重量、䟡栌、クリティカルスロットの制限を超えずに、1皮類以䞊の歊噚のどの組み合わせが最も倧きなダメヌゞを䞎えたすか



問題を手動たたは電卓を䜿甚しお解決しおください。



これはできたすか



詊しおみるず、驚くほど難しいこずをすぐに確認しおください。



おそらく、耇雑な数孊の方皋匏を䜿甚しおそれを解決する方法がありたすが、私たちはデザむナヌであり、数孊は私たちのものではありたせん。



たた、答えが他のパラメヌタヌによっおどのように倉化するかを考えおください。 スヌパヌタンクが50トンではなく60トンを収容できる堎合、答えは倉わりたすか たたは、100ロヌンではなく110ロヌンたたは90ロヌンがある堎合はどうなりたすか 最適なギアはどのように倉わりたすか そしお、2぀たたは4぀のクリティカルスロットがある堎合はどうでしょうか。



ここで、䞀連のパラメヌタヌ重量、䟡栌、クリティカルスロットに察しお最倧のダメヌゞを䞎える歊噚のレむアりトを即座に蚈算するシステムがあるずしたす。 テヌブルから歊噚のパラメヌタヌを入力しおから、スヌパヌタンク50トン、100クレゞット、3぀のクリティカルスロットのパラメヌタヌを入力するだけで十分です -最高の装備を手に入れたした。



それは玠晎らしいこずではないでしょうか



このシステムを䜿甚しお、あらゆる皮類の有甚な質問に察する回答を即座に取埗できたす。





これらはすべお、非垞に重芁な蚭蚈䞊の質問であり、蚭蚈者が知りたい答えです。 これらの答えを知るこずは、 SuperTankゲヌムのバランスをずるずきに非垞に圹立ちたす。



ほんの数段萜で、手動で解決するこずは非垞に困難ですが、Microsoft Excelに組み蟌たれたツヌルを䜿甚しお簡単に解決できる問題に぀いお説明したした。



今埌の蚘事では、この䟋の゜リュヌションの実際のモデルを䜜成し、これらすべおの質問に答えたす。



数分で䜜成できるモデルを䜿甚するず、この困難なタスクを解決できるこずがわかりたす。 短期間で、蚭蚈スペヌスを迅速か぀確実に探玢できる匷力なツヌルを䜜成したす。



ロヌドマップ



この䞀連の蚘事では、いく぀かのより耇雑な䟋を瀺し、ツヌルからむンストヌルされたExcelのみを䜿甚しおこれらすべおの䟋を自分で実行できるように、参照スプレッドシヌトを䜜成したす。 これらの䟋には次のものがありたす。





䞀般に、このシリヌズは特定のゲヌムサブシステムで最適なプレヌダヌ戊略を芋぀ける簡単な䟋で構成され、ゲヌムシステムのパラメヌタヌの最適化ず「機胜」セットの組み合わせの最適化を可胜にする決定モデルに進みたす。



これらの各ケヌスで、問題を説明し、Excelでモデル化する方法を瀺し、Excelの組み蟌み゜ルバヌツヌルロシア語版では「Finding Solutions」を䜿甚しお解決したす。 いずれの堎合でも、゜ルバヌや同様のツヌルを䜿甚せずに、より簡単に、より速く、より信頌性の高いものにするこずができたす。 たた、それぞれの䟋に぀いお、スプレッドシヌトを远加しお、ダりンロヌドしお自分でチェックアりトし、結果を再䜜成し、独自のモデルで実隓できるようにしたす。



たた、スプレッドシヌト、高玚蚀語プログラム、その他のいずれであっおも、内郚衚珟は重芁ではないこずを忘れないでください。 重芁なのは、Excelず゜ルバヌ、Java / C ++ / Cなどで䜜業するこずではなく、タスクをモデル化し、それを解決しようずするずいう事実です。



決定モデルを䜿甚する理由



䞀郚の読者は今懐疑的かもしれたせん。 意思決定モデルの構築には倚くの䜜業が必芁ず思われたす。 フォヌカスグルヌプテストずベヌタテストの圢匏でナヌザヌテストを実斜できるのに、なぜこれらすべおの努力が必芁なのですか



そもそも、 モデリング゜リュヌションはすべおのタスクに適甚できるわけではありたせん 。 このような手法を䜿甚しおモデル化するのは耇雑すぎたり、モデル化するのが難しすぎるタスクもありたす。さらに、数倀的にモデル化するこずが困難たたは䞍可胜な倚くの偎面がデザむンにありたすたずえば、審矎的な考慮事項、゚ンタヌテむメントずしおのゲヌムの䟡倀、ゲヌムの「感芚」。 たた、モデリング゜リュヌションでは 、グルヌプテスト、ベヌタテスト、たたは開発䞭のプロゞェクトを毎日プレむする必芁性が完党に排陀されるわけではありたせん 。



しかし、これらすべおを念頭に眮いお、䞀連の蚘事の終わりたでに、゜リュヌションのモデリングず最適化の方法が独自の匷力なツヌルセットを提䟛するこずが明らかになりたす。 他の方法では解決できない倚くの問題を完党たたは郚分的に解決できるほか、他の方法では解決が困難なあらゆる皮類の蚭蚈問題に関する回答や情報を提䟛できたす。



他のツヌルず同様に、そのナヌザヌはその適甚性を決定する必芁がありたす。



意思決定モデルが受け入れられない堎合や面倒な堎合が倚くありたす。 しかし、䞀連の蚘事でわかるように、それらは驚くほど䟿利であり、テスト段階の前であっおも、適切な蚭蚈䞊の決定を䞋し、初期段階でバグを取り陀くほど、蚭蚈システムは耐久性があり、刺激的ですそしお玛れもない。



兞型的なプログラマヌが利甚できるツヌルに぀いお考えおください。 プログラマの䜜業は非垞に耇雑ですが、テスト段階の前でもバグを芋぀けるのに圹立぀倚くのツヌルによっお簡玠化されおいたす。 タむプミスを垞に思い出させるコンパむラヌがありたす。 ゜フトりェアの欠陥を特定する防埡的なプログラミング慣行がありたす。 圌らは他の誰かのコヌドの欠陥を特定したり、悪質なプログラミング慣行を指摘したりするのに圹立぀コヌドレビュヌを行いたす。 さらに、倚くのプロファむリングおよび静的分析ツヌルを䜿甚しお、あらゆる皮類のパフォヌマンスバグやその他の欠陥を取り陀きたす。



しかし、デザむナヌにはそのようなツヌルはありたせん。 私たちの䜜業も耇雑であるず蚀えたすが、「構文゚ラヌを起こしたした」ず蚀うコンパむラヌはありたせん。 プロファむラヌも、デバッグツヌルも、静的分析ツヌルもありたせん。 「コヌド」がないため、コヌドレビュヌを実斜できたせん。 仕様曞ず蚭蚈文曞を䜜成したす。それだけです。 チヌム内でドキュメントず機胜の仕様を亀換し、同僚が良いフィヌドバックを提䟛しおくれるこずを願っおいたすが、ほずんどの堎合、システムが機胜するかどうかを理解するためにシステムをゲヌムに入れる必芁がありたす。



これにより、蚭蚈は非垞にリスクが高く、長く、費甚がかかりたす。



プログラミングの堎合のように、人々は間違いを犯しがちであり、これはプロセスの䞍可欠な郚分です。そのため、自分自身ずプロゞェクトを保護するために、できるだけ倚くの高品質のツヌルが必芁です。



蚭蚈者が蚭蚈スペヌスを探玢するのに圹立぀本栌的な蚭蚈ツヌルを所有するにはただただ遠い。 コンパむラヌ、デバッガヌ、プロファむラヌ、および静的解析ツヌルがプログラミングで行っおきた道をたどる必芁がありたす。 しかし、Cut the Ropeず呌ばれるCut the Ropeバヌゞョンのプレむアビリティテスタヌを含む、いく぀かの特定の゜ルバヌずゲヌムデザむンツヌルの倜明けがすでに芋られたす。PlayForever link ; Yavalathボヌドゲヌムを生成したLudiの抜象的なゲヌムデザむンシステム リンク ; そしお、シティコンク゚ストモバむルゲヌムのバランスをずるための私自身の自動アシスタントEvolver link 。



モデリング゜リュヌションは、このようなレベルのサポヌトにさらに䞀歩螏み蟌んで、自動化ツヌルを䜿甚するデザむナヌの独自のむンテリゞェンスを補完および拡匵するこずを可胜にしたす。 そしお、ツヌルがあるかどうかずいう遞択肢がある堎合、なぜ「持たない」を遞択するのでしょうか



䞻なものはスプレッドシヌトではなく、䞻なものはモデルです



このシリヌズの蚘事は、デザむナヌ、぀たり、アヌト、゜フトりェア、ストヌリヌテリングの䜜成経隓、ボヌドゲヌムの経隓に関係なく、 すべおのデザむナヌを察象ずしおいたす。 したがっお、次のこずを耇雑にせず玄束したす。









あなたがデザむナヌである堎合、この䞀連の蚘事は、コヌドやプログラマヌがコヌドを蚘述する必芁なく、゜リュヌションモデルを自分で䜜成するために必芁なすべおのツヌルを提䟛したす。 プログラマヌである堎合、このシリヌズでは、Java蚀語で独自の゜リュヌションモデルをプログラミングするための非垞に簡単な手順が提䟛されるため、れロから、たたは゜ルバヌずExcelで既に䜿甚されおいるテンプレヌトに基づいお、独自の゜リュヌションモデルを構築できたす。



これらの蚘事は出発点にすぎないので、ここで玹介する抂念を取り入れお、Excelで実装するか、別の最適化ツヌルを遞択するか、高氎準蚀語で独自の゜ルバヌを䜜成するかを自分で遞択できたす。 スプレッドシヌトは、最初は堅固な基盀ですが、そのような意思決定モデルは、ゲヌムアヌキテクチャず統合するよりリッチで耇雑なモデルぞの足がかりになりそうです。



説明



モデリング゜リュヌションに぀いお詳しく説明する前に、いく぀かの説明をする必芁がありたす。 ゜リュヌションのモデリングず最適化は、ゲヌム蚭蚈のための完党なシステムを䜜成するものではありたせん。そのようなこずは蚀いたせん。 それらを蚭蚈プロセスのいく぀かの偎面に圹立぀ツヌルず芋なすず䟿利です。他のツヌルず同様に、倚くの制限がありたす。



知っおおく必芁がある制限の䞀郚を次に瀺したす。













最埌で最も重芁なもの





簡単に蚀えば、モデリング゜リュヌションが有甚であるためには、いく぀かの条件が満たされる必芁がありたす。問題の解を特定の離散モデルに埋め蟌み、解の結果を単䞀の倀ずしお衚珟できる必芁がありたす。蚀い換えるず、゜リュヌションモデルを䜿甚しお、1぀の出力倀で入力デヌタの有限セットを衚珟できるようにする必芁がありたす。これにより、出力倀を最小化たたは最倧化するず、゜リュヌションが改善されたす。



このモデルに組み蟌むこずのできない䞻芳的な偎面、たずえば審矎的な偎面や䜿いやすさ/再生可胜性の偎面がある堎合は、それらを決定モデルから明確に分離するか、最初のパスずしお決定モデリングを䜿甚するか、単に決定モデリングを完党に攟棄する必芁がありたす。



スプレッドシヌトで゜リュヌションをモデル化するには、モデルの耇雑さを制限する必芁もありたす。ゲヌムが非垞に耇雑なものを実行する堎合、Excelでこの耇雑さを再珟できない堎合がありたす。ただし、これはExcelで䜜成できるモデルの胜力の制限であり、意思決定モデル自䜓の制限ではないこずに泚意しおください。独自のゲヌム゚ンゞンでは、はるかに匷力な゜ルバヌを構築できたす。このシリヌズの蚘事が、たさにそのためのむンスピレヌションになるこずを願っおいたす。



䞀方、これらの制限がすべお、意思決定モデリングが圹に立たなくなるこずはほずんどありたせん。タスクが゜リュヌションモデルで完党に最適化するには耇雑すぎる堎合でも、このモデルを䜿甚するず、正しい構成にはるかに近い倚くの蚭蚈コンポヌネントを遞択したり、開発の初期段階でも倚くの基本的なタスクを芋぀けおデバッグしたりできたす。



そしお、タスクが耇雑すぎるため、たたは審矎的なアプロヌチやその他の䞻芳的な人的芁因を必芁ずするために、゜リュヌションモデルが問題に察する最適な゜リュヌションを芋぀けるこずができない堎合でも、デッドロックを排陀し、そうでなければ問題の耇雑さを軜枛する゜リュヌションの境界を狭めるのに圹立ちたす。



最埌に、意思決定モデリングを䜿甚しないず決定した堎合でも、スプレッドシヌトの最適化や独自の゜ルバヌの䜜成を詊みないでください。意思決定モデリングの理解は、蚭蚈䞊の意思決定に関する考え方を倉えるのに圹立ちたす。



この䞀連の蚘事は研究です。ゲヌムデザむンタスクの倚くの䟋を芋お、匷力なデザむンツヌルによっお提䟛されるモデリングおよび最適化の方法を探りたす。あなたは懐疑的であるか、最適化をたったく䜿甚しないこずを決定するかもしれたせんが、私たちの研究に埓っお、どのようにシリヌズを終了するかを芋぀けおください。



おわりに



最埌に、デザむンを正しく䜜成したす。



倚くの蚭蚈質問は䞻芳的なものであり、「正しい」たたは「間違った」答えはありたせん。しかし、堎合によっおはそうです。そしお、そのような堎合、正しい答えを埗る方法を知るか、少なくずも「正しい」答えの定矩に取り組み、その解決策を探す方法を理解する必芁がありたす。



゜リュヌションのモデリングず最適化は、倚くの堎合に圹立぀匷力なツヌルです。そのようなツヌルは、各デザむナヌのツヌルの䞭にあるべきだず思いたす。それらに適応するず、これらのツヌルはゲヌムデザむンの暗宀のより高速で信頌性の高い研究で倧きな未実珟の可胜性を持っおいるこずに気付くでしょう。䞀連の蚘事で、その甚途がいく぀あるかを瀺したす。



パヌト2.シミュレヌションの最適化ず展開の基本



この蚘事のスプレッドシヌトはこちらからダりンロヌドできたす。



゜リュヌションモデルの準備



゜リュヌションモデルに぀いお説明し、それらがどのように圹立぀かを説明し、それらの制限の䞀郚をリストしたので、簡単な䟋で基本的な抂念を説明したす。



しかし、これを行う前に、構造ず圢匏に関するいく぀かの芏則を導入する必芁がありたす。コヌドず同様、泚意しないず、スプレッドシヌトはすぐに混乱に陥りたす。



簡単に蚀えば、スプレッドシヌトには4皮類のセルがありたす。





オプティマむザヌMicrosoft Excelに組み蟌たれた゜ルバヌツヌル「゜リュヌションファむンダヌ」を実行するず、指定したタヌゲットセルが単玔に衚瀺され、決定倉数を倉曎しようずしたすが、蚭定した制限内でたたは最小化できたす。このタヌゲットセル指定したものの倀を最倧化したす。



゜ルバヌは、内郚で行われる蚈算、たたは決定セルず目暙セルの間の接続に぀いおほずんど䜕も知りたせん。圌は、利甚可胜ないく぀かのアルゎリズムのいずれかを実行するだけで、決定セルの可胜な倀を怜玢するこずにより、タヌゲットセルの倀を最小化たたは最倧化しようずしたす。このようなアルゎリズム「Simplex LP」、「GRG Nonlinear」、「Evolutionary」は、ブルヌトフォヌスによっお倉数゜リュヌションのすべおの可胜なオプションを探玢するよりもはるかにスマヌトであり、非垞に頻繁に驚くべき効率で深刻な問題の答えを芋぀けるように蚭蚈されおいたす。



たずえば、Tootsie Popの真ん䞭に到達するためになめる必芁がある回数を知りたい堎合、同様のスプレッドシヌトを䜿甚できたす。









Excel゜ルバヌに、タヌゲットセル「Tootsie Popに残る質量」を最小化するように呜什するこずで、この問題を解決するように䟝頌できたす。圌は、実隓をすぐに䜿甚しお、゜リュヌションの黄色のセルの倀がそのような結果を䞎えるこずを決定したす 「Tootsie Popの真ん䞭になめるために䜕回なめるか」は68です。



もちろん、これを行うのは少しばかげおいたす。問題の声明から、答えが17 / 0.25 = 68になるこずが明らかだからです。オプティマむザヌを実行しお、単玔な算術で解決できる問題を解決するこずは意味がありたせん。



しかし、実際には、私たちが盎面しおいる問題のほずんどは、単玔な数孊的解決策を持っおいたせん。それらには、非自明な方法で目暙に぀ながる倚くの決定倉数があり、決定倉数ず出力のマッチングは、方皋匏の手動の数孊蚈算には耇雑すぎたすそしお、このシリヌズでは、耇雑な数孊を慎重に避けたす。



タスクの説明に焊点を圓お、すべおのハヌドワヌクは゜ルバヌに任せたす。



䟋1皎金



最初の実際の意思決定モデルでは、最適な皎率を決定する䟋を瀺したす。誰も皎金が奜きではありたせんが、この堎合は支払いはしたせんが、皎金は受け取りたす。これがあなたの苊痛を枛らすこずを願っおいたす。Sid MeierのCivilizationに



䌌た4X戊略を䜜成しおいるず想像しおください。芏暡に応じお、ある皋床の䞍満を持぀郜垂を䜜成しおいたす。 「䞍満」の䜏民は基本的に協力する傟向がなく、私たちは圌らから収入を受け取りたせん。各郜垂の皎率を倉曎するこずで郜垂からお金を埗るようにするこずもできたすが、皎率を䞊げるず、䞍満のレベルは指数関数的に増加するため、非垞に高い皎は非生産的になりたす。



たた、0から50の倀の範囲で10の増分で皎率を瀺すこずができるずしたす。以䞋は、Master of Orion 2の叀兞的な4X戊略の同様のシステムを瀺すスクリヌンショットです。









蚭蚈者ずしお、私たちは簡単な質問をしたいず思いたす䞀般的な堎合の最適な皎率は䜕ですか



有効な皎率は6぀しかないため、これは簡単な䜜業です。 6぀の倀のそれぞれを手動でテストし、最倧の収入をもたらす倀を芋぀けお、問題を解決したず考えおください。



実際、Tootsie Popの䟋のように、この問題を解決するための数孊方皋匏を芋぀けるこずはおそらく可胜ですが、逆効果になりたす。方皋匏を䜿甚しお解決できないより耇雑なモデルに成長するようにこのモデルを準備しおいるためですさらに、このシリヌズの蚘事では数孊を避けおいたす。



問題を次のように説明するこずから始めたしょう。





簡単ですね。



これに぀いおは、蚘事に添付されおいるスプレッドシヌトで次のように説明したす。









黄色の決定ボックスTax Level0-5を皎率を瀺す間接的な方法ずしお蚭定しおいるこずに気付くかもしれたせん。皎率を決定セルで盎接指定する代わりに、皎率蚈算セルは決定セルから皎レベル番号を取埗し、10を乗算したす。これを間接的に行う論理的な理由があり、すぐにそれを芋るでしょう。



これで、皎レベルのすべおの可胜な倀を実隓しお眮き換えるこずができたす。Tax Levelセルに0〜5の各番号を入力するだけで、次の情報を取埗できたす。









ご芧のずおり、最適な皎率は30です。これは、18単䜍の通貚を提䟛するこずで皎収を最倧化したす。



システムを自動化したしょう



これは確かに玠晎らしいこずですが、6぀以䞊の遞択肢がある堎合はどうでしょうか。䜕癟もの皎率が考えられる堎合、たたは他の決定倉数を倉曎する必芁がある堎合はどうなりたすかすべおが耇雑になり、倀を手動でテストできなくなりたす。



埌述するように、これはたさに゜ルバヌの䜿甚目的です。



最初に、セルのTax Levelの倀をれロにリセットしたす。次に、Excelの[デヌタ]タブに移動し、リボンの右偎の[分析]セクションにある[゜ルバヌ]ボタン「゜リュヌションの怜玢」を確認したす。









衚瀺されない堎合は、[Excelオプション]に移動し、[アドむン]カテゎリを遞択し、[管理]ドロップダりンリストで[Excelアドむン]が遞択されおいるこずを確認したす。 、[Go]をクリックしお、Solver Add-inがチェックされおいるこずを確認したす。



[゜ルバヌ]ボタンをクリックするず、同様のダむアログボックスが衚瀺されたす。









次に、[゜ルバヌ]ダむアログボックスの蚭定に関連するすべおの手順を芋おみたしょう。



[目的の蚭定][目的関数の最適化]フィヌルドで、最適化する必芁があるものを瀺したす。この堎合、できるだけ倚くの皎収を埗ようずしおいるので、皎収を衚す目暙のオレンゞ色のボックスを遞択し、ラゞオボタンのリストで[ToMax]をクリックしたす。



「倉数セルを倉曎する」セクションで、「゜リュヌション怜玢」で蚈算するセルを遞択したす。最適な皎率を決定する必芁があるため、黄色の゜リュヌションボックスを遞択したすTax Level0-5。すべおが正垞に機胜する堎合、結果ずしおこのセルには30の皎率に察応する倀3が割り圓おられたす。この最適性は手動蚈算で既に決定されおいたす。



最埌に、いく぀かの制限を远加する必芁がありたす。実際、制玄は゜リュヌションモデルのセルの前提条件であり、Excel゜ルバヌは指定された制玄を満たす゜リュヌションのみに焊点を合わせたす。このような制限により、特定のセル通垞は決定セルず蚈算セルを指定された最小倀および/たたは最倧倀に制限したり、゜ルバヌに敎数たたはバむナリ倉数0たたは1ずしお凊理させるこずができたす。制玄は、制限される正しいモデルを䜜成するために非垞に圹立ちたす。



゜ルバヌには、決定セルの境界、぀たり各セルの最小倀ず最倧倀を決定するための少なくずもいく぀かの制限が必芁です。制限を远加するには、右偎の[远加]ボタンをクリックする必芁があり、次のダむアログボックスが開きたす。









2぀の制玄を远加したす。1぀はTax Level゜リュヌションセルが条件> = 0を満たすように、もう1぀は゜リュヌションセルが<= 5になるようにしたす。次に、Solving Methodリストで、Evolutionary「Evolutionary」解決策を怜玢 "しお、解決をクリックしたす"解決策を芋぀ける "。



箄30秒間䜜業した埌、゜ルバヌは同様の答えを返したす。









ああ、問題がありたした。゜ルバヌは正しい収入を受け取りたしたが、皎率が間違っおいたす。プレヌダヌは10の増分でのみ皎を蚭定できたすが、゜ルバヌは明らかに皎率を蚭定したすが、これはプレヌダヌが行うこずはできたせん。



皎率セルの倀を敎数に制限するこずで問題を解決できたす。0、1、2、3、4、たたは5にのみ等しくできたすが、䞭間倀はありたせん。



幞いなこずに、゜ルバヌではこれは非垞に簡単に実珟できたす。゜ルバヌを開き、[远加]ボタンをクリックし、[皎レベル]゜リュヌションセルを遞択しおから、䞭倮のドロップダりンリストでint制限を遞択したす。









゜ルバヌを再床実行しお、以䞋を取埗したす。









パヌフェクト少しの努力で、゜ルバヌで正解が埗られたした。すぐにわかるように、タスクの芏暡が拡倧するに぀れお、ツヌルによっお実行される䜜業量は、セットアップに費やされた時間を倧幅に䞊回りたす。



成長する郜垂



郜垂モデルを少し耇雑にしお、タスクを拡倧したしょう。



4X戊略では、郜垂たたは惑星、コロニヌ、たたは他の居䜏ナニットが時間ずずもに成長したす。15䞇人150䞇人の垂民から始たり、1200䞇人の人口にたで増加し、郜垂は1タヌンあたり8の䞀定の増加があるず仮定したす。これで、スプレッドシヌトは次のようになりたす。









テヌブルの新しい埌続の各行は、ゲヌムの1぀のコヌスを説明したす。



たた、䞍満の基本レベルの蚈算を倉曎したした。 珟圚は、基本人口レベルの1秒100䞇単䜍ずしお切り捚おられおいたす。 このため、郜垂がサむズ4に成長するたで基本的な䞍満は0になり、その埌は郜垂のサむズに比䟋しお増加したす。



前ず同様に、皎レベルの倀を倉曎するこずにより、皎レベルを手動で詊すこずができたす。 0、102、190、222、144、65通貚単䜍の皎収を受け取りたす。各皎レベルは0〜50です。



たた、この問題を゜ルバヌに解決させるこずができたす。 圌は、最適な皎率が以前ず同じ30であるずすぐに刀断し、222通貚単䜍の収入を埗たす。 ゜ルバヌダむアログは次のようになりたす。











倉動皎率



しかし、もちろん、プレヌダヌはこの方法でプレむしたせん。 シミュレヌトされた「郜垂」は1぀の皎率を蚭定し、ゲヌムの動きごずに同じ皎率を維持したす。 しかし、実際のプレヌダヌはい぀でも皎率を蚭定でき、郜垂が成長し、状況が倉化しおいるため、倚くの堎合、皎率を調敎する必芁がありたす。



単䞀の最適な皎率を決定できるだけでなく、各移動で最適な倀を蚈算できるずしたら玠晎らしいず思いたせんか



圌女は、プレヌダヌがどのように皎金を調敎するのが最善かを即座にお知らせしたす。



そしお、これができるこずがわかりたした ゜リュヌションモデルを既に適切な方法でセットアップしおいるため、非垞に簡単に実装できたす。



最倧の違いは、以䞋に瀺すように、皎レベル決定セル0〜5を削陀しお、皎レベルセルの列党䜓に眮き換える必芁があるこずです。









゜ルバヌに単䞀のセルを最適化するように匷制する代わりに、Tax Level列党䜓を最適化するように圌に呜じたす。 これが[゜ルバヌ]ダむアログの倖芳です。以前ずほずんど同じであるこずがわかりたす。1぀のセルの代わりに、倉数ず制限が[課皎レベル]列のセルの範囲党䜓を衚したす。









゜ルバヌは、皎率の倉曎が結果を倉えるこずを本圓に蚌明しおいたす-环積収入は珟圚232通貚単䜍です。 同じ皎率ず比范するず、成長率はわずか5232ナニットに察しお222ですが、䞀郚のプレむダヌがそれを達成できるこずを知っおいるため、それでも重芁です。



゜ルバヌが受け取った゜リュヌションを詳しく芋るず、サむズ1の郜垂には䞍満を生じるほどの人がいないため、50の皎率で始たるこずがわかりたす。 郜垂の成長過皋で、このツヌルは各タヌンの皎率を20から30の範囲で倉曎したす。どちらがより倚くの収入をもたらすかによっお異なりたす。



この䟋のスプレッドシヌトはここからダりンロヌドできたす 。 その䞭で、この䟋の3぀の段階はスプレッドシヌトの別々のシヌトに分割されおいたす恒久的な人口を持぀郜垂に察する同じ皎、成長する郜垂に察する同じ皎、成長する郜垂に察する可倉皎率。



おわりに



私たちが芋぀けた解決策は興味深いものを瀺しおいたすゲヌムシミュレヌタヌの離散的な性質は、1぀たたは2぀の離散的な満足状態を持぀こずができる離散的な「垂民」ずしお数癟䞇人の任意のグルヌプを衚し、特城的な特城をモデルに導入したす。 あるレベルのゲヌム自䜓は、アクセシビリティずプレむアビリティのためにそのような離散化を必芁ずしたすが、賢くplayersなプレむダヌは、この人工的な断片化を利甚しお、各タヌンに皎レベルを気にしたくないプレむダヌよりも有利になりたす。



この状況は興味深い質問に぀ながりたす。これは私たちが望んでいるこずですか プレむダヌの仕組みは、圌らがあらゆる動きで皎レベルのミクロ管理に埓事するこずを必芁ずしたすか そしお、パワヌゲヌマヌがこの方法でシステムに勝぀こずができるようにしたいず思いたすか このようなトリックは5のゲむンず䞀臎したすか



これらの質問には答えられたせん。 最終的に、 あなたは蚭蚈目暙を蚭定する蚭蚈者なので、このレベルのシステム操䜜がゲヌムに蚭定した目暙を満たすかどうかはあなた次第です。



もちろん、このモデルは単なるフレヌムです。 実際の4X戊略では、プレむダヌは郜垂の開発方法、建物の建蚭方法、郜垂の成長、満足床、皎収、生産性に圱響するその他の倉曎に぀いお、あらゆる皮類の決定を䞋すこずができたす。



シリヌズの今埌の蚘事では、 マスタヌオブオリオン2に䌌たゲヌムで、惑星コロニヌ党䜓の同様の、しかしはるかに耇雑なモデルを構築したす。 この䟋は、成長や生産性などのこれらすべおのパラメヌタヌに圱響を䞎える決定を各タヌンで行うこずができるため、より掗緎されたものになりたす。぀たり、各決定は埌続の決定に圱響を及がす結果をもたらしたす。 ただし、゜ルバヌツヌルの進化的オプティマむザヌはこのタスクに察凊できるず確信しおいたす。



次の蚘事では、玹介蚘事の䟋で玄束を果たし、SuperTankの歊噚の賌入を最適化したす。



All Articles