Factorioの基本ゲームプレイは、機械とロジスティクスを使って資源を収穫し、ますます複雑なアイテムに変換する自動化を中心に行われます。2024年にリリースされたSpace Age拡張は、アイテムとレシピを5つのティアに分けるQualityメカニズムを追加しました:普通(⚀)、珍しい(⚁)、レア(⚂)、エピック(⚃)、伝説的(⚄)。クラフトマシンに設置された品質モジュールは、出力が品質ティアを1段階上がる確率Qに影響を与えます;各段階のアップグレードごとにさらに10%の確率が加わります。4つのモジュールスロットがある場合、普通から直接伝説的へジャンプする最高可能確率はわずか0.0248%ですが、1ステップで達成可能な最高のアップグレード確率は24.8%です(主要ソース)。

Factorioにおける24.8%の単ステップ品質アップグレード確率を示す図
4つの品質モジュールを使用して普通から伝説的品質への最大単ステップアップグレード確率を示しますexyr.org

この画像は、記事の主張である最高到達可能な単ステップアップグレード確率が24.8%であることを裏付けており、クラフトレシピにおける品質遷移確率の計算に使用されます。

リサイクラーはアイテムの材料の25%を返すため、プレイヤーは品質モジュールを使ってアイテムを繰り返し製造・リサイクルするループを構築し、徐々に高いグレードへの分布をシフトさせることができます。著者は、このプロセスを材料の確率の行ベクトルと品質遷移行列T_quality(q)の積で表せることを示しています。たとえば、鉱石採掘(品質確率7.5%)、プレートの製錬(5%)、パイプのクラフト(10%)などのステップチェーンでは、連続した行列乗算によって最終製品の分布が得られ、おおよそ普通が79%、珍しいが17%、レアが3%、エピックが0.45%、伝説的が0.07%のパイプとなります(主要ソース)。純粋なリサイクルループ(「洗浄」)では、対象ティアの定常状態抽出確率は、リサイクルフィルター、1/4の生存係数、品質遷移を組み合わせたLの無限和∑ Lⁱで表されます;各項が指数関数的に減少するため級数は収束し、総力シミュレーションではなく線形代数で正確な解を求めることができます(主要ソース)。

モジュール数ごとの品質遷移確率を示すFactorioウィキのスクリーンショット
品質モジュールを使用したクラフトでの品質ジャンプをモデル化するために使用される確率行列を示しますexyr.org

この文章は、採掘、製錬、パイプクラフトなどのチェーンにおいて、品質プロセスを行ベクトルと品質遷移行列T_quality(q)の積で表す記事の説明に一致します。

この数学を実際のファクトリー設計に活かすため、コミュニティはソルバーベースのツールを開発しました。FactorioQualityOptimizerリポジトリには、コスト関数を受け取り、線形ソルバーを使って伝説的出力あたりの入力量または必要なモジュール数を最小化するPythonスクリプトが含まれています。たとえば、通常の鉄プレートから2つの生産性/2つの品質モジュールの構成で伝説的ギアホイールを製造する場合、伝説的ギア1個あたり約79.9枚のプレートが必要ですが、コストをモジュール数を減らす方に切り替えると、モジュール数は27.1に減少しますが、ギア1個あたりのプレート数は84.1枚に増加します(サポート‑1)。Upcycleウェブアプリは、同じ種類の線形ソルバー最適化のためのグラフィカルインターフェースを提供し、ユーザーは出力アイテムを指定し、コスト関数(建物、モジュール、リソースの最小化など)を調整し、スピードビーコンの追加やレシピのホワイトリストなどのトレードオフを探ることができます。このアプリは、スピードモジュールを少量追加することで低い品質レベルでも建物数を大幅に削減できることを強調していますが、純粋なスピードは伝説的あたりの入力効率を悪化させます(サポート‑2。

Factorio品質最適化のためのUpcycleウェブアプリインターフェースのスクリーンショット
線形ソルビングを使用して伝説的出力の入力またはモジュール数を最小化できるグラフィカルツールを表示しますexyr.org

この記事で言及されているコミュニティが構築したソルバーベースのツールに対応しており、具体的には線形ソルバー最適化のためのグラフィカルインターフェースを提供するUpcycleウェブアプリです。