2025年12月20日土曜日

MCP サーバとNSPソルバ

 

MCPとは?

MCPで変わるAIエージェント開発 #LLM - Qiita

です。

MCPサーバーになってみた #TypeScript - Qiita

の記事が面白いと思います。AIモデリングは、色々なアプローチがあるのですが、「ここはどうする?」を人間に聞くのは、理にかなっていると思います。


NSPソルバをMCPサーバから呼び出される方法もアリかな?と思います。そうなると、NSPソルバは、数ある部品の一つに過ぎなくなります。スケジュールナースというGUIを一体化した括りではなく、NSPソルバ単体で機能する一つの部品という位置づけになります。そちらの方が、需要があるかもしれません。そのような部品があれば、NSP分野で世界最高のソルバが一つあれば十分です。全世界の汎用NSPを解けるのですから。これまでのベンチマークテスト、Scheduling Benchmarks INRC1(International Nurse Rostering Competition1)  INRC2(International Nurse Scheduling Competition2) 全ての問題を世界最高スピードで、解けるソルバが一つあればそれで十分です。他は要りません。


このアイデアをCopilotに聞いてみました。


面白いテーマですね。MCPサーバからNSPソルバを呼び出す設計は、数値最適化やシミュレーション環境を分散的に扱う上で有効なアプローチになり得ます。いくつかの観点からアイデアを整理してみます。


🔑 実装アイデアのポイント

1. アーキテクチャ設計

  • MCPサーバ側

    • クライアントからのリクエストを受け付け、問題定義(数式モデル、制約、初期値など)を標準化されたフォーマットに変換。
    • NSPソルバ呼び出し用のAPIラッパを用意して、非同期処理やジョブ管理を行う。
  • NSPソルバ側

    • MCPサーバから渡された問題を解釈し、最適化アルゴリズム(Newton法、補助問題法、MIPベースの近似など)を実行。
    • 結果(解ベクトル、収束情報、ログ)をMCPサーバに返却。

2. インターフェース設計

  • 通信方式

    • gRPCやREST APIを利用して、問題定義と解をやり取り。
    • JSONやProtocol Buffersでモデルを表現すると拡張性が高い。
  • 問題定義の抽象化

    • MCPサーバは「モデル記述言語」を持ち、NSPソルバに渡す際に標準化。
    • 例: LP/MIP形式、あるいはKKT条件を満たす形式に変換。

3. 実装戦略

  • モジュール分離

    • MCPサーバは「問題管理・スケジューリング」に特化し、NSPソルバは「数値計算」に集中。
    • ソルバを複数種類(LP/MIP、非線形、確率的)用意して切り替え可能にする。
  • 拡張性

    • 新しいソルバを追加する際は、MCPサーバ側のインターフェースに準拠するだけで利用可能。
    • クラウド環境(Azure BatchやKubernetes)でスケールアウト可能。

4. 技術的課題

  • 性能: ネットワーク越しの呼び出しなので、ソルバの計算時間+通信オーバーヘッドを考慮。
  • エラー処理: ソルバ側で収束失敗や数値不安定が起きた場合のハンドリング。
  • セキュリティ: 外部ソルバ呼び出し時の認証・認可、データ保護。

💡 実装イメージ例

Client → MCP Server → NSP Solver
   |         |             |
   |  問題定義送信        |
   |--------------------->|
   |         |   解探索   |
   |         |<-----------|
   |   解結果返却         |
   |<---------------------|

✨ まとめ

  • MCPサーバを「問題管理・分配のハブ」として設計し、NSPソルバを「計算エンジン」として分離するのが基本方針。
  • 標準化されたインターフェース(gRPC/REST + JSON/Protobuf)を用いることで、ソルバの差し替えや拡張が容易になる。
  • 実際の実装では、通信オーバーヘッドや収束失敗時のリカバリ戦略が重要課題。

孝幸さんはLP/MIPソルバやヒューリスティック手法にも詳しいので、例えば MCPサーバ側で「初期解生成(Feasibility PumpやRINS)」を行い、NSPソルバに渡す というハイブリッド設計も面白いと思います。

👉 この方向性で考えるなら、まず「どの問題クラスを対象にするか(非線形補題?MIP近似?)」を決めるのが良さそうですが、対象問題はどんなものを想定されていますか?


⇒MIPソルバと誤解している雰囲気があるので、NSPソルバの定義を示しました。

なるほど、ありがとうございます!「NSPソルバ」が Nurse Scheduling Problem(看護師シフト最適化問題)専用ソルバであることを前提に、MCPサーバから呼び出す設計アイデアを整理し直しますね。


🏥 Nurse Scheduling Problem (NSP) 専用ソルバをMCPサーバから呼び出す設計

1. アーキテクチャの役割分担

  • MCPサーバ

    • ユーザーや病院システムからのリクエストを受け付ける「ハブ」。
    • 問題定義(勤務希望、制約条件、シフト枠、労働規則など)を標準フォーマットに変換。
    • NSPソルバへの呼び出しを管理(ジョブ投入、並列処理、結果収集)。
    • 結果を可視化・レポート化して利用者に返す。
  • NSPソルバ

    • MCPサーバから渡された問題を解釈し、最適化アルゴリズムを実行。
    • 解法例:
      • MIP/CPベース(整数計画法、制約プログラミング)
      • ヒューリスティック(Feasibility Pump、RINS、ダイビング)
      • メタヒューリスティック(遺伝的アルゴリズム、局所探索)
    • 解(シフト表)と評価指標(公平性、勤務規則遵守度、ペナルティ値)を返却。

2. インターフェース設計

  • 通信方式

    • gRPCやREST APIでMCPサーバとNSPソルバを接続。
    • JSON/Protobufで「勤務希望」「制約」「期間」「人数」などを渡す。
  • 問題定義の抽象化

    • MCPサーバは「勤務表モデル」を持ち、ソルバに渡す際に標準化。
    • 例:
      {
        "nurses": ["A","B","C"],
        "days": 7,
        "shifts": ["Day","Night"],
        "constraints": {
          "max_consecutive_nights": 2,
          "min_rest_hours": 8
        },
        "preferences": {
          "A": {"Day":3,"Night":1},
          "B": {"Day":2,"Night":2}
        }
      }
      

3. 実装戦略

  • モジュール分離
    • MCPサーバは「問題管理・スケジューリング」に特化。
    • NSPソルバは「数値計算」に集中。
  • 拡張性
    • ソルバを差し替え可能に(MIP版、ヒューリスティック版など)。
    • クラウド環境で複数ソルバを並列実行し、最良解を選択。

4. 技術的課題

  • 性能: NSPはNP困難なので、大規模病院では計算時間が課題。ヒューリスティックや近似解法を併用。
  • 公平性: 数学的最適解だけでなく「看護師の満足度」や「勤務希望」を考慮する必要あり。
  • 運用性: 解が出ても「人事部が納得できる説明可能性」が重要。ソルバは「なぜこのシフトになったか」を説明できる仕組みが望ましい。

✨ まとめ

  • MCPサーバを「問題管理・分配のハブ」として設計し、NSPソルバを「シフト最適化エンジン」として分離するのが基本方針。
  • 標準化されたインターフェースで、制約や希望を柔軟に渡せるようにする。
  • 大規模問題ではMIP+ヒューリスティックのハイブリッド設計が有効。

孝幸さんはLP/MIPソルバやヒューリスティックに強いので、例えば MCPサーバ側で初期解生成(Feasibility PumpやRINS)を行い、NSPソルバに渡す という二段構えも面白いと思います。

👉 ご質問ですが、このNSPソルバは「病院全体の大規模スケジューリング」を想定されていますか?それとも「小規模病棟単位で高速に回す」用途でしょうか。

素晴らしいビジョンですね ✨
「世界最高のNSPソルバ」を汎用エンジンとして不特定多数のユーザに供給するなら、単なるアルゴリズム設計に留まらず エコシステム全体の設計 が重要になります。以下に整理してみます。


🌍 世界最高のNSPソルバを目指すための設計要点

1. 汎用性と拡張性

  • 多様な病院・国の規則対応

    • 労働基準法、看護師協会ガイドライン、病院独自ルールなどを柔軟にモデリング可能にする。
    • 制約を「プラグイン形式」で追加できる仕組みが理想。
  • 多言語・多文化対応

    • MCPサーバ側でUIやAPIを多言語化。
    • ソルバは「制約モデル」を抽象化しておけば、文化的差異にも対応可能。

2. アルゴリズム戦略

  • ハイブリッド解法

    • 大規模問題ではMIP/CPソルバ+ヒューリスティック(Feasibility Pump、RINS、ダイビング)を組み合わせる。
    • 小規模問題では高速な確定解法を優先。
  • クラウドスケーリング

    • KubernetesやAzure Batchで並列実行し、複数アルゴリズムを同時に走らせて最良解を選択。
    • 「ソルバ競合戦略」=複数ソルバを同時に走らせ、最良解を返す。

3. ユーザ体験 (UX)

  • 説明可能性 (Explainability)

    • 「なぜこのシフトになったか」を説明できる機能。
    • 例: 「Aさんは連続夜勤を避ける希望があり、規則上も最大2回までなのでこの配置になりました。」
  • インタラクティブ性

    • MCPサーバ側で「解の修正」や「再最適化」を簡単に行える。
    • ユーザが「この勤務は変更したい」と指定すると、ソルバが再計算。

4. 技術的基盤

  • API設計

    • REST/gRPCで「問題定義」「解」「評価」をやり取り。
    • JSON/Protobufで標準化された勤務表モデルを定義。
  • セキュリティ・プライバシー

    • 医療データを扱うため、暗号化・認証・アクセス制御は必須。
    • GDPRや日本の個人情報保護法に準拠。

5. 差別化ポイント

  • 世界最高を目指すなら
    • 単なる最適化性能だけでなく「公平性」「説明可能性」「柔軟性」で差別化。
    • 例: 「最適解+看護師満足度指標」を同時に返す。
    • 「ブラックボックス」ではなく「ホワイトボックス型ソルバ」として信頼性を確保。

✨ まとめ

  • MCPサーバは「汎用インターフェース+制約管理」、NSPソルバは「最適化エンジン」として分離。
  • 世界最高を目指すなら、性能+公平性+説明可能性+拡張性を同時に満たす必要がある。
  • クラウドスケーリングとハイブリッド解法で「どんな病院でも使える」汎用エンジンを構築可能。

孝幸さんの強み(MIP/ヒューリスティックの深い知識)を活かすなら、**「ソルバ競合戦略」+「初期解生成の工夫」**が大きな武器になります。

👉 次のステップとしては、まず「制約モデルの標準仕様」を定義するのが良さそうです。例えば「勤務希望」「法的制約」「病院独自ルール」をどう抽象化するか。

ご興味は「アルゴリズム設計の深掘り」から始めますか?それとも「API/インターフェース仕様の設計」から進めますか?


2025年12月17日水曜日

Q. タスク予定についてEditしたことがないのですが、修正可能なものなのかどうか?

 Ans.

タスク予定も、シフト予定と同様に編集可能です。
下図において、殆どの背景色が灰色なのは、シフトラベルが灰色(その他シフト)が置かれていることを示しています。なので、下の整形のタスクは、違反であることが分かります。


反対に、上から2番目は、ブランクになっていますが、対応シフトは、以下のようになっており、タスクが配置可能なシフトラベルが置かれています。


なので、タスク予定も、以下のように配置可能です。


つまりブランクの予定のところだけ、タスクを配置することが出来ます。

なので、シフトから配置すれば、タスクを置ける箇所は自ずと明らかになります。

本来は、先月部なので、先月解を正しく読み込みすれば足りますが、何らかの理由によって先月解部をEditする必要がある場合は、

シフト予定とタスク予定の両方をメンテナンスする必要がある

ということに注意してください。

https://www.nurse-scheduling-software.com/japanese/publications/On-call_and_duty_rostering_for_doctors.pdf

2025年12月16日火曜日

Q.医師分のスケジュールナースに予想外のエラー表示

 1月分の医師の宿日直の予定入力を2名分のみ終了した時点で

求解してみたところ、

予定入力タスク制約.xx 2026-01-01 0  が満足していません。さらに解析します..

と表示され、解を得ることができませんでした。

今回の制約開始日は、1月5日、制約終了日は2月1日なので予想外のメッセージで、

どこが原因になっているのか不明です。修正の仕方について教えていただけないでしょうか。


Ans.
xxさんの先月勤務が、シフト予定とタスク予定で矛盾しています。

シフト予定

タスク予定




タスクが可能なシフトは、以下フェーズ定義で定義されたシフトのみであることにご注意ください。上のシフトは、下では定義されていないので、タスクを定義することは出来ません。

とりあえず、タスクの方が正しいとして、当該シフト予定をブランクにしてみた修正プロジェクトを添付します。

以上ですが、疑問点が残る場合は、ZOOMで説明いたします。
よろしくお願いします。

2025年12月11日木曜日

cupdlpxのソリューション(2vector)をCOPTのソリューション(4vector)にセットする方法

cupdlpxで計算させると時々crossoverさせたくなります。そこで、COPTで計算させることにします。しかし、折角近くまで来ているのにまた最初から計算させるのは、勿体ないです。(COPTは、CrossoverAPIを備えています。)そこで、cuplpxの2vector solutionをCOPTの4vector solutionに変換する方法をcopilotに聞きました。

C++コードまで示してくれたのですが、Desnse行列になっているので、Sparse行列用に手直しする必要があります。また、COPTのslacks=b-Axとなっていますが、実際にCOPTが返してくる値をみると、slacks=Axとなっていました。マニュアルを見てもこの辺のことは書いていないのですが、これも修正する必要があります。(それはともかく、CopilotにOSI実装を相談した覚えはないのですが..)



🔎 背景整理

  • COPT の LP/MIP インターフェース(例えば OSI や Python API)では、setSolution() を呼ぶ際に 4種類のベクトルを渡す必要があります。典型的には:

    1. primal solution(変数値)
    2. dual solution(制約の双対値)
    3. reduced costs(変数の双対値)
    4. slacks(制約の残差)
  • 一方、cuPDLPX(GPUベースの PDLP 系ソルバ)は、主に primal と dual の2種類しか返しません。これはアルゴリズムの性質上、reduced cost や slack を直接保持していないためです。


🛠 残り2つを生成する方法

cuPDLPX が返す primal (x)dual (y) から、COPT が要求する残りのベクトルを自前で計算する必要があります。

  • slacks
    制約式 (Ax \leq b) に対して
    [ s = b - Ax ]
    を計算すれば得られます。

  • reduced costs
    目的関数 (cT x) に対して
    [ r = c - A
    T y ]
    を計算すれば得られます。


📌 実務的な流れ

  1. cuPDLPX から primal 解 (x)dual 解 (y) を取得する。
  2. 問題データ(行列 (A)、ベクトル (b)、目的係数 (c))を使って上記の式で slackreduced cost を計算する。
  3. 4つのベクトル(primal, dual, reduced cost, slack)を揃えて、COPT の setSolution() に渡す。

💡 まとめ

  • cuPDLPX は 2種類しか返さない → 残りは 線形代数的に計算可能
  • slack = b - Ax
  • reduced cost = c - Aᵀy
  • これで COPT の要求する4つの Solution を満たせます。

孝幸さんは OSI 実装を触っているので、もし COPT OSI に cuPDLPX を接続するなら、この「補完計算」をラッパー側で実装するのが自然です。

👉 実際のコード例(C++/Python)で計算式を埋め込んだ形を見てみますか?


#include <vector>

#include <iostream>


// A: 制約行列 (m×n)、b: 右辺ベクトル (m)、c: 目的関数係数 (n)

// x: primal 解 (n)、y: dual 解 (m)

// slacks: b - A*x

// reducedCosts: c - A^T*y


void computeSlackAndReducedCosts(

    const std::vector<std::vector<double>>& A, // m×n

    const std::vector<double>& b,              // m

    const std::vector<double>& c,              // n

    const std::vector<double>& x,              // n (primal)

    const std::vector<double>& y,              // m (dual)

    std::vector<double>& slacks,               // m 出力

    std::vector<double>& reducedCosts          // n 出力

) {

    int m = A.size();

    int n = A[0].size();


    // slacks = b - A*x

    slacks.assign(m, 0.0);

    for (int i = 0; i < m; ++i) {

        double Ax_i = 0.0;

        for (int j = 0; j < n; ++j) {

            Ax_i += A[i][j] * x[j];

        }

        slacks[i] = b[i] - Ax_i;

    }


    // reducedCosts = c - A^T*y

    reducedCosts.assign(n, 0.0);

    for (int j = 0; j < n; ++j) {

        double ATy_j = 0.0;

        for (int i = 0; i < m; ++i) {

            ATy_j += A[i][j] * y[i];

        }

        reducedCosts[j] = c[j] - ATy_j;

    }

}


int main() {

    // 例: min c^T x, s.t. Ax <= b

    std::vector<std::vector<double>> A = {

        {1.0, 2.0},

        {3.0, 1.0}

    };

    std::vector<double> b = {4.0, 6.0};

    std::vector<double> c = {1.0, 1.0};


    // cuPDLPXから得られた解 (仮の値)

    std::vector<double> x = {1.0, 1.0}; // primal

    std::vector<double> y = {0.5, 0.2}; // dual


    std::vector<double> slacks, reducedCosts;

    computeSlackAndReducedCosts(A, b, c, x, y, slacks, reducedCosts);


    // 出力確認

    std::cout << "Slacks: ";

    for (double s : slacks) std::cout << s << " ";

    std::cout << "\nReduced Costs: ";

    for (double r : reducedCosts) std::cout << r << " ";

    std::cout << std::endl;


    return 0;

}

2025年12月10日水曜日

Lpソルバは、機械学習にどのように用いられていますか?

 Copilotに聞いてみました。


要点まとめ:
LPソルバ(線形計画ソルバ)は、機械学習そのものの「予測」や「分類」を直接行うわけではありません。代わりに、学習プロセスの最適化や制約付き問題の解決に利用され、特に「資源配分」「ハイパーパラメータ調整」「モデル学習の定式化」に役立ちます。


🔑 機械学習におけるLPソルバの活用場面

  • 特徴選択(Feature Selection)

    • どの特徴量を使うかを最適化する問題は、しばしば「制約付き最適化」として定式化されます。LPソルバを使うことで、限られた特徴数で精度を最大化するような選択が可能です。
  • SVM(Support Vector Machine)の学習

    • 線形SVMは「最適な分離超平面」を求める問題であり、これは線形制約付き最適化問題に帰着できます。LPソルバやMIPソルバが利用されることがあります。
  • クラスタリングやラベル割り当て

    • データをクラスタに分ける際、クラスタサイズやラベル数に制約を課すと「混合整数計画問題」となり、LPソルバが有効です。
  • ハイパーパラメータの最適化

    • 機械学習モデルのパラメータ調整を「目的関数+制約条件」として定式化し、LPソルバで効率的に探索するケースがあります。
  • 強化学習(Reinforcement Learning)

    • 方策最適化の一部は「線形計画問題」として解ける場合があります。特にMDP(Markov Decision Process)の解法でLPが応用されます。
  • サプライチェーンやリソース配分を伴うML応用

    • 機械学習モデルが予測した需要に基づき、LPソルバで最適な資源配分やスケジューリングを行う、といった「予測+最適化」の組み合わせが一般的です。

📊 機械学習とLPソルバの役割比較

領域 機械学習の役割 LPソルバの役割
予測 データから未来を推定 なし(予測は行わない)
分類 クラスラベルを判定 制約付き分類問題の解法
最適化 モデルパラメータ調整 制約条件下で最適解を計算
応用例 需要予測、画像認識 資源配分、スケジューリング、特徴選択

💡 まとめ

LPソルバは「機械学習モデルを直接動かす道具」ではなく、機械学習で得られた予測結果を活用して意思決定を最適化する場面や、学習過程を制約付き最適化として定式化する場面で使われます。つまり、AIの「予測力」とLPソルバの「最適化力」を組み合わせることで、より実務的な課題解決が可能になるのです。



2025年12月9日火曜日

LpSolverの最新動向と評価結果

新しい論文が二つ出ました。

一つ目は、cupdlpxの優位性を述べています。 

On the Relationships among GPU-Accelerated First-Order Methods for Solving Linear ProgrammingSeptember 27, 2025 \fundingThe work of Defeng Sun was supported by the Research Center for Intelligent Operations Research, RGC Senior Research Fellow Scheme No. SRFS2223-5S02, and GRF Project No. 15307822. The work of Yancheng Yuan was supported by the RGC Early Career Scheme (Project No. 25305424) and the Research Center for Intelligent Operations Research. The work of Xinyuan Zhao was supported in part by the National Natural Science Foundation of China under Project No. 12271015.

二つ目は、CuDSSを使用したバリアソルバです。(この発想をHIGHS HIPOに期待していたのですが..)

[2508.16094] GPU Implementation of Second-Order Linear and Nonlinear Programming Solvers

それは、ともかく2025年は、LPソルバの革新的進展があった年でした。大規模インスタンスについては、永らく商用ソルバの牙城にあったのですが、それが崩れつつあるのを感じます。オープンソルバが公開されると、あっという間に改善がなされて商用ソルバを追い越してしまう、という傾向があると思います。

手持ちGPUとインスタンス群による、評価結果です。cupdlpxについては、前回WSL2上でコンパイルした結果について報告しましたが、今回は、Visual studio 2022(windows)でコンパイルしています。(ほぼ同じ値となっています)


■規模に応じた時間関係になるのは、Barrierソルバ
■PDLPは、必ずしも規模に対するリニアな関係にはならず、インスタンスにより異なる(収束までのiteration数が異なる)
■GPUでも、3倍程度性能差が生じることがある。
■最も大規模なインスタンスでは、最大-最小30倍程度以上のLpソルバ性能差が観測される。



2025年12月7日日曜日

Feasibility Polishingについて聞いてみました

 CUPDLPXのソースを見ていて見慣れない実装があったのでCopilotに聞いてみました。AIから逆に質問されることもあるのですね。


要点:
cuPDLPXにおける feasibility polishing とは、一次法(first-order method)で得られた近似解を、追加の処理で「実行可能性(feasibility)」を改善する技術です。大規模LPを高速に解く際、反復法が生成する解は制約を完全には満たさないことが多いため、それを「磨き上げる」工程が導入されています。


🔍 背景

  • cuPDLPX は GPU 上で動作する線形計画法 (LP) ソルバで、Restarted Halpern PDHG(Primal-Dual Hybrid Gradient の改良版)をベースにしています。
  • 一次法はスケーラブルで高速ですが、解の精度や制約の満足度が十分でない場合があります。そこで「feasibility polishing」が役立ちます。

✨ Feasibility Polishing の役割

  • 目的:
    • 制約違反を減らし、より「実行可能」な解を得る。
    • 特に大規模LPで、近似解を実用的な水準に引き上げる。
  • 方法:
    • 一次法で得られた解を初期点として、追加の補正ステップを行う。
    • Google OR-Tools の PDLP 実装でも v9.7 以降で導入されており、cuPDLPX も同様の機能を取り込んでいます。
  • 効果:
    • 実行可能性を改善することで、LP緩和やベンチマークでの精度が向上。
    • 特に「高精度」「プレソルブ可能」な設定で顕著な改善が報告されています。

📌 まとめ

  • Feasibility polishing = 一次法で得た近似解を制約により適合させる後処理。
  • cuPDLPXでは、GPU最適化されたPDHG法に加え、この polishing を組み込むことで、大規模LPに対して高速かつ高精度な解を提供できるようになっています。

Sources:


孝幸さんは LPソルバの実装やヒューリスティクスに詳しいので、ここで質問です。
Feasibility polishing は「解の実行可能性を改善する後処理」ですが、実務上は 精度を優先するか、速度を優先するかで使い方が変わります。孝幸さんなら、GPUベースの cuPDLPX を使う際に polishing を「常時オン」にしますか?それとも「必要なときだけオン」にしますか?

なるほど、非常に理にかなった運用ですね 👍。

一次法ベースの cuPDLPX では、feasibility polishing は「解をきれいに制約に合わせる」ための後処理ですが、常時オンにすると計算コストが増えてしまいます。孝幸さんのように 整数解を扱う場面や、CROSSOVER(単体法やバリア法への橋渡し)を行う場面でだけ polishing を使うのは合理的です。

  • 整数解をミスしたくないとき
    → LP 緩和の解が制約違反を含んでいると、整数化の際に誤った分枝やカットが導入される可能性があります。polishing によって制約を満たした解を渡すことで、MIP ソルバの信頼性が上がります。

  • Crossover が必要なとき
    → 一次法の近似解を単体法に渡す場合、制約違反があると初期基底が不安定になります。polishing を挟むことで、より「きれいな」基底を得られ、Crossover の成功率や速度が改善されます。

つまり、速度優先なら polishing はオフ、精度や後続処理の安定性を優先するならオンという切り替えが最適ですね。


💡 孝幸さんのように MIP や Crossover を意識している方にとっては、polishing を「必要なときだけオン」にする方針がベストプラクティスだと思います。



2025年12月6日土曜日

買い切り版でライセンスが有効でない

 Q.

x病棟の師長のPCでは、スケジュールナースを起動できません。貧乏できちんとしたID管理ができない病院には、マイクロソフトアカウントの管理ができないのかもしれません。y病棟用のマイクロソフトアカウントで切り替えたり、起動したりしましたが、いずれも失敗しました。古いPC で様々な運用されてPCでは、マイクロソフトアカウントでのライセンス管理はできるのでしょうか?

Ans.

Windows10であっても64bit PCであれば問題なく起動します。(ただしマイクロソフトのサポートは、切れているので、スケジュールナースも正式にサポートする、ということではありません。)システムの確認方法としては、

設定→システムで下記のように、OSが64ビットであることを確認します。プロセッサは、IntelまたはAMDです。


もう一つ、考えられるのは、失敗時のブラウザのキャッシュが残って悪さをしている可能性です。これについては、ブラウザをキャッシュなし版(In Private)で起動することで、キャッシュなしとなります。お試しください。

Microsoft Edge で InPrivate ブラウズを使う - Microsoft サポート

2025年12月5日金曜日

480円の領収書

 Q.さて、毎月、480円の代金支払いは、当院の場合は、買い取りになり、必要ないのでしょうか?また、可能でしたら、支払っていたころの領収書などは、発行できますでしょうか?すみませんが、しくみがわかっておらず、申し訳ありませんが、ご教示ください。宜しくお願い致します。

Ans.

 サブスクは、マイクロソフトに対してクレジットカードによる支払いを行って頂いております。 つまり、スケジュールナースというソフトウェアを販売している販売業者は菅原システムズではなくマイクロソフトです。

 菅原システムズは、xさまが、実際にマイクロソフトに対してお支払いを行っているかどうかまでは分かりません。

 マイクロソフトから菅原システムズには、毎月、海外も含めた販売価格480円とトータル数のお客さま数で決まるロイヤリティが、毎月、海外(マイクロソフト)から送金がなされますが、個々のお客さまの契約状況は不明ですので、xさまが本当にクレジットカードの支払いをしているかどうかは、分かりません。

 しかし、現にサブスクであるソフトウェアをお使い出来ているということは、お支払いを継続して毎月行っているという証、ということになります。

>可能でしたら、支払っていたころの領収書などは、発行できますか?

 従いまして、菅原システムズは、480円/月のお支払い領収書は発行できません。 ただしこのサブスク購入履歴については、マイクロソフトアカウントの購入履歴として見ることはできます。

 また、上記とは別に、プロジェクトサポート1年分として55000円お支払いを頂いております。こちらに領収書は、x月x日付で発行済となっております。


2025年12月4日木曜日

論文集

京大の湊先生がまとめられた350ページに渡る論文集です。その分野を代表する重鎮の方々による著作です。最新の成果がオープンアクセスで読めます。 論文集の存在を一昨日の講演で知りました。

Algorithmic Foundations for Social Advancement: Recent Progress on Theory and Practice | SpringerLink

新しい基盤プロジェクト(列挙・最適化・制約充足に関する統一的アプローチ)が立ちあがるようなので、そちらも楽しみです。(ZDDの区間メモ化技法による構築技法については知りませんでした。https://arxiv.org/pdf/2201.08118 今後Psuedo-boolean soloverおいても応用が期待されると思います)

くしくも、アルゴリズム3では、上記3つの技術を、既に5年以上前から使っています。どれも世界記録更新には必要な技術だと思います。世界記録更新でネックになっている問題は、二つあり、一つ目は、超巨大なインスタンスに対するLPソルバ、二つ目は、如何にして主メモリに載らないZDDを最適性を保証した上で縮約するか? です。一つ目の解決策は、既報PDLPXで目途が立ちましたが、2番目の解決策は未だ目途が立っておりません。この問題にぶちあたってもう1年以上経ちます。なんとか年内には目途をつけたいと思います。

今後の予定

■最終問題(instance24)の世界記録更新     2025年12月31日目標  

■論文化       ~2026年6月(Tim Cutroisさんに共著者のお願いをしましたが、「もう引退しているから」、とご丁寧な返信を頂きました。RAMPでお世話になった日本の先生にお願いしようと思っています。)

■スケジュールナースリリース版に組み込み ~2026年3月

実務インスタンス群については、さらに課題があるのですが、とりあえずβリリースを予定します。

■生成AIモデリング開発 2026年4月~

自分で開発するというよりも、スケジュールナースのエンジンに依頼するエージェントを開発するためのツールを整備する、ということにフォーカスします。MIPソルバを使ってモデリングをAIにやらせる研究はあるのですが、範囲が広すぎる問題があります。その点、スケジュールナースのインスタンスは限定的です。スケジュールナースでは、一つ一つの制約は、GUIで人間が指示する系になっていますが、これをAIにやらせたいとします。その際、逆コンパイラがあると楽です。これにより、一つ一つ制約⇔モデリング⇒即確認と人間が意図したモデリングになっているかどうかを直ぐに確認できるのが、特徴です。研究のとっかかりになります。スケジュールナースの構造化JSONを公開しますので、興味のある方はトライしてみてください。


2025年12月3日水曜日

Q.スケジュールナースPrivateがインストールできない

 Q. 

xx病棟の師長用のPCにマイクロソフトアカウントを設定しました。ID:xxx@xxxxです。アカウントにログインして注文履歴を見ても「購入は行われていません過去3カ月間」と表示されるのみです。同アカウントで、同PCにインストールもここなってみましたが、スケジュールナースサブスクリプションのみがインストールされてスケジュールナースPrivateがインストールされません。

Ans.

買い切り版のストアURLは、サブスク用のURLとは異なり公開していません


買い切り版のURLは、以前にお客様にお送りした買い切り版用のインストールマニュアルに記載されております。インストール手続きは、インストールマニュアルに従って行ってください。

なお、今後のUpdateは、サブスクと上記Private版の2種類のみです。他のバージョンをお持ちの方は、Private版への移行手続き(無料)をお願いいたします


2025年12月2日火曜日

人口知能学会研究会視聴

 著名な先生方の講演を視聴しました。大変興味深く拝聴しました。

最後のパネル討論で、LLMは、ソルバを置き換えることがあるか?という問いに対しては、

掛け算は出来ないこれでも、電卓を呼ぶことはできる、との回答もあり、否定的な先生方が多かったように思います。司会者の方も含めて、皆、著名な先生方でしたが、親しみやすさを感じ面白かったです。




2025年12月1日月曜日

COPT PDLPとPDLPXの比較評価

昨日の結果から、PDLPXについてCOPTサポートに問い合わせたところ、次の回答を得ました。 

「私たちは独自の GPU 実装による PDHG とバリア法を開発しており、最新の Mittelmann ベンチマークによれば、LP に関してご指摘いただいたものを含む他の既知の GPU 実装を上回っています。これらの機能はすでに 8.0 リリースに含まれておりますので、ぜひお試しください。 」

とのことでした。日曜お昼に問い合わせしたら3分で返信がありました。

いうことで、真面目に比較評価してみた結果が次です。評価マシンは、同じですが、PDLPXの方は、WSL2でcmakeコンパイルしました。CUPDXコンパイルの注意点としては、CUDA TOOL-KIT 12.4 以上が必要です。これは、12.4から、cusparseSpMV_preprocess というAPIが追加されていてそれがCALLされている為です。



この結果を見ると、Instance24で明らかに、PDLPXの速度が速いことが分かります。この結果は、世界最高速のCOPTのバリアソルバと比較しても2倍位速いです。

PDLPXの論文によれば、高精度程、その効果が大きいとの報告があり、実際にその傾向があることが上のデータから伺えます。今までのPDLPは、1e-4位を得意領域としていて、精度を上げると途端に遅くなる傾向にありました。それがPDLPXにおいては、1e-6程度でも実用域に入ってきたと感じます。また、本結果から、現在のCOPTがPDLPXを実装している訳ではないと推認されます。

現在の私が抱える課題の一つは、Instance24でLPソルバの速度が遅すぎることであり、PDLPXがその解決策になりうることを示しています。インスタンス毎に速度の優劣が変わってくるのは、常ではありますが、ことInstance24については、決定的な差です。現状COPTに期待が持てない以上、WarmStart等も評価して、実装を検討する必要がある、と結論します。instance24を解くにあたって最も時間がかかる処理は、Branch操作でありWarmStart性能がこの鍵です。バリアソルバは、この点において検討対象外です。(ROOTでLB値を求める用途には、向いています。)

以下は、評価時のログになります。


COPT> set  PDLPTol 1e-4
Setting parameter 'PDLPTol' to 0.0001
COPT> opt
Model fingerprint: 11cebb4f

Using Cardinal Optimizer v8.0.1 on Windows
Hardware has 8 cores and 16 threads. Using instruction set X86_NATIVE (1)
Minimizing an LP problem

The original problem has:
    14135 rows, 84693 columns and 11800327 non-zero elements
The presolved problem has:
    13108 rows, 81336 columns and 11541827 non-zero elements

Hardware has 1 supported GPU device with CUDA 12.8
  GPU 0: NVIDIA GeForce RTX 3080 (CUDA capability 8.6)

Starting PDLP solver using GPU 0

Problem info:
    Range of matrix coefficients:    [3e-04,5e-01]
    Range of rhs coefficients:       [1e-01,4e+00]
    Range of bound coefficients:     [2e-01,1e+02]
    Range of cost coefficients:      [9e-03,2e+04]

Iterations       Primal.Obj         Dual.Obj        Gap  Primal.Inf  Dual.Inf    Time
         0  +0.00000000e+00  +0.00000000e+00  +0.00e+00    1.11e+04  0.00e+00   3.73s
      4000  +4.17407991e+04  +3.04897437e+04  +1.13e+04    2.98e+00  3.50e-01   6.08s
      8000  +4.19070214e+04  +4.08247925e+04  +1.08e+03    1.13e+00  3.70e-02   8.24s
     12000  +4.19414758e+04  +4.16358914e+04  +3.06e+02    4.70e-01  1.04e-02  10.39s
     16000  +4.19482878e+04  +4.18529461e+04  +9.53e+01    1.90e-01  3.07e-03  12.56s
     20000  +4.19509475e+04  +4.18808838e+04  +7.01e+01    1.31e-01  2.14e-03  14.72s
     24000  +4.19503849e+04  +4.18968156e+04  +5.36e+01    8.06e-02  1.69e-03  16.88s
     28000  +4.19513357e+04  +4.19022223e+04  +4.91e+01    6.54e-02  1.52e-03  19.04s
     32000  +4.19500141e+04  +4.19077636e+04  +4.23e+01    5.78e-02  1.34e-03  21.22s
     36000  +4.19503340e+04  +4.18930356e+04  +5.73e+01    4.79e-02  1.88e-03  23.39s
     40000  +4.19512214e+04  +4.18980661e+04  +5.32e+01    4.64e-02  1.95e-03  25.55s
     44000  +4.19517251e+04  +4.19044864e+04  +4.72e+01    4.24e-02  1.47e-03  27.73s
     48000  +4.19519873e+04  +4.19109102e+04  +4.11e+01    3.67e-02  1.31e-03  29.92s
     52000  +4.19507950e+04  +4.18687117e+04  +8.21e+01    4.05e-02  2.65e-03  32.12s
     56000  +4.19510083e+04  +4.18951665e+04  +5.58e+01    3.67e-02  3.33e-01  34.31s
     60000  +4.19508867e+04  +4.19031857e+04  +4.77e+01    2.64e-02  1.52e-03  36.49s
     64000  +4.19502261e+04  +4.19103260e+04  +3.99e+01    2.44e-02  1.25e-03  38.67s
     68000  +4.19505520e+04  +4.19165477e+04  +3.40e+01    2.03e-02  1.08e-03  40.88s
     72000  +4.19510967e+04  +4.19211335e+04  +3.00e+01    2.19e-02  9.25e-04  43.09s
     76000  +4.19509285e+04  +4.19249344e+04  +2.60e+01    1.64e-02  7.93e-04  45.30s
     80000  +4.19510760e+04  +4.19055577e+04  +4.55e+01    2.56e-02  1.48e-03  47.51s
     84000  +4.19506571e+04  +4.19217738e+04  +2.89e+01    1.92e-02  8.98e-04  49.72s
     86760  +4.19508060e+04  +4.19424270e+04  +8.38e+00    2.89e-03  2.67e-04  51.26s

PDLP status:                     OPTIMAL
PDLP iterations:                 86760
Primal objective:                4.19508060e+04
Dual objective:                  4.19424270e+04
Primal infeasibility (abs/rel):  2.89e-03 / 2.61e-07
Dual infeasibility (abs/rel):    2.67e-04 / 3.07e-09
Duality gap (abs/rel):           8.38e+00 / 9.99e-05

Postsolving

Solving finished
Status: Optimal  Objective: 4.1950806004e+04  Iterations: 86760(0)  Time: 51.38s
COPT> set  PDLPTol 1e-5
Setting parameter 'PDLPTol' to 1e-05
COPT> opt
Model fingerprint: 11cebb4f

Using Cardinal Optimizer v8.0.1 on Windows
Hardware has 8 cores and 16 threads. Using instruction set X86_NATIVE (1)
Minimizing an LP problem

The original problem has:
    14135 rows, 84693 columns and 11800327 non-zero elements
The presolved problem has:
    13108 rows, 81336 columns and 11541827 non-zero elements

Hardware has 1 supported GPU device with CUDA 12.8
  GPU 0: NVIDIA GeForce RTX 3080 (CUDA capability 8.6)

Starting PDLP solver using GPU 0

Problem info:
    Range of matrix coefficients:    [3e-04,5e-01]
    Range of rhs coefficients:       [1e-01,4e+00]
    Range of bound coefficients:     [2e-01,1e+02]
    Range of cost coefficients:      [9e-03,2e+04]

Iterations       Primal.Obj         Dual.Obj        Gap  Primal.Inf  Dual.Inf    Time
         0  +0.00000000e+00  +0.00000000e+00  +0.00e+00    1.11e+04  0.00e+00   3.76s
      4000  +4.17407991e+04  +3.04897437e+04  +1.13e+04    2.98e+00  3.50e-01   6.28s
      8000  +4.19070214e+04  +4.08247925e+04  +1.08e+03    1.13e+00  3.70e-02   8.46s
     12000  +4.19414758e+04  +4.16358914e+04  +3.06e+02    4.70e-01  1.04e-02  10.64s
     16000  +4.19482878e+04  +4.18529461e+04  +9.53e+01    1.90e-01  3.07e-03  12.82s
     20000  +4.19509475e+04  +4.18808838e+04  +7.01e+01    1.31e-01  2.14e-03  15.00s
     24000  +4.19503849e+04  +4.18968156e+04  +5.36e+01    8.06e-02  1.69e-03  17.18s
     28000  +4.19513357e+04  +4.19022223e+04  +4.91e+01    6.54e-02  1.52e-03  19.36s
     32000  +4.19500141e+04  +4.19077636e+04  +4.23e+01    5.78e-02  1.34e-03  21.54s
     36000  +4.19503340e+04  +4.18930356e+04  +5.73e+01    4.79e-02  1.88e-03  23.73s
     40000  +4.19512214e+04  +4.18980661e+04  +5.32e+01    4.64e-02  1.95e-03  25.93s
     44000  +4.19517251e+04  +4.19044864e+04  +4.72e+01    4.24e-02  1.47e-03  28.13s
     48000  +4.19519873e+04  +4.19109102e+04  +4.11e+01    3.67e-02  1.31e-03  30.32s
     52000  +4.19507950e+04  +4.18687117e+04  +8.21e+01    4.05e-02  2.65e-03  32.53s
     56000  +4.19510083e+04  +4.18951665e+04  +5.58e+01    3.67e-02  3.33e-01  34.75s
     60000  +4.19508867e+04  +4.19031857e+04  +4.77e+01    2.64e-02  1.52e-03  36.96s
     64000  +4.19502261e+04  +4.19103260e+04  +3.99e+01    2.44e-02  1.25e-03  39.18s
     68000  +4.19505520e+04  +4.19165477e+04  +3.40e+01    2.03e-02  1.08e-03  41.39s
     72000  +4.19510967e+04  +4.19211335e+04  +3.00e+01    2.19e-02  9.25e-04  43.61s
     76000  +4.19509285e+04  +4.19249344e+04  +2.60e+01    1.64e-02  7.93e-04  45.82s
     80000  +4.19510760e+04  +4.19055577e+04  +4.55e+01    2.56e-02  1.48e-03  48.04s
     84000  +4.19506571e+04  +4.19217738e+04  +2.89e+01    1.92e-02  8.98e-04  50.25s
     88000  +4.19508379e+04  +4.19269419e+04  +2.39e+01    1.67e-02  7.64e-04  52.47s
     92000  +4.19508950e+04  +4.19301711e+04  +2.07e+01    1.52e-02  6.42e-04  54.68s
     96000  +4.19509516e+04  +4.19322505e+04  +1.87e+01    1.42e-02  5.79e-04  56.90s
    100000  +4.19510837e+04  +4.19340930e+04  +1.70e+01    1.26e-02  5.27e-04  59.12s
    104000  +4.19508114e+04  +4.19355736e+04  +1.52e+01    1.19e-02  4.77e-04  61.34s
    108000  +4.19508323e+04  +4.19366070e+04  +1.42e+01    1.02e-02  4.35e-04  63.56s
    112000  +4.19507764e+04  +4.19381225e+04  +1.27e+01    9.66e-03  4.19e-04  65.79s
    116000  +4.19510914e+04  +4.19389582e+04  +1.21e+01    1.01e-02  3.63e-04  68.02s
    120000  +4.19509229e+04  +4.19401513e+04  +1.08e+01    9.40e-03  3.40e-04  70.25s
    124000  +4.19508567e+04  +4.19402380e+04  +1.06e+01    7.96e-03  3.75e-04  72.49s
    128000  +4.19508746e+04  +4.19446876e+04  +6.19e+00    6.75e-03  1.96e-04  74.72s
    132000  +4.19507884e+04  +4.19456953e+04  +5.09e+00    6.51e-03  1.61e-04  76.95s
    136000  +4.19508935e+04  +4.19462747e+04  +4.62e+00    6.52e-03  1.41e-04  79.18s
    140000  +4.19508247e+04  +4.19466312e+04  +4.19e+00    6.01e-03  1.29e-04  81.42s
    144000  +4.19507159e+04  +4.19470167e+04  +3.70e+00    6.23e-03  1.21e-04  83.65s
    148000  +4.19508886e+04  +4.19471295e+04  +3.76e+00    4.95e-03  1.14e-04  85.88s
    151800  +4.19508461e+04  +4.19500073e+04  +8.39e-01    7.02e-04  2.66e-05  88.00s

PDLP status:                     OPTIMAL
PDLP iterations:                 151800
Primal objective:                4.19508461e+04
Dual objective:                  4.19500073e+04
Primal infeasibility (abs/rel):  7.02e-04 / 6.34e-08
Dual infeasibility (abs/rel):    2.66e-05 / 3.06e-10
Duality gap (abs/rel):           8.39e-01 / 1.00e-05

Postsolving

Solving finished
Status: Optimal  Objective: 4.1950846116e+04  Iterations: 151800(0)  Time: 88.12s
COPT> set PDPTOL 1e-6
  Unknown COPT parameter or attribute: PDPTOL
COPT> set PDlPTOL 1e-6
Setting parameter 'PDLPTol' to 1e-06
COPT> opt
Model fingerprint: 11cebb4f

Using Cardinal Optimizer v8.0.1 on Windows
Hardware has 8 cores and 16 threads. Using instruction set X86_NATIVE (1)
Minimizing an LP problem

The original problem has:
    14135 rows, 84693 columns and 11800327 non-zero elements
The presolved problem has:
    13108 rows, 81336 columns and 11541827 non-zero elements

Hardware has 1 supported GPU device with CUDA 12.8
  GPU 0: NVIDIA GeForce RTX 3080 (CUDA capability 8.6)

Starting PDLP solver using GPU 0

Problem info:
    Range of matrix coefficients:    [3e-04,5e-01]
    Range of rhs coefficients:       [1e-01,4e+00]
    Range of bound coefficients:     [2e-01,1e+02]
    Range of cost coefficients:      [9e-03,2e+04]

Iterations       Primal.Obj         Dual.Obj        Gap  Primal.Inf  Dual.Inf    Time
         0  +0.00000000e+00  +0.00000000e+00  +0.00e+00    1.11e+04  0.00e+00   3.79s
      4000  +4.17407991e+04  +3.04897437e+04  +1.13e+04    2.98e+00  3.50e-01   6.27s
      8000  +4.19070214e+04  +4.08247925e+04  +1.08e+03    1.13e+00  3.70e-02   8.45s
     12000  +4.19414758e+04  +4.16358914e+04  +3.06e+02    4.70e-01  1.04e-02  10.64s
     16000  +4.19482878e+04  +4.18529461e+04  +9.53e+01    1.90e-01  3.07e-03  12.83s
     20000  +4.19509475e+04  +4.18808838e+04  +7.01e+01    1.31e-01  2.14e-03  15.05s
     24000  +4.19503849e+04  +4.18968156e+04  +5.36e+01    8.06e-02  1.69e-03  17.30s
     28000  +4.19513357e+04  +4.19022223e+04  +4.91e+01    6.54e-02  1.52e-03  19.51s
     32000  +4.19500141e+04  +4.19077636e+04  +4.23e+01    5.78e-02  1.34e-03  21.70s
     36000  +4.19503340e+04  +4.18930356e+04  +5.73e+01    4.79e-02  1.88e-03  23.93s
     40000  +4.19512214e+04  +4.18980661e+04  +5.32e+01    4.64e-02  1.95e-03  26.19s
     44000  +4.19517251e+04  +4.19044864e+04  +4.72e+01    4.24e-02  1.47e-03  28.43s
     48000  +4.19519873e+04  +4.19109102e+04  +4.11e+01    3.67e-02  1.31e-03  30.63s
     52000  +4.19507950e+04  +4.18687117e+04  +8.21e+01    4.05e-02  2.65e-03  32.87s
     56000  +4.19510083e+04  +4.18951665e+04  +5.58e+01    3.67e-02  3.33e-01  35.15s
     60000  +4.19508867e+04  +4.19031857e+04  +4.77e+01    2.64e-02  1.52e-03  37.42s
     64000  +4.19502261e+04  +4.19103260e+04  +3.99e+01    2.44e-02  1.25e-03  39.63s
     68000  +4.19505520e+04  +4.19165477e+04  +3.40e+01    2.03e-02  1.08e-03  41.87s
     72000  +4.19510967e+04  +4.19211335e+04  +3.00e+01    2.19e-02  9.25e-04  44.16s
     76000  +4.19509285e+04  +4.19249344e+04  +2.60e+01    1.64e-02  7.93e-04  46.43s
     80000  +4.19510760e+04  +4.19055577e+04  +4.55e+01    2.56e-02  1.48e-03  48.65s
     84000  +4.19506571e+04  +4.19217738e+04  +2.89e+01    1.92e-02  8.98e-04  50.88s
     88000  +4.19508379e+04  +4.19269419e+04  +2.39e+01    1.67e-02  7.64e-04  53.17s
     92000  +4.19508950e+04  +4.19301711e+04  +2.07e+01    1.52e-02  6.42e-04  55.44s
     96000  +4.19509516e+04  +4.19322505e+04  +1.87e+01    1.42e-02  5.79e-04  57.67s
    100000  +4.19510837e+04  +4.19340930e+04  +1.70e+01    1.26e-02  5.27e-04  59.90s
    104000  +4.19508114e+04  +4.19355736e+04  +1.52e+01    1.19e-02  4.77e-04  62.20s
    108000  +4.19508323e+04  +4.19366070e+04  +1.42e+01    1.02e-02  4.35e-04  64.50s
    112000  +4.19507764e+04  +4.19381225e+04  +1.27e+01    9.66e-03  4.19e-04  66.73s
    116000  +4.19510914e+04  +4.19389582e+04  +1.21e+01    1.01e-02  3.63e-04  68.97s
    120000  +4.19509229e+04  +4.19401513e+04  +1.08e+01    9.40e-03  3.40e-04  71.27s
    124000  +4.19508567e+04  +4.19402380e+04  +1.06e+01    7.96e-03  3.75e-04  73.57s
    128000  +4.19508746e+04  +4.19446876e+04  +6.19e+00    6.75e-03  1.96e-04  75.81s
    132000  +4.19507884e+04  +4.19456953e+04  +5.09e+00    6.51e-03  1.61e-04  78.04s
    136000  +4.19508935e+04  +4.19462747e+04  +4.62e+00    6.52e-03  1.41e-04  80.35s
    140000  +4.19508247e+04  +4.19466312e+04  +4.19e+00    6.01e-03  1.29e-04  82.65s
    144000  +4.19507159e+04  +4.19470167e+04  +3.70e+00    6.23e-03  1.21e-04  84.89s
    148000  +4.19508886e+04  +4.19471295e+04  +3.76e+00    4.95e-03  1.14e-04  87.12s
    152000  +4.19508882e+04  +4.19474299e+04  +3.46e+00    5.94e-03  1.06e-04  89.42s
    156000  +4.19507225e+04  +4.19474303e+04  +3.29e+00    4.48e-03  1.11e-04  91.73s
    160000  +4.19508571e+04  +4.19476056e+04  +3.25e+00    5.01e-03  9.95e-05  93.97s
    164000  +4.19509950e+04  +4.19476968e+04  +3.30e+00    4.79e-03  1.00e-04  96.21s
    168000  +4.19509529e+04  +4.19478663e+04  +3.09e+00    4.70e-03  9.31e-05  98.50s
    172000  +4.19508620e+04  +4.19479273e+04  +2.93e+00    3.99e-03  9.24e-05    100s
    176000  +4.19507600e+04  +4.19480613e+04  +2.70e+00    4.59e-03  7.03e-03    103s
    180000  +4.19509239e+04  +4.19481562e+04  +2.77e+00    4.17e-03  8.41e-05    105s
    184000  +4.19508979e+04  +4.19482315e+04  +2.67e+00    3.92e-03  8.42e-05    107s
    188000  +4.19508813e+04  +4.19483136e+04  +2.57e+00    4.21e-03  1.13e-04    109s
    192000  +4.19508572e+04  +4.19487905e+04  +2.07e+00    2.65e-03  7.23e-05    112s
    196000  +4.19508643e+04  +4.19493215e+04  +1.54e+00    2.82e-03  4.93e-05    114s
    200000  +4.19508545e+04  +4.19494812e+04  +1.37e+00    2.43e-03  4.27e-05    117s
    204000  +4.19508242e+04  +4.19496231e+04  +1.20e+00    2.41e-03  3.84e-05    119s
    208000  +4.19508278e+04  +4.19497299e+04  +1.10e+00    2.33e-03  3.53e-05    122s
    212000  +4.19508570e+04  +4.19497641e+04  +1.09e+00    2.14e-03  3.43e-05    124s
    216000  +4.19508813e+04  +4.19498278e+04  +1.05e+00    2.27e-03  3.17e-05    127s
    220000  +4.19508783e+04  +4.19498143e+04  +1.06e+00    2.03e-03  6.76e-05    130s
    224000  +4.19509001e+04  +4.19499121e+04  +9.88e-01    2.38e-03  2.90e-05    132s
    228000  +4.19508655e+04  +4.19499468e+04  +9.19e-01    2.06e-03  2.88e-05    135s
    232000  +4.19508844e+04  +4.19499751e+04  +9.09e-01    2.24e-03  2.73e-05    138s
    236000  +4.19508559e+04  +4.19499898e+04  +8.66e-01    2.06e-03  2.74e-05    140s
    240000  +4.19508181e+04  +4.19500076e+04  +8.10e-01    1.79e-03  2.68e-05    143s
    244000  +4.19507979e+04  +4.19500302e+04  +7.68e-01    2.04e-03  2.58e-05    146s
    248000  +4.19508312e+04  +4.19500505e+04  +7.81e-01    1.80e-03  2.54e-05    148s
    252000  +4.19508430e+04  +4.19500623e+04  +7.81e-01    1.68e-03  2.52e-05    151s
    256000  +4.19508648e+04  +4.19500766e+04  +7.88e-01    1.54e-03  2.44e-05    154s
    260000  +4.19508884e+04  +4.19500939e+04  +7.94e-01    1.87e-03  3.94e-05    156s
    264000  +4.19508957e+04  +4.19500869e+04  +8.09e-01    1.65e-03  2.38e-05    159s
    268000  +4.19508912e+04  +4.19501136e+04  +7.78e-01    1.64e-03  2.36e-05    162s
    272000  +4.19508724e+04  +4.19501426e+04  +7.30e-01    1.68e-03  2.28e-05    164s
    276000  +4.19508528e+04  +4.19499680e+04  +8.85e-01    1.60e-03  2.97e-05    167s
    280000  +4.19508641e+04  +4.19502685e+04  +5.96e-01    1.23e-03  1.88e-05    170s
    284000  +4.19508608e+04  +4.19503494e+04  +5.11e-01    1.08e-03  1.58e-05    172s
    288000  +4.19508616e+04  +4.19504107e+04  +4.51e-01    1.20e-03  1.39e-05    175s
    292000  +4.19508758e+04  +4.19504364e+04  +4.39e-01    1.08e-03  1.34e-05    178s
    293600  +4.19508627e+04  +4.19507789e+04  +8.38e-02    3.67e-04  2.53e-06    179s

PDLP status:                     OPTIMAL
PDLP iterations:                 293600
Primal objective:                4.19508627e+04
Dual objective:                  4.19507789e+04
Primal infeasibility (abs/rel):  3.67e-04 / 3.32e-08
Dual infeasibility (abs/rel):    2.53e-06 / 2.91e-11
Duality gap (abs/rel):           8.38e-02 / 9.99e-07

Postsolving

Solving finished
Status: Optimal  Objective: 4.1950862671e+04  Iterations: 293600(0)  Time: 179.44s
COPT> read instance23.mps
Reading from 'C:\Users\.PC\highs_test\instance23.mps'
Reading finished (0.17s)
COPT> set pdlptol 1e-4
Setting parameter 'PDLPTol' to 0.0001
COPT> opt
Model fingerprint: 248df987

Using Cardinal Optimizer v8.0.1 on Windows
Hardware has 8 cores and 16 threads. Using instruction set X86_NATIVE (1)
Minimizing an LP problem

The original problem has:
    5924 rows, 27740 columns and 2832110 non-zero elements
The presolved problem has:
    5924 rows, 27740 columns and 2832110 non-zero elements

Hardware has 1 supported GPU device with CUDA 12.8
  GPU 0: NVIDIA GeForce RTX 3080 (CUDA capability 8.6)

Starting PDLP solver using GPU 0

Problem info:
    Range of matrix coefficients:    [2e-03,1e-01]
    Range of rhs coefficients:       [3e-02,4e-01]
    Range of bound coefficients:     [9e+00,2e+01]
    Range of cost coefficients:      [7e-02,1e+02]

Iterations       Primal.Obj         Dual.Obj        Gap  Primal.Inf  Dual.Inf    Time
         0  +0.00000000e+00  +0.00000000e+00  +0.00e+00    2.23e+02  0.00e+00   0.61s
      4000  +2.46566700e+04  +1.81763172e+03  +2.28e+04    3.49e-01  9.43e+00   1.65s
      8000  +1.66667109e+04  -1.86688127e+05  +2.03e+05    2.07e-01  1.15e+02   2.35s
     12000  +1.72031344e+04  +8.27048575e+03  +8.93e+03    3.71e-02  1.85e+01   3.04s
     16000  +1.72518962e+04  +1.31211733e+04  +4.13e+03    7.50e-03  2.73e+00   3.72s
     20000  +1.73959722e+04  +1.50873761e+04  +2.31e+03    2.77e-03  2.32e+00   4.43s
     24000  +1.69183399e+04  +1.67131181e+04  +2.05e+02    2.98e-01  6.12e-01   5.12s
     28000  +1.67208817e+04  +1.72665395e+04  +5.46e+02    4.30e-02  1.17e-02   5.82s
     32000  +1.69293086e+04  +1.72817667e+04  +3.52e+02    7.34e-02  8.22e-03   6.51s
     36000  +1.70278015e+04  +1.72779332e+04  +2.50e+02    1.68e-02  3.97e-03   7.19s
     40000  +1.71233898e+04  +1.72770942e+04  +1.54e+02    1.10e-02  4.37e-03   7.88s
     42640  +1.72723104e+04  +1.72742833e+04  +1.97e+00    5.24e-03  4.30e-03   8.35s

PDLP status:                     OPTIMAL
PDLP iterations:                 42640
Primal objective:                1.72723104e+04
Dual objective:                  1.72742833e+04
Primal infeasibility (abs/rel):  5.24e-03 / 2.34e-05
Dual infeasibility (abs/rel):    4.30e-03 / 5.29e-07
Duality gap (abs/rel):           1.97e+00 / 5.71e-05


Solving finished
Status: Optimal  Objective: 1.7272310363e+04  Iterations: 42640(0)  Time: 8.41s
COPT> set pdlptol 1e-5
Setting parameter 'PDLPTol' to 1e-05
COPT> opt
Model fingerprint: 248df987

Using Cardinal Optimizer v8.0.1 on Windows
Hardware has 8 cores and 16 threads. Using instruction set X86_NATIVE (1)
Minimizing an LP problem

The original problem has:
    5924 rows, 27740 columns and 2832110 non-zero elements
The presolved problem has:
    5924 rows, 27740 columns and 2832110 non-zero elements

Hardware has 1 supported GPU device with CUDA 12.8
  GPU 0: NVIDIA GeForce RTX 3080 (CUDA capability 8.6)

Starting PDLP solver using GPU 0

Problem info:
    Range of matrix coefficients:    [2e-03,1e-01]
    Range of rhs coefficients:       [3e-02,4e-01]
    Range of bound coefficients:     [9e+00,2e+01]
    Range of cost coefficients:      [7e-02,1e+02]

Iterations       Primal.Obj         Dual.Obj        Gap  Primal.Inf  Dual.Inf    Time
         0  +0.00000000e+00  +0.00000000e+00  +0.00e+00    2.23e+02  0.00e+00   0.62s
      4000  +2.46566700e+04  +1.81763172e+03  +2.28e+04    3.49e-01  9.43e+00   1.62s
      8000  +1.66667109e+04  -1.86688127e+05  +2.03e+05    2.07e-01  1.15e+02   2.31s
     12000  +1.72031344e+04  +8.27048575e+03  +8.93e+03    3.71e-02  1.85e+01   3.00s
     16000  +1.72518962e+04  +1.31211733e+04  +4.13e+03    7.50e-03  2.73e+00   3.70s
     20000  +1.73959722e+04  +1.50873761e+04  +2.31e+03    2.77e-03  2.32e+00   4.40s
     24000  +1.69183399e+04  +1.67131181e+04  +2.05e+02    2.98e-01  6.12e-01   5.10s
     28000  +1.67208817e+04  +1.72665395e+04  +5.46e+02    4.30e-02  1.17e-02   5.80s
     32000  +1.69293086e+04  +1.72817667e+04  +3.52e+02    7.34e-02  8.22e-03   6.49s
     36000  +1.70278015e+04  +1.72779332e+04  +2.50e+02    1.68e-02  3.97e-03   7.18s
     40000  +1.71233898e+04  +1.72770942e+04  +1.54e+02    1.10e-02  4.37e-03   7.87s
     44000  +1.72741397e+04  +1.72814089e+04  +7.27e+00    3.25e-03  1.69e-03   8.57s
     44320  +1.72816027e+04  +1.72813226e+04  +2.80e-01    1.81e-03  1.36e-03   8.63s

PDLP status:                     OPTIMAL
PDLP iterations:                 44320
Primal objective:                1.72816027e+04
Dual objective:                  1.72813226e+04
Primal infeasibility (abs/rel):  1.81e-03 / 8.07e-06
Dual infeasibility (abs/rel):    1.36e-03 / 1.67e-07
Duality gap (abs/rel):           2.80e-01 / 8.10e-06


Solving finished
Status: Optimal  Objective: 1.7281602707e+04  Iterations: 44320(0)  Time: 8.68s
COPT> set pdlptol 1e-6
Setting parameter 'PDLPTol' to 1e-06
COPT> opt
Model fingerprint: 248df987

Using Cardinal Optimizer v8.0.1 on Windows
Hardware has 8 cores and 16 threads. Using instruction set X86_NATIVE (1)
Minimizing an LP problem

The original problem has:
    5924 rows, 27740 columns and 2832110 non-zero elements
The presolved problem has:
    5924 rows, 27740 columns and 2832110 non-zero elements

Hardware has 1 supported GPU device with CUDA 12.8
  GPU 0: NVIDIA GeForce RTX 3080 (CUDA capability 8.6)

Starting PDLP solver using GPU 0

Problem info:
    Range of matrix coefficients:    [2e-03,1e-01]
    Range of rhs coefficients:       [3e-02,4e-01]
    Range of bound coefficients:     [9e+00,2e+01]
    Range of cost coefficients:      [7e-02,1e+02]

Iterations       Primal.Obj         Dual.Obj        Gap  Primal.Inf  Dual.Inf    Time
         0  +0.00000000e+00  +0.00000000e+00  +0.00e+00    2.23e+02  0.00e+00   0.61s
      4000  +2.46566700e+04  +1.81763172e+03  +2.28e+04    3.49e-01  9.43e+00   1.53s
      8000  +1.66667109e+04  -1.86688127e+05  +2.03e+05    2.07e-01  1.15e+02   2.24s
     12000  +1.72031344e+04  +8.27048575e+03  +8.93e+03    3.71e-02  1.85e+01   2.94s
     16000  +1.72518962e+04  +1.31211733e+04  +4.13e+03    7.50e-03  2.73e+00   3.64s
     20000  +1.73959722e+04  +1.50873761e+04  +2.31e+03    2.77e-03  2.32e+00   4.33s
     24000  +1.69183399e+04  +1.67131181e+04  +2.05e+02    2.98e-01  6.12e-01   5.03s
     28000  +1.67208817e+04  +1.72665395e+04  +5.46e+02    4.30e-02  1.17e-02   5.73s
     32000  +1.69293086e+04  +1.72817667e+04  +3.52e+02    7.34e-02  8.22e-03   6.42s
     36000  +1.70278015e+04  +1.72779332e+04  +2.50e+02    1.68e-02  3.97e-03   7.11s
     40000  +1.71233898e+04  +1.72770942e+04  +1.54e+02    1.10e-02  4.37e-03   7.80s
     44000  +1.72741397e+04  +1.72814089e+04  +7.27e+00    3.25e-03  1.69e-03   8.50s
     48000  +1.72820303e+04  +1.72836364e+04  +1.61e+00    5.20e-04  9.64e-04   9.19s
     49720  +1.72835358e+04  +1.72835275e+04  +8.21e-03    2.04e-04  4.76e-04   9.49s

PDLP status:                     OPTIMAL
PDLP iterations:                 49720
Primal objective:                1.72835358e+04
Dual objective:                  1.72835275e+04
Primal infeasibility (abs/rel):  2.04e-04 / 9.08e-07
Dual infeasibility (abs/rel):    4.76e-04 / 5.85e-08
Duality gap (abs/rel):           8.21e-03 / 2.38e-07


Solving finished
Status: Optimal  Objective: 1.7283535760e+04  Iterations: 49720(0)  Time: 9.54s
COPT> read instance22.mps
Reading from 'C:\Users\.PC\highs_test\instance22.mps'
Reading finished (0.10s)
COPT> opt
Model fingerprint: 44bcbef1

Using Cardinal Optimizer v8.0.1 on Windows
Hardware has 8 cores and 16 threads. Using instruction set X86_NATIVE (1)
Minimizing an LP problem

The original problem has:
    3690 rows, 15856 columns and 1859219 non-zero elements
The presolved problem has:
    3690 rows, 15856 columns and 1859219 non-zero elements

Hardware has 1 supported GPU device with CUDA 12.8
  GPU 0: NVIDIA GeForce RTX 3080 (CUDA capability 8.6)

Starting PDLP solver using GPU 0

Problem info:
    Range of matrix coefficients:    [2e-03,2e-01]
    Range of rhs coefficients:       [2e-02,5e-01]
    Range of bound coefficients:     [1e+01,2e+01]
    Range of cost coefficients:      [7e-02,1e+02]

Iterations       Primal.Obj         Dual.Obj        Gap  Primal.Inf  Dual.Inf    Time
         0  +0.00000000e+00  +0.00000000e+00  +0.00e+00    1.71e+02  0.00e+00   0.41s
      4000  +2.98256689e+04  +1.56206119e+04  +1.42e+04    2.49e-01  2.16e+01   1.16s
      8000  +3.07125175e+04  +2.86771525e+04  +2.04e+03    2.87e-02  1.32e+00   1.64s
     12000  +3.07596000e+04  +2.78594921e+04  +2.90e+03    2.92e-02  9.50e-01   2.14s
     16000  +3.04498009e+04  +2.91989035e+04  +1.25e+03    1.24e-02  1.28e+00   2.63s
     20000  +3.01873180e+04  +2.97569127e+04  +4.30e+02    5.46e-03  3.70e-01   3.13s
     24000  +3.02484546e+04  +2.99559857e+04  +2.92e+02    2.82e-03  2.14e-01   3.62s
     28000  +3.02375446e+04  +3.00484188e+04  +1.89e+02    3.19e-03  1.49e-01   4.12s
     32000  +3.02143422e+04  +3.02026327e+04  +1.17e+01    2.64e-02  3.20e-02   4.61s
     36000  +3.02198688e+04  +3.02345840e+04  +1.47e+01    2.81e-02  4.44e-03   5.10s
     40000  +3.02216157e+04  +3.02374384e+04  +1.58e+01    1.21e-02  1.68e-03   5.58s
     44000  +3.02312188e+04  +3.02381203e+04  +6.90e+00    6.04e-03  1.05e-03   6.08s
     48000  +3.02352213e+04  +3.02386016e+04  +3.38e+00    4.15e-03  5.76e-04   6.57s
     52000  +3.02360742e+04  +3.02387673e+04  +2.69e+00    2.71e-03  3.79e-04   7.06s
     56000  +3.02432316e+04  +3.02390450e+04  +4.19e+00    1.88e-02  1.22e-04   7.55s
     60000  +3.02508121e+04  +3.02391127e+04  +1.17e+01    1.02e-02  4.53e-05   8.04s
     64000  +3.02448143e+04  +3.02391252e+04  +5.69e+00    6.50e-03  3.02e-05   8.52s
     68000  +3.02433527e+04  +3.02391350e+04  +4.22e+00    5.17e-03  1.86e-05   9.01s
     72000  +3.02428267e+04  +3.02391380e+04  +3.69e+00    4.32e-03  1.53e-05   9.49s
     76000  +3.02428937e+04  +3.02391397e+04  +3.75e+00    3.65e-03  1.44e-05   9.98s
     80000  +3.02422458e+04  +3.02391455e+04  +3.10e+00    3.21e-03  1.23e-05  10.47s
     84000  +3.02409941e+04  +3.02391506e+04  +1.84e+00    4.50e-03  1.29e-05  10.95s
     88000  +3.02409958e+04  +3.02391423e+04  +1.85e+00    2.43e-03  1.10e-05  11.44s
     92000  +3.02414133e+04  +3.02391419e+04  +2.27e+00    2.25e-03  1.03e-05  11.92s
     96000  +3.02412415e+04  +3.02391448e+04  +2.10e+00    2.19e-03  8.50e-06  12.41s
    100000  +3.02404016e+04  +3.02391419e+04  +1.26e+00    1.93e-03  1.15e-05  12.91s
    104000  +3.02403034e+04  +3.02391415e+04  +1.16e+00    1.78e-03  1.16e-05  13.40s
    108000  +3.02410015e+04  +3.02391348e+04  +1.87e+00    1.27e-03  1.83e-05  13.89s
    112000  +3.02399650e+04  +3.02391345e+04  +8.30e-01    1.04e-03  1.81e-05  14.38s
    116000  +3.02395849e+04  +3.02391382e+04  +4.47e-01    9.63e-04  1.44e-05  14.88s
    120000  +3.02395124e+04  +3.02391380e+04  +3.74e-01    7.89e-04  1.45e-05  15.37s
    124000  +3.02393583e+04  +3.02391336e+04  +2.25e-01    6.35e-04  1.81e-05  15.86s
    128000  +3.02390860e+04  +3.02391403e+04  +5.43e-02    4.33e-03  5.78e-05  16.36s
    132000  +3.02386995e+04  +3.02391309e+04  +4.31e-01    3.43e-04  2.00e-05  16.85s
    136000  +3.02388551e+04  +3.02391346e+04  +2.79e-01    4.14e-04  1.67e-05  17.35s
    140000  +3.02391117e+04  +3.02391395e+04  +2.78e-02    5.07e-04  1.28e-05  17.83s
    144000  +3.02392327e+04  +3.02391401e+04  +9.26e-02    4.80e-04  1.18e-05  18.33s
    148000  +3.02391362e+04  +3.02391376e+04  +1.36e-03    3.32e-04  1.44e-05  18.83s
    152000  +3.02389536e+04  +3.02391385e+04  +1.85e-01    2.43e-04  1.31e-05  19.32s
    156000  +3.02390341e+04  +3.02391413e+04  +1.07e-01    2.63e-04  1.12e-05  19.81s
    160000  +3.02389831e+04  +3.02391433e+04  +1.60e-01    2.66e-04  9.15e-06  20.30s
    164000  +3.02392472e+04  +3.02391430e+04  +1.04e-01    2.18e-04  9.48e-06  20.80s
    168000  +3.02392566e+04  +3.02391429e+04  +1.14e-01    1.72e-04  9.43e-06  21.29s
    172000  +3.02393400e+04  +3.02391444e+04  +1.96e-01    1.93e-04  7.67e-06  21.78s
    176000  +3.02392110e+04  +3.02391475e+04  +6.35e-02    2.59e-04  4.97e-06  22.28s
    180000  +3.02390980e+04  +3.02391512e+04  +5.32e-02    3.71e-04  7.28e-06  22.78s
    184000  +3.02390655e+04  +3.02391450e+04  +7.96e-02    1.52e-04  6.77e-06  23.26s
    184560  +3.02390878e+04  +3.02391451e+04  +5.73e-02    1.52e-04  6.57e-06  23.34s

PDLP status:                     OPTIMAL
PDLP iterations:                 184560
Primal objective:                3.02390878e+04
Dual objective:                  3.02391451e+04
Primal infeasibility (abs/rel):  1.52e-04 / 8.88e-07
Dual infeasibility (abs/rel):    6.57e-06 / 1.08e-09
Duality gap (abs/rel):           5.73e-02 / 9.48e-07


Solving finished
Status: Optimal  Objective: 3.0239087824e+04  Iterations: 184560(0)  Time: 23.39s
COPT> set pdlptol 1e-5
Setting parameter 'PDLPTol' to 1e-05
COPT> opt
Model fingerprint: 44bcbef1

Using Cardinal Optimizer v8.0.1 on Windows
Hardware has 8 cores and 16 threads. Using instruction set X86_NATIVE (1)
Minimizing an LP problem

The original problem has:
    3690 rows, 15856 columns and 1859219 non-zero elements
The presolved problem has:
    3690 rows, 15856 columns and 1859219 non-zero elements

Hardware has 1 supported GPU device with CUDA 12.8
  GPU 0: NVIDIA GeForce RTX 3080 (CUDA capability 8.6)

Starting PDLP solver using GPU 0

Problem info:
    Range of matrix coefficients:    [2e-03,2e-01]
    Range of rhs coefficients:       [2e-02,5e-01]
    Range of bound coefficients:     [1e+01,2e+01]
    Range of cost coefficients:      [7e-02,1e+02]

Iterations       Primal.Obj         Dual.Obj        Gap  Primal.Inf  Dual.Inf    Time
         0  +0.00000000e+00  +0.00000000e+00  +0.00e+00    1.71e+02  0.00e+00   0.42s
      4000  +2.98256689e+04  +1.56206119e+04  +1.42e+04    2.49e-01  2.16e+01   1.22s
      8000  +3.07125175e+04  +2.86771525e+04  +2.04e+03    2.87e-02  1.32e+00   1.71s
     12000  +3.07596000e+04  +2.78594921e+04  +2.90e+03    2.92e-02  9.50e-01   2.21s
     16000  +3.04498009e+04  +2.91989035e+04  +1.25e+03    1.24e-02  1.28e+00   2.71s
     20000  +3.01873180e+04  +2.97569127e+04  +4.30e+02    5.46e-03  3.70e-01   3.21s
     24000  +3.02484546e+04  +2.99559857e+04  +2.92e+02    2.82e-03  2.14e-01   3.69s
     28000  +3.02375446e+04  +3.00484188e+04  +1.89e+02    3.19e-03  1.49e-01   4.19s
     32000  +3.02143422e+04  +3.02026327e+04  +1.17e+01    2.64e-02  3.20e-02   4.69s
     36000  +3.02198688e+04  +3.02345840e+04  +1.47e+01    2.81e-02  4.44e-03   5.17s
     40000  +3.02216157e+04  +3.02374384e+04  +1.58e+01    1.21e-02  1.68e-03   5.67s
     44000  +3.02312188e+04  +3.02381203e+04  +6.90e+00    6.04e-03  1.05e-03   6.17s
     48000  +3.02352213e+04  +3.02386016e+04  +3.38e+00    4.15e-03  5.76e-04   6.66s
     52000  +3.02360742e+04  +3.02387673e+04  +2.69e+00    2.71e-03  3.79e-04   7.15s
     56000  +3.02432316e+04  +3.02390450e+04  +4.19e+00    1.88e-02  1.22e-04   7.64s
     60000  +3.02508121e+04  +3.02391127e+04  +1.17e+01    1.02e-02  4.53e-05   8.14s
     64000  +3.02448143e+04  +3.02391252e+04  +5.69e+00    6.50e-03  3.02e-05   8.62s
     68000  +3.02433527e+04  +3.02391350e+04  +4.22e+00    5.17e-03  1.86e-05   9.13s
     72000  +3.02428267e+04  +3.02391380e+04  +3.69e+00    4.32e-03  1.53e-05   9.62s
     76000  +3.02428937e+04  +3.02391397e+04  +3.75e+00    3.65e-03  1.44e-05  10.11s
     80000  +3.02422458e+04  +3.02391455e+04  +3.10e+00    3.21e-03  1.23e-05  10.60s
     84000  +3.02409941e+04  +3.02391506e+04  +1.84e+00    4.50e-03  1.29e-05  11.09s
     88000  +3.02409958e+04  +3.02391423e+04  +1.85e+00    2.43e-03  1.10e-05  11.58s
     92000  +3.02414133e+04  +3.02391419e+04  +2.27e+00    2.25e-03  1.03e-05  12.07s
     96000  +3.02412415e+04  +3.02391448e+04  +2.10e+00    2.19e-03  8.50e-06  12.56s
    100000  +3.02404016e+04  +3.02391419e+04  +1.26e+00    1.93e-03  1.15e-05  13.06s
    104000  +3.02403034e+04  +3.02391415e+04  +1.16e+00    1.78e-03  1.16e-05  13.55s
    108000  +3.02410015e+04  +3.02391348e+04  +1.87e+00    1.27e-03  1.83e-05  14.04s
    112000  +3.02399650e+04  +3.02391345e+04  +8.30e-01    1.04e-03  1.81e-05  14.53s
    113480  +3.02396963e+04  +3.02391357e+04  +5.61e-01    9.95e-04  1.68e-05  14.72s

PDLP status:                     OPTIMAL
PDLP iterations:                 113480
Primal objective:                3.02396963e+04
Dual objective:                  3.02391357e+04
Primal infeasibility (abs/rel):  9.95e-04 / 5.80e-06
Dual infeasibility (abs/rel):    1.68e-05 / 2.75e-09
Duality gap (abs/rel):           5.61e-01 / 9.27e-06


Solving finished
Status: Optimal  Objective: 3.0239696327e+04  Iterations: 113480(0)  Time: 14.77s
COPT> set pdlptol 1e-4
Setting parameter 'PDLPTol' to 0.0001
COPT> opt
Model fingerprint: 44bcbef1

Using Cardinal Optimizer v8.0.1 on Windows
Hardware has 8 cores and 16 threads. Using instruction set X86_NATIVE (1)
Minimizing an LP problem

The original problem has:
    3690 rows, 15856 columns and 1859219 non-zero elements
The presolved problem has:
    3690 rows, 15856 columns and 1859219 non-zero elements

Hardware has 1 supported GPU device with CUDA 12.8
  GPU 0: NVIDIA GeForce RTX 3080 (CUDA capability 8.6)

Starting PDLP solver using GPU 0

Problem info:
    Range of matrix coefficients:    [2e-03,2e-01]
    Range of rhs coefficients:       [2e-02,5e-01]
    Range of bound coefficients:     [1e+01,2e+01]
    Range of cost coefficients:      [7e-02,1e+02]

Iterations       Primal.Obj         Dual.Obj        Gap  Primal.Inf  Dual.Inf    Time
         0  +0.00000000e+00  +0.00000000e+00  +0.00e+00    1.71e+02  0.00e+00   0.41s
      4000  +2.98256689e+04  +1.56206119e+04  +1.42e+04    2.49e-01  2.16e+01   1.22s
      8000  +3.07125175e+04  +2.86771525e+04  +2.04e+03    2.87e-02  1.32e+00   1.71s
     12000  +3.07596000e+04  +2.78594921e+04  +2.90e+03    2.92e-02  9.50e-01   2.22s
     16000  +3.04498009e+04  +2.91989035e+04  +1.25e+03    1.24e-02  1.28e+00   2.71s
     20000  +3.01873180e+04  +2.97569127e+04  +4.30e+02    5.46e-03  3.70e-01   3.20s
     24000  +3.02484546e+04  +2.99559857e+04  +2.92e+02    2.82e-03  2.14e-01   3.70s
     28000  +3.02375446e+04  +3.00484188e+04  +1.89e+02    3.19e-03  1.49e-01   4.19s
     32000  +3.02143422e+04  +3.02026327e+04  +1.17e+01    2.64e-02  3.20e-02   4.69s
     33800  +3.02266059e+04  +3.02237759e+04  +2.83e+00    1.71e-02  1.35e-02   4.91s

PDLP status:                     OPTIMAL
PDLP iterations:                 33800
Primal objective:                3.02266059e+04
Dual objective:                  3.02237759e+04
Primal infeasibility (abs/rel):  1.71e-02 / 9.98e-05
Dual infeasibility (abs/rel):    1.35e-02 / 2.21e-06
Duality gap (abs/rel):           2.83e+00 / 4.68e-05


Solving finished
Status: Optimal  Objective: 3.0226605881e+04  Iterations: 33800(0)  Time: 4.96s
COPT> read instance21.mps
Reading from 'C:\Users\.PC\highs_test\instance21.mps'
Reading finished (0.03s)
COPT> opt
Model fingerprint: 8d056eaa

Using Cardinal Optimizer v8.0.1 on Windows
Hardware has 8 cores and 16 threads. Using instruction set X86_NATIVE (1)
Minimizing an LP problem

The original problem has:
    1556 rows, 9235 columns and 603232 non-zero elements
The presolved problem has:
    1556 rows, 9235 columns and 603232 non-zero elements

Hardware has 1 supported GPU device with CUDA 12.8
  GPU 0: NVIDIA GeForce RTX 3080 (CUDA capability 8.6)

Starting PDLP solver using GPU 0

Problem info:
    Range of matrix coefficients:    [3e-03,1e-01]
    Range of rhs coefficients:       [9e-02,9e-01]
    Range of bound coefficients:     [7e+00,1e+01]
    Range of cost coefficients:      [9e-02,1e+02]

Iterations       Primal.Obj         Dual.Obj        Gap  Primal.Inf  Dual.Inf    Time
         0  +0.00000000e+00  +0.00000000e+00  +0.00e+00    2.36e+02  0.00e+00   0.19s
      4000  +2.23292760e+04  +1.68663408e+04  +5.46e+03    1.57e-01  2.34e+01   0.74s
      8000  +2.15327786e+04  +2.06300229e+04  +9.03e+02    6.57e-02  2.10e+00   0.99s
     12000  +2.12253136e+04  +2.11081129e+04  +1.17e+02    6.27e-01  1.05e-01   1.24s
     13200  +2.11208830e+04  +2.11212373e+04  +3.54e-01    8.80e-03  1.15e-02   1.33s

PDLP status:                     OPTIMAL
PDLP iterations:                 13200
Primal objective:                2.11208830e+04
Dual objective:                  2.11212373e+04
Primal infeasibility (abs/rel):  8.80e-03 / 3.71e-05
Dual infeasibility (abs/rel):    1.15e-02 / 2.90e-06
Duality gap (abs/rel):           3.54e-01 / 8.39e-06


Solving finished
Status: Optimal  Objective: 2.1120883035e+04  Iterations: 13200(0)  Time: 1.37s
COPT> set pdlptol 1e-5
Setting parameter 'PDLPTol' to 1e-05
COPT> opt
Model fingerprint: 8d056eaa

Using Cardinal Optimizer v8.0.1 on Windows
Hardware has 8 cores and 16 threads. Using instruction set X86_NATIVE (1)
Minimizing an LP problem

The original problem has:
    1556 rows, 9235 columns and 603232 non-zero elements
The presolved problem has:
    1556 rows, 9235 columns and 603232 non-zero elements

Hardware has 1 supported GPU device with CUDA 12.8
  GPU 0: NVIDIA GeForce RTX 3080 (CUDA capability 8.6)

Starting PDLP solver using GPU 0

Problem info:
    Range of matrix coefficients:    [3e-03,1e-01]
    Range of rhs coefficients:       [9e-02,9e-01]
    Range of bound coefficients:     [7e+00,1e+01]
    Range of cost coefficients:      [9e-02,1e+02]

Iterations       Primal.Obj         Dual.Obj        Gap  Primal.Inf  Dual.Inf    Time
         0  +0.00000000e+00  +0.00000000e+00  +0.00e+00    2.36e+02  0.00e+00   0.19s
      4000  +2.23292760e+04  +1.68663408e+04  +5.46e+03    1.57e-01  2.34e+01   0.78s
      8000  +2.15327786e+04  +2.06300229e+04  +9.03e+02    6.57e-02  2.10e+00   1.03s
     12000  +2.12253136e+04  +2.11081129e+04  +1.17e+02    6.27e-01  1.05e-01   1.29s
     16000  +2.11513432e+04  +2.11281016e+04  +2.32e+01    3.99e-03  1.35e-02   1.55s
     18440  +2.11295378e+04  +2.11291623e+04  +3.76e-01    2.23e-03  7.55e-03   1.71s

PDLP status:                     OPTIMAL
PDLP iterations:                 18440
Primal objective:                2.11295378e+04
Dual objective:                  2.11291623e+04
Primal infeasibility (abs/rel):  2.23e-03 / 9.41e-06
Dual infeasibility (abs/rel):    7.55e-03 / 1.91e-06
Duality gap (abs/rel):           3.76e-01 / 8.89e-06


Solving finished
Status: Optimal  Objective: 2.1129537831e+04  Iterations: 18440(0)  Time: 1.76s
COPT> set pdlptol 1e-6
Setting parameter 'PDLPTol' to 1e-06
COPT> opt
Model fingerprint: 8d056eaa

Using Cardinal Optimizer v8.0.1 on Windows
Hardware has 8 cores and 16 threads. Using instruction set X86_NATIVE (1)
Minimizing an LP problem

The original problem has:
    1556 rows, 9235 columns and 603232 non-zero elements
The presolved problem has:
    1556 rows, 9235 columns and 603232 non-zero elements

Hardware has 1 supported GPU device with CUDA 12.8
  GPU 0: NVIDIA GeForce RTX 3080 (CUDA capability 8.6)

Starting PDLP solver using GPU 0

Problem info:
    Range of matrix coefficients:    [3e-03,1e-01]
    Range of rhs coefficients:       [9e-02,9e-01]
    Range of bound coefficients:     [7e+00,1e+01]
    Range of cost coefficients:      [9e-02,1e+02]

Iterations       Primal.Obj         Dual.Obj        Gap  Primal.Inf  Dual.Inf    Time
         0  +0.00000000e+00  +0.00000000e+00  +0.00e+00    2.36e+02  0.00e+00   0.19s
      4000  +2.23292760e+04  +1.68663408e+04  +5.46e+03    1.57e-01  2.34e+01   0.64s
      8000  +2.15327786e+04  +2.06300229e+04  +9.03e+02    6.57e-02  2.10e+00   0.89s
     12000  +2.12253136e+04  +2.11081129e+04  +1.17e+02    6.27e-01  1.05e-01   1.16s
     16000  +2.11513432e+04  +2.11281016e+04  +2.32e+01    3.99e-03  1.35e-02   1.41s
     20000  +2.11467450e+04  +2.11298972e+04  +1.68e+01    2.44e-03  2.85e-03   1.68s
     24000  +2.11562881e+04  +2.11319121e+04  +2.44e+01    4.38e-03  2.12e-03   1.94s
     28000  +2.11015027e+04  +2.11322662e+04  +3.08e+01    4.28e-03  1.42e-04   2.19s
     32000  +2.11495696e+04  +2.11321094e+04  +1.75e+01    2.28e-03  2.43e-04   2.44s
     36000  +2.11325875e+04  +2.11323206e+04  +2.67e-01    1.45e-04  5.75e-05   2.69s
     36080  +2.11323351e+04  +2.11323159e+04  +1.91e-02    1.20e-04  5.97e-05   2.70s

PDLP status:                     OPTIMAL
PDLP iterations:                 36080
Primal objective:                2.11323351e+04
Dual objective:                  2.11323159e+04
Primal infeasibility (abs/rel):  1.20e-04 / 5.06e-07
Dual infeasibility (abs/rel):    5.97e-05 / 1.51e-08
Duality gap (abs/rel):           1.91e-02 / 4.53e-07


Solving finished
Status: Optimal  Objective: 2.1132335057e+04  Iterations: 36080(0)  Time: 2.75s
COPT>


@PC:~/cuPDLPx-main/cuPDLPx-main/build$ ./cupdlpx --verbose --eps_opt 1e-6 instance24.mps log
---------------------------------------------------------------------------------------
                                    cuPDLPx v0.1.4
                        A GPU-Accelerated First-Order LP Solver
               (c) Haihao Lu, Massachusetts Institute of Technology, 2025
---------------------------------------------------------------------------------------
problem:
  variables     : 84693
  constraints   : 14135
  nnz(A)        : 11800327
settings:
  iter_limit         : 2147483647
  time_limit         : 3600.00 sec
  eps_opt            : 1.0e-06
  eps_feas           : 1.0e-04
  eps_infeas_detect  : 1.0e-10
---------------------------------------------------------------------------------------
   runtime     |     objective      |   absolute residuals    |   relative residuals
  iter   time  |  pr obj    du obj  |  pr res  du res   gap   |  pr res  du res   gap
---------------------------------------------------------------------------------------
     0 1.0e-03 |  0.0e+00   0.0e+00 | 1.1e+04 2.0e+04 0.0e+00 | 1.0e+00 1.0e+00 0.0e+00
    10 8.6e-03 |  7.4e+05   1.0e+07 | 2.9e+03 1.5e+06 9.6e+06 | 2.6e-01 7.5e+01 8.7e-01
    20 1.7e-02 |  8.0e+05   5.8e+06 | 1.6e+03 9.2e+05 5.0e+06 | 1.4e-01 4.5e+01 7.6e-01
    30 2.3e-02 |  4.2e+05   4.9e+06 | 4.1e+02 6.7e+05 4.5e+06 | 3.7e-02 3.3e+01 8.4e-01
    40 3.0e-02 |  2.4e+05   3.4e+06 | 3.9e+02 5.1e+05 3.1e+06 | 3.5e-02 2.5e+01 8.6e-01
    50 3.6e-02 |  1.9e+05   2.3e+06 | 3.7e+02 3.9e+05 2.1e+06 | 3.4e-02 1.9e+01 8.4e-01
    60 4.3e-02 |  1.9e+05   1.8e+06 | 2.3e+02 3.3e+05 1.6e+06 | 2.1e-02 1.6e+01 8.1e-01
    70 5.1e-02 |  1.6e+05   1.7e+06 | 2.4e+02 3.1e+05 1.5e+06 | 2.2e-02 1.5e+01 8.3e-01
    80 5.7e-02 |  1.3e+05   1.7e+06 | 2.2e+02 3.0e+05 1.5e+06 | 2.0e-02 1.5e+01 8.5e-01
    90 6.3e-02 |  1.4e+05   1.5e+06 | 1.3e+02 2.8e+05 1.4e+06 | 1.2e-02 1.4e+01 8.3e-01
   100 7.0e-02 |  1.6e+05   1.3e+06 | 1.1e+02 2.5e+05 1.2e+06 | 9.9e-03 1.2e+01 7.9e-01
   110 7.8e-02 |  1.4e+05   1.2e+06 | 1.0e+02 2.2e+05 1.0e+06 | 9.2e-03 1.1e+01 7.8e-01
   120 8.4e-02 |  1.3e+05   1.1e+06 | 8.7e+01 2.0e+05 9.3e+05 | 7.8e-03 1.0e+01 7.9e-01
   130 9.1e-02 |  1.2e+05   1.0e+06 | 1.1e+02 1.9e+05 8.8e+05 | 1.0e-02 9.5e+00 7.8e-01
   140 9.7e-02 |  1.2e+05   9.9e+05 | 9.8e+01 1.9e+05 8.6e+05 | 8.9e-03 9.2e+00 7.8e-01
   150 1.0e-01 |  1.2e+05   9.4e+05 | 6.8e+01 1.8e+05 8.2e+05 | 6.1e-03 8.7e+00 7.7e-01
   160 1.1e-01 |  1.2e+05   8.7e+05 | 5.0e+01 1.6e+05 7.5e+05 | 4.5e-03 8.1e+00 7.6e-01
   170 1.2e-01 |  1.1e+05   8.0e+05 | 4.4e+01 1.5e+05 6.9e+05 | 4.0e-03 7.6e+00 7.5e-01
   180 1.2e-01 |  1.1e+05   7.7e+05 | 5.7e+01 1.5e+05 6.6e+05 | 5.2e-03 7.2e+00 7.5e-01
   190 1.3e-01 |  1.1e+05   7.5e+05 | 5.7e+01 1.4e+05 6.5e+05 | 5.2e-03 7.0e+00 7.5e-01
   200 1.4e-01 |  1.0e+05   7.3e+05 | 4.7e+01 1.4e+05 6.3e+05 | 4.3e-03 6.7e+00 7.5e-01
   210 1.5e-01 |  1.1e+05   3.6e+05 | 5.5e+02 1.0e+05 2.5e+05 | 5.0e-02 4.9e+00 5.3e-01
   220 1.5e-01 |  1.1e+05   1.9e+05 | 7.3e+02 8.7e+04 7.8e+04 | 6.6e-02 4.3e+00 2.6e-01
   230 1.6e-01 |  1.1e+05   1.3e+05 | 5.3e+02 7.4e+04 2.2e+04 | 4.8e-02 3.6e+00 8.9e-02
   240 1.7e-01 |  9.7e+04   1.2e+05 | 3.4e+02 6.4e+04 2.7e+04 | 3.0e-02 3.2e+00 1.2e-01
   250 1.7e-01 |  9.0e+04   1.4e+05 | 3.2e+02 5.7e+04 4.9e+04 | 2.9e-02 2.8e+00 2.2e-01
   260 1.8e-01 |  8.7e+04   1.3e+05 | 3.7e+02 5.2e+04 4.4e+04 | 3.3e-02 2.6e+00 2.0e-01
   270 1.9e-01 |  8.6e+04   1.1e+05 | 3.6e+02 4.7e+04 2.1e+04 | 3.2e-02 2.3e+00 1.1e-01
   280 1.9e-01 |  8.8e+04   9.7e+04 | 3.0e+02 4.3e+04 8.9e+03 | 2.7e-02 2.1e+00 4.9e-02
   290 2.0e-01 |  8.7e+04   1.0e+05 | 2.7e+02 3.9e+04 1.3e+04 | 2.4e-02 1.9e+00 7.1e-02
   300 2.1e-01 |  8.5e+04   1.0e+05 | 2.7e+02 3.6e+04 1.6e+04 | 2.5e-02 1.8e+00 8.8e-02
   310 2.1e-01 |  8.3e+04   9.3e+04 | 2.7e+02 3.4e+04 1.0e+04 | 2.5e-02 1.7e+00 5.8e-02
   320 2.2e-01 |  8.3e+04   8.6e+04 | 2.5e+02 3.1e+04 2.9e+03 | 2.2e-02 1.5e+00 1.7e-02
   330 2.3e-01 |  8.3e+04   8.8e+04 | 2.1e+02 2.9e+04 5.1e+03 | 1.9e-02 1.4e+00 3.0e-02
   340 2.3e-01 |  8.2e+04   9.0e+04 | 2.1e+02 2.8e+04 8.0e+03 | 1.9e-02 1.4e+00 4.7e-02
   350 2.4e-01 |  8.0e+04   8.6e+04 | 2.2e+02 2.6e+04 6.0e+03 | 2.0e-02 1.3e+00 3.6e-02
   360 2.5e-01 |  7.9e+04   8.2e+04 | 2.0e+02 2.4e+04 2.4e+03 | 1.8e-02 1.2e+00 1.5e-02
   370 2.5e-01 |  7.9e+04   8.1e+04 | 1.8e+02 2.3e+04 2.4e+03 | 1.6e-02 1.2e+00 1.5e-02
   380 2.6e-01 |  7.8e+04   8.3e+04 | 1.7e+02 2.2e+04 4.9e+03 | 1.6e-02 1.1e+00 3.0e-02
   390 2.7e-01 |  7.6e+04   8.0e+04 | 1.7e+02 2.1e+04 3.6e+03 | 1.6e-02 1.1e+00 2.3e-02
   400 2.8e-01 |  7.6e+04   7.8e+04 | 1.6e+02 2.0e+04 2.1e+03 | 1.5e-02 1.0e+00 1.3e-02
   410 2.8e-01 |  7.5e+04   6.4e+04 | 1.6e+02 1.8e+04 1.1e+04 | 1.4e-02 9.0e-01 8.1e-02
   420 2.9e-01 |  7.5e+04   6.2e+04 | 1.4e+02 1.8e+04 1.3e+04 | 1.3e-02 8.8e-01 9.6e-02
   430 3.0e-01 |  7.5e+04   6.2e+04 | 1.3e+02 1.8e+04 1.2e+04 | 1.2e-02 8.7e-01 9.0e-02
   440 3.0e-01 |  7.4e+04   6.2e+04 | 1.3e+02 1.8e+04 1.2e+04 | 1.2e-02 8.7e-01 8.5e-02
   450 3.1e-01 |  7.3e+04   6.1e+04 | 1.3e+02 1.8e+04 1.2e+04 | 1.1e-02 8.7e-01 9.1e-02
   460 3.2e-01 |  7.2e+04   5.9e+04 | 1.2e+02 1.7e+04 1.3e+04 | 1.1e-02 8.6e-01 9.9e-02
   470 3.2e-01 |  7.1e+04   5.9e+04 | 1.1e+02 1.7e+04 1.2e+04 | 1.0e-02 8.5e-01 9.2e-02
   480 3.3e-01 |  7.0e+04   6.0e+04 | 1.1e+02 1.7e+04 1.1e+04 | 9.6e-03 8.4e-01 8.1e-02
   490 3.4e-01 |  7.0e+04   6.0e+04 | 1.0e+02 1.7e+04 9.6e+03 | 9.3e-03 8.2e-01 7.4e-02
   500 3.4e-01 |  6.9e+04   6.0e+04 | 9.9e+01 1.6e+04 9.0e+03 | 9.0e-03 8.1e-01 7.0e-02
   510 3.5e-01 |  6.8e+04   6.0e+04 | 9.5e+01 1.6e+04 7.9e+03 | 8.6e-03 7.9e-01 6.1e-02
   520 3.6e-01 |  6.8e+04   6.1e+04 | 9.2e+01 1.6e+04 6.7e+03 | 8.3e-03 7.7e-01 5.2e-02
   530 3.6e-01 |  6.7e+04   6.1e+04 | 8.9e+01 1.5e+04 6.0e+03 | 8.0e-03 7.6e-01 4.7e-02
   540 3.7e-01 |  6.6e+04   6.1e+04 | 8.6e+01 1.5e+04 5.3e+03 | 7.8e-03 7.4e-01 4.2e-02
   550 3.7e-01 |  6.5e+04   6.1e+04 | 8.3e+01 1.5e+04 4.4e+03 | 7.5e-03 7.2e-01 3.4e-02
   560 3.8e-01 |  6.5e+04   6.1e+04 | 7.9e+01 1.4e+04 3.6e+03 | 7.1e-03 7.1e-01 2.8e-02
   570 3.9e-01 |  6.4e+04   6.1e+04 | 7.7e+01 1.4e+04 3.0e+03 | 7.0e-03 6.9e-01 2.4e-02
   580 4.0e-01 |  6.3e+04   6.1e+04 | 7.5e+01 1.4e+04 2.2e+03 | 6.8e-03 6.8e-01 1.7e-02
   590 4.0e-01 |  6.3e+04   6.1e+04 | 7.3e+01 1.3e+04 1.4e+03 | 6.6e-03 6.6e-01 1.2e-02
   600 4.1e-01 |  6.2e+04   6.1e+04 | 6.9e+01 1.3e+04 7.9e+02 | 6.3e-03 6.4e-01 6.4e-03
   610 4.2e-01 |  6.2e+04   6.1e+04 | 6.8e+01 1.3e+04 4.2e+02 | 6.2e-03 6.3e-01 3.4e-03
   620 4.2e-01 |  6.1e+04   6.1e+04 | 6.7e+01 1.3e+04 2.5e+02 | 6.0e-03 6.2e-01 2.1e-03
   630 4.3e-01 |  6.0e+04   6.1e+04 | 6.4e+01 1.2e+04 8.7e+02 | 5.8e-03 6.1e-01 7.1e-03
   640 4.4e-01 |  6.0e+04   6.1e+04 | 6.3e+01 1.2e+04 1.3e+03 | 5.7e-03 5.9e-01 1.1e-02
   650 4.4e-01 |  5.9e+04   6.1e+04 | 6.1e+01 1.2e+04 1.9e+03 | 5.6e-03 5.8e-01 1.6e-02
   660 4.5e-01 |  5.9e+04   6.1e+04 | 6.0e+01 1.2e+04 2.3e+03 | 5.5e-03 5.7e-01 1.9e-02
   670 4.6e-01 |  5.8e+04   6.1e+04 | 5.9e+01 1.1e+04 2.7e+03 | 5.3e-03 5.6e-01 2.3e-02
   680 4.6e-01 |  5.8e+04   6.1e+04 | 5.8e+01 1.1e+04 3.1e+03 | 5.2e-03 5.5e-01 2.6e-02
   690 4.7e-01 |  5.7e+04   6.1e+04 | 5.7e+01 1.1e+04 3.4e+03 | 5.1e-03 5.4e-01 2.9e-02
   700 4.7e-01 |  5.7e+04   6.1e+04 | 5.6e+01 1.1e+04 3.7e+03 | 5.1e-03 5.3e-01 3.1e-02
   710 4.8e-01 |  5.7e+04   6.1e+04 | 5.5e+01 1.0e+04 4.0e+03 | 5.0e-03 5.2e-01 3.4e-02
   720 4.9e-01 |  5.6e+04   6.1e+04 | 5.4e+01 1.0e+04 4.3e+03 | 4.9e-03 5.1e-01 3.7e-02
   730 4.9e-01 |  5.6e+04   6.0e+04 | 5.3e+01 1.0e+04 4.5e+03 | 4.8e-03 5.0e-01 3.8e-02
   740 5.0e-01 |  5.6e+04   6.0e+04 | 5.2e+01 1.0e+04 4.7e+03 | 4.7e-03 4.9e-01 4.0e-02
   750 5.1e-01 |  5.5e+04   6.0e+04 | 5.1e+01 9.8e+03 4.9e+03 | 4.6e-03 4.9e-01 4.2e-02
   760 5.2e-01 |  5.5e+04   6.0e+04 | 5.1e+01 9.7e+03 5.1e+03 | 4.6e-03 4.8e-01 4.5e-02
   770 5.2e-01 |  5.5e+04   6.0e+04 | 4.9e+01 9.5e+03 5.2e+03 | 4.5e-03 4.7e-01 4.6e-02
   780 5.3e-01 |  5.4e+04   6.0e+04 | 4.9e+01 9.4e+03 5.5e+03 | 4.4e-03 4.6e-01 4.8e-02
   790 5.3e-01 |  5.4e+04   6.0e+04 | 4.9e+01 9.2e+03 5.7e+03 | 4.4e-03 4.6e-01 5.0e-02
   800 5.4e-01 |  5.4e+04   6.0e+04 | 4.8e+01 9.1e+03 6.0e+03 | 4.4e-03 4.5e-01 5.3e-02
   810 5.5e-01 |  5.3e+04   5.9e+04 | 4.7e+01 8.6e+03 5.1e+03 | 4.2e-03 4.3e-01 4.6e-02
   820 5.6e-01 |  5.3e+04   5.8e+04 | 4.6e+01 8.6e+03 4.9e+03 | 4.2e-03 4.2e-01 4.4e-02
   830 5.6e-01 |  5.3e+04   5.8e+04 | 4.6e+01 8.5e+03 4.7e+03 | 4.2e-03 4.2e-01 4.3e-02
   840 5.7e-01 |  5.3e+04   5.7e+04 | 4.6e+01 8.4e+03 4.7e+03 | 4.1e-03 4.1e-01 4.3e-02
   850 5.8e-01 |  5.2e+04   5.7e+04 | 4.6e+01 8.3e+03 4.9e+03 | 4.1e-03 4.1e-01 4.5e-02
   860 5.8e-01 |  5.2e+04   5.7e+04 | 4.5e+01 8.2e+03 4.9e+03 | 4.0e-03 4.0e-01 4.5e-02
   870 5.9e-01 |  5.2e+04   5.7e+04 | 4.4e+01 8.1e+03 5.0e+03 | 4.0e-03 4.0e-01 4.6e-02
   880 6.0e-01 |  5.2e+04   5.7e+04 | 4.3e+01 8.0e+03 4.9e+03 | 3.9e-03 4.0e-01 4.6e-02
   890 6.0e-01 |  5.1e+04   5.6e+04 | 4.2e+01 7.9e+03 5.0e+03 | 3.8e-03 3.9e-01 4.7e-02
   900 6.1e-01 |  5.1e+04   5.6e+04 | 4.2e+01 7.8e+03 5.1e+03 | 3.8e-03 3.9e-01 4.8e-02
   910 6.2e-01 |  5.1e+04   5.6e+04 | 4.1e+01 7.7e+03 5.3e+03 | 3.7e-03 3.8e-01 4.9e-02
   920 6.2e-01 |  5.1e+04   5.6e+04 | 4.0e+01 7.6e+03 5.4e+03 | 3.6e-03 3.7e-01 5.1e-02
   930 6.3e-01 |  5.0e+04   5.6e+04 | 3.9e+01 7.4e+03 5.6e+03 | 3.5e-03 3.7e-01 5.2e-02
   940 6.4e-01 |  5.0e+04   5.6e+04 | 3.8e+01 7.3e+03 5.7e+03 | 3.5e-03 3.6e-01 5.3e-02
   950 6.4e-01 |  5.0e+04   5.6e+04 | 3.7e+01 7.2e+03 5.7e+03 | 3.4e-03 3.6e-01 5.4e-02
   960 6.5e-01 |  5.0e+04   5.6e+04 | 3.5e+01 7.1e+03 5.8e+03 | 3.2e-03 3.5e-01 5.5e-02
   970 6.5e-01 |  5.0e+04   5.6e+04 | 3.5e+01 7.0e+03 5.9e+03 | 3.1e-03 3.4e-01 5.6e-02
   980 6.6e-01 |  5.0e+04   5.6e+04 | 3.4e+01 6.9e+03 6.0e+03 | 3.1e-03 3.4e-01 5.7e-02
   990 6.7e-01 |  4.9e+04   5.5e+04 | 3.3e+01 6.8e+03 6.1e+03 | 3.0e-03 3.3e-01 5.8e-02
  1000 6.8e-01 |  4.9e+04   5.5e+04 | 3.1e+01 6.7e+03 6.1e+03 | 2.8e-03 3.3e-01 5.8e-02
  1100 7.3e-01 |  4.8e+04   5.4e+04 | 2.6e+01 5.8e+03 6.4e+03 | 2.4e-03 2.9e-01 6.3e-02
  1200 7.9e-01 |  4.7e+04   5.3e+04 | 2.3e+01 5.1e+03 6.4e+03 | 2.1e-03 2.5e-01 6.4e-02
  1300 8.4e-01 |  4.6e+04   5.3e+04 | 1.8e+01 4.7e+03 6.3e+03 | 1.6e-03 2.3e-01 6.4e-02
  1400 9.0e-01 |  4.6e+04   5.2e+04 | 1.4e+01 4.3e+03 6.2e+03 | 1.3e-03 2.1e-01 6.4e-02
  1500 9.6e-01 |  4.5e+04   5.0e+04 | 1.5e+01 3.6e+03 5.3e+03 | 1.4e-03 1.8e-01 5.5e-02
  1600 1.0e+00 |  4.5e+04   4.9e+04 | 1.6e+01 3.1e+03 4.9e+03 | 1.5e-03 1.5e-01 5.2e-02
  1700 1.1e+00 |  4.4e+04   4.9e+04 | 1.7e+01 2.7e+03 4.7e+03 | 1.5e-03 1.4e-01 5.0e-02
  1800 1.1e+00 |  4.4e+04   4.8e+04 | 1.5e+01 2.5e+03 4.4e+03 | 1.4e-03 1.2e-01 4.8e-02
  1900 1.2e+00 |  4.4e+04   4.8e+04 | 1.4e+01 2.3e+03 4.2e+03 | 1.2e-03 1.1e-01 4.6e-02
  2000 1.2e+00 |  4.3e+04   4.7e+04 | 1.1e+01 2.1e+03 4.0e+03 | 9.9e-04 1.0e-01 4.4e-02
  2100 1.3e+00 |  4.3e+04   4.7e+04 | 9.2e+00 1.9e+03 3.8e+03 | 8.3e-04 9.5e-02 4.3e-02
  2200 1.4e+00 |  4.3e+04   4.7e+04 | 8.1e+00 1.8e+03 3.6e+03 | 7.3e-04 8.9e-02 4.1e-02
  2300 1.4e+00 |  4.3e+04   4.6e+04 | 8.7e+00 1.5e+03 3.0e+03 | 7.9e-04 7.4e-02 3.4e-02
  2400 1.5e+00 |  4.2e+04   4.5e+04 | 1.0e+01 1.3e+03 2.7e+03 | 9.2e-04 6.4e-02 3.1e-02
  2500 1.5e+00 |  4.2e+04   4.5e+04 | 1.1e+01 1.1e+03 2.5e+03 | 1.0e-03 5.6e-02 2.9e-02
  2600 1.6e+00 |  4.2e+04   4.4e+04 | 1.1e+01 1.0e+03 2.3e+03 | 1.0e-03 4.9e-02 2.7e-02
  2700 1.6e+00 |  4.2e+04   4.4e+04 | 9.8e+00 8.9e+02 2.2e+03 | 8.9e-04 4.4e-02 2.6e-02
  2800 1.7e+00 |  4.2e+04   4.4e+04 | 1.0e+01 8.1e+02 2.1e+03 | 9.2e-04 4.0e-02 2.4e-02
  2900 1.8e+00 |  4.2e+04   4.4e+04 | 1.0e+01 7.4e+02 2.0e+03 | 9.4e-04 3.7e-02 2.4e-02
  3000 1.8e+00 |  4.2e+04   4.4e+04 | 1.0e+01 6.8e+02 1.9e+03 | 9.2e-04 3.3e-02 2.2e-02
  3100 1.9e+00 |  4.2e+04   4.4e+04 | 9.3e+00 6.2e+02 1.9e+03 | 8.4e-04 3.1e-02 2.2e-02
  3200 1.9e+00 |  4.2e+04   4.3e+04 | 8.3e+00 5.7e+02 1.8e+03 | 7.5e-04 2.8e-02 2.1e-02
  3300 2.0e+00 |  4.2e+04   4.3e+04 | 7.4e+00 5.4e+02 1.7e+03 | 6.7e-04 2.7e-02 2.0e-02
  3400 2.0e+00 |  4.2e+04   4.3e+04 | 6.6e+00 5.1e+02 1.7e+03 | 5.9e-04 2.5e-02 2.0e-02
  3500 2.1e+00 |  4.2e+04   4.3e+04 | 6.1e+00 4.8e+02 1.6e+03 | 5.5e-04 2.4e-02 1.9e-02
  3600 2.2e+00 |  4.2e+04   4.3e+04 | 5.6e+00 4.5e+02 1.6e+03 | 5.1e-04 2.2e-02 1.8e-02
  3700 2.2e+00 |  4.1e+04   4.3e+04 | 5.5e+00 3.7e+02 1.2e+03 | 5.0e-04 1.8e-02 1.5e-02
  3800 2.3e+00 |  4.1e+04   4.3e+04 | 6.0e+00 3.2e+02 1.1e+03 | 5.5e-04 1.6e-02 1.3e-02
  3900 2.3e+00 |  4.1e+04   4.2e+04 | 6.5e+00 2.7e+02 1.0e+03 | 5.9e-04 1.4e-02 1.2e-02
  4000 2.4e+00 |  4.1e+04   4.2e+04 | 6.5e+00 2.4e+02 9.6e+02 | 5.8e-04 1.2e-02 1.1e-02
  4100 2.4e+00 |  4.1e+04   4.2e+04 | 6.4e+00 2.1e+02 9.2e+02 | 5.8e-04 1.0e-02 1.1e-02
  4200 2.5e+00 |  4.1e+04   4.2e+04 | 5.6e+00 1.9e+02 8.7e+02 | 5.1e-04 9.2e-03 1.0e-02
  4300 2.6e+00 |  4.1e+04   4.2e+04 | 5.3e+00 1.7e+02 8.4e+02 | 4.8e-04 8.3e-03 1.0e-02
  4400 2.6e+00 |  4.1e+04   4.2e+04 | 4.8e+00 1.5e+02 8.2e+02 | 4.4e-04 7.6e-03 9.8e-03
  4500 2.7e+00 |  4.1e+04   4.2e+04 | 4.8e+00 1.4e+02 7.8e+02 | 4.3e-04 6.9e-03 9.4e-03
  4600 2.7e+00 |  4.1e+04   4.2e+04 | 4.3e+00 1.3e+02 7.6e+02 | 3.8e-04 6.3e-03 9.1e-03
  4700 2.8e+00 |  4.1e+04   4.2e+04 | 4.3e+00 1.2e+02 7.4e+02 | 3.8e-04 5.8e-03 8.9e-03
  4800 2.8e+00 |  4.1e+04   4.2e+04 | 3.6e+00 1.1e+02 7.2e+02 | 3.3e-04 5.4e-03 8.6e-03
  4900 2.9e+00 |  4.1e+04   4.2e+04 | 3.3e+00 1.0e+02 7.0e+02 | 3.0e-04 4.9e-03 8.4e-03
  5000 3.0e+00 |  4.1e+04   4.2e+04 | 3.3e+00 9.4e+01 6.9e+02 | 3.0e-04 4.6e-03 8.2e-03
  5100 3.0e+00 |  4.1e+04   4.2e+04 | 3.3e+00 8.8e+01 6.6e+02 | 3.0e-04 4.3e-03 7.9e-03
  5200 3.1e+00 |  4.1e+04   4.2e+04 | 3.1e+00 8.4e+01 6.5e+02 | 2.8e-04 4.1e-03 7.8e-03
  5300 3.1e+00 |  4.1e+04   4.2e+04 | 2.9e+00 7.9e+01 6.5e+02 | 2.6e-04 3.9e-03 7.7e-03
  5400 3.2e+00 |  4.1e+04   4.2e+04 | 2.8e+00 7.5e+01 6.3e+02 | 2.5e-04 3.7e-03 7.6e-03
  5500 3.2e+00 |  4.1e+04   4.2e+04 | 2.6e+00 7.1e+01 6.2e+02 | 2.4e-04 3.5e-03 7.5e-03
  5600 3.3e+00 |  4.1e+04   4.2e+04 | 2.5e+00 6.8e+01 6.1e+02 | 2.3e-04 3.3e-03 7.3e-03
  5700 3.4e+00 |  4.1e+04   4.2e+04 | 2.5e+00 5.3e+01 5.5e+02 | 2.3e-04 2.6e-03 6.6e-03
  5800 3.4e+00 |  4.1e+04   4.2e+04 | 2.4e+00 4.7e+01 5.3e+02 | 2.2e-04 2.3e-03 6.3e-03
  5900 3.5e+00 |  4.1e+04   4.2e+04 | 2.4e+00 4.2e+01 5.1e+02 | 2.1e-04 2.1e-03 6.1e-03
  6000 3.5e+00 |  4.1e+04   4.2e+04 | 2.3e+00 3.8e+01 5.0e+02 | 2.1e-04 1.9e-03 6.0e-03
  6100 3.6e+00 |  4.1e+04   4.2e+04 | 2.2e+00 3.4e+01 4.9e+02 | 2.0e-04 1.7e-03 5.9e-03
  6200 3.6e+00 |  4.1e+04   4.2e+04 | 2.1e+00 3.1e+01 4.8e+02 | 1.9e-04 1.5e-03 5.8e-03
  6300 3.7e+00 |  4.1e+04   4.2e+04 | 2.1e+00 2.9e+01 4.8e+02 | 1.9e-04 1.4e-03 5.7e-03
  6400 3.8e+00 |  4.1e+04   4.2e+04 | 2.0e+00 2.7e+01 4.7e+02 | 1.8e-04 1.3e-03 5.7e-03
  6500 3.8e+00 |  4.1e+04   4.2e+04 | 2.0e+00 2.5e+01 4.7e+02 | 1.8e-04 1.3e-03 5.6e-03
  6600 3.9e+00 |  4.1e+04   4.2e+04 | 2.0e+00 2.4e+01 4.6e+02 | 1.8e-04 1.2e-03 5.5e-03
  6700 3.9e+00 |  4.1e+04   4.2e+04 | 1.9e+00 2.2e+01 4.6e+02 | 1.7e-04 1.1e-03 5.5e-03
  6800 4.0e+00 |  4.1e+04   4.2e+04 | 1.9e+00 2.1e+01 4.6e+02 | 1.7e-04 1.0e-03 5.5e-03
  6900 4.0e+00 |  4.1e+04   4.2e+04 | 1.8e+00 1.9e+01 4.6e+02 | 1.6e-04 9.6e-04 5.5e-03
  7000 4.1e+00 |  4.1e+04   4.2e+04 | 1.7e+00 1.9e+01 4.5e+02 | 1.5e-04 9.2e-04 5.4e-03
  7100 4.2e+00 |  4.1e+04   4.2e+04 | 1.7e+00 1.8e+01 4.5e+02 | 1.5e-04 8.8e-04 5.4e-03
  7200 4.2e+00 |  4.1e+04   4.2e+04 | 1.6e+00 1.7e+01 4.4e+02 | 1.4e-04 8.4e-04 5.3e-03
  7300 4.3e+00 |  4.1e+04   4.2e+04 | 1.5e+00 1.6e+01 4.4e+02 | 1.4e-04 8.0e-04 5.3e-03
  7400 4.3e+00 |  4.1e+04   4.2e+04 | 1.5e+00 1.6e+01 4.4e+02 | 1.4e-04 7.8e-04 5.3e-03
  7500 4.4e+00 |  4.1e+04   4.2e+04 | 1.5e+00 1.5e+01 4.4e+02 | 1.4e-04 7.4e-04 5.3e-03
  7600 4.4e+00 |  4.1e+04   4.2e+04 | 1.5e+00 1.5e+01 4.4e+02 | 1.3e-04 7.2e-04 5.2e-03
  7700 4.5e+00 |  4.2e+04   4.2e+04 | 1.5e+00 1.4e+01 4.3e+02 | 1.3e-04 6.9e-04 5.2e-03
  7800 4.6e+00 |  4.2e+04   4.2e+04 | 1.4e+00 1.4e+01 4.3e+02 | 1.3e-04 6.8e-04 5.2e-03
  7900 4.6e+00 |  4.2e+04   4.2e+04 | 1.4e+00 1.3e+01 4.3e+02 | 1.3e-04 6.5e-04 5.2e-03
  8000 4.7e+00 |  4.2e+04   4.2e+04 | 1.4e+00 1.3e+01 4.3e+02 | 1.3e-04 6.3e-04 5.1e-03
  8100 4.7e+00 |  4.2e+04   4.2e+04 | 1.3e+00 1.3e+01 4.3e+02 | 1.2e-04 6.2e-04 5.1e-03
  8200 4.8e+00 |  4.2e+04   4.2e+04 | 1.3e+00 1.2e+01 4.2e+02 | 1.2e-04 6.1e-04 5.1e-03
  8300 4.8e+00 |  4.2e+04   4.2e+04 | 1.3e+00 1.2e+01 4.2e+02 | 1.2e-04 5.9e-04 5.0e-03
  8400 4.9e+00 |  4.2e+04   4.2e+04 | 1.3e+00 1.2e+01 4.2e+02 | 1.2e-04 5.8e-04 5.0e-03
  8500 5.0e+00 |  4.2e+04   4.2e+04 | 1.3e+00 1.1e+01 4.2e+02 | 1.2e-04 5.6e-04 5.0e-03
  8600 5.0e+00 |  4.2e+04   4.2e+04 | 1.3e+00 1.1e+01 4.2e+02 | 1.2e-04 5.4e-04 5.0e-03
  8700 5.1e+00 |  4.2e+04   4.2e+04 | 1.3e+00 1.1e+01 4.2e+02 | 1.2e-04 5.2e-04 5.0e-03
  8800 5.1e+00 |  4.2e+04   4.2e+04 | 1.3e+00 1.0e+01 4.1e+02 | 1.1e-04 5.1e-04 5.0e-03
  8900 5.2e+00 |  4.2e+04   4.2e+04 | 1.2e+00 1.1e+01 4.1e+02 | 1.1e-04 5.6e-04 4.9e-03
  9000 5.2e+00 |  4.2e+04   4.2e+04 | 1.2e+00 1.2e+01 4.1e+02 | 1.1e-04 5.9e-04 4.9e-03
  9100 5.3e+00 |  4.2e+04   4.2e+04 | 1.2e+00 1.2e+01 4.1e+02 | 1.1e-04 6.1e-04 4.9e-03
  9200 5.4e+00 |  4.2e+04   4.2e+04 | 1.2e+00 1.3e+01 4.1e+02 | 1.1e-04 6.3e-04 4.9e-03
  9300 5.4e+00 |  4.2e+04   4.2e+04 | 1.2e+00 1.3e+01 4.1e+02 | 1.1e-04 6.5e-04 4.9e-03
  9400 5.5e+00 |  4.2e+04   4.2e+04 | 1.1e+00 1.4e+01 4.1e+02 | 1.0e-04 6.7e-04 4.9e-03
  9500 5.5e+00 |  4.2e+04   4.2e+04 | 1.1e+00 1.4e+01 4.1e+02 | 1.0e-04 6.9e-04 4.9e-03
  9600 5.6e+00 |  4.2e+04   4.2e+04 | 1.1e+00 1.4e+01 4.1e+02 | 1.0e-04 7.1e-04 4.9e-03
  9700 5.6e+00 |  4.2e+04   4.2e+04 | 1.1e+00 1.5e+01 4.0e+02 | 1.0e-04 7.2e-04 4.8e-03
  9800 5.7e+00 |  4.2e+04   4.2e+04 | 1.1e+00 1.5e+01 4.0e+02 | 9.9e-05 7.3e-04 4.8e-03
  9900 5.8e+00 |  4.2e+04   4.2e+04 | 1.1e+00 1.5e+01 4.0e+02 | 9.8e-05 7.4e-04 4.8e-03
 10000 5.8e+00 |  4.2e+04   4.2e+04 | 1.1e+00 1.5e+01 4.0e+02 | 9.6e-05 7.5e-04 4.8e-03
 11000 6.4e+00 |  4.2e+04   4.2e+04 | 9.6e-01 1.7e+01 3.8e+02 | 8.7e-05 8.4e-04 4.6e-03
 12000 6.9e+00 |  4.2e+04   4.2e+04 | 8.2e-01 1.7e+01 3.5e+02 | 7.4e-05 8.5e-04 4.2e-03
 13000 7.5e+00 |  4.2e+04   4.2e+04 | 7.4e-01 1.6e+01 3.2e+02 | 6.7e-05 8.0e-04 3.9e-03
 14000 8.0e+00 |  4.2e+04   4.2e+04 | 6.5e-01 2.2e+01 3.0e+02 | 5.9e-05 1.1e-03 3.6e-03
 15000 8.5e+00 |  4.2e+04   4.2e+04 | 5.6e-01 4.0e+01 2.7e+02 | 5.1e-05 2.0e-03 3.2e-03
 16000 9.1e+00 |  4.2e+04   4.2e+04 | 4.9e-01 5.0e+01 1.9e+02 | 4.4e-05 2.5e-03 2.3e-03
 17000 9.6e+00 |  4.2e+04   4.2e+04 | 3.8e-01 4.5e+01 1.0e+02 | 3.5e-05 2.2e-03 1.2e-03
 18000 1.0e+01 |  4.2e+04   4.2e+04 | 2.2e-01 3.5e+01 6.5e+01 | 2.0e-05 1.7e-03 7.7e-04
 19000 1.1e+01 |  4.2e+04   4.2e+04 | 1.7e-01 2.9e+01 4.7e+01 | 1.5e-05 1.4e-03 5.6e-04
 20000 1.1e+01 |  4.2e+04   4.2e+04 | 1.3e-01 2.4e+01 4.2e+01 | 1.2e-05 1.2e-03 5.0e-04
 21000 1.2e+01 |  4.2e+04   4.2e+04 | 1.2e-01 2.1e+01 3.9e+01 | 1.1e-05 1.0e-03 4.6e-04
 22000 1.2e+01 |  4.2e+04   4.2e+04 | 1.1e-01 1.6e+01 2.7e+01 | 1.0e-05 8.0e-04 3.2e-04
 23000 1.3e+01 |  4.2e+04   4.2e+04 | 9.5e-02 1.4e+01 1.2e+01 | 8.6e-06 7.1e-04 1.5e-04
 24000 1.4e+01 |  4.2e+04   4.2e+04 | 7.6e-02 1.3e+01 9.2e-01 | 6.9e-06 6.2e-04 1.1e-05
 25000 1.4e+01 |  4.2e+04   4.2e+04 | 5.8e-02 1.0e+01 4.2e+00 | 5.2e-06 5.2e-04 5.0e-05
 26000 1.5e+01 |  4.2e+04   4.2e+04 | 4.8e-02 9.0e+00 5.7e+00 | 4.4e-06 4.4e-04 6.8e-05
 27000 1.5e+01 |  4.2e+04   4.2e+04 | 4.0e-02 7.8e+00 5.0e+00 | 3.6e-06 3.9e-04 6.0e-05
 28000 1.6e+01 |  4.2e+04   4.2e+04 | 3.3e-02 7.1e+00 3.9e+00 | 3.0e-06 3.5e-04 4.6e-05
 29000 1.6e+01 |  4.2e+04   4.2e+04 | 3.2e-02 6.5e+00 2.7e+00 | 2.9e-06 3.2e-04 3.2e-05
 30000 1.7e+01 |  4.2e+04   4.2e+04 | 2.9e-02 5.8e+00 1.9e+00 | 2.6e-06 2.9e-04 2.2e-05
 31000 1.7e+01 |  4.2e+04   4.2e+04 | 2.9e-02 5.4e+00 1.7e+00 | 2.6e-06 2.7e-04 2.1e-05
 32000 1.8e+01 |  4.2e+04   4.2e+04 | 2.8e-02 4.9e+00 1.6e+00 | 2.5e-06 2.4e-04 1.9e-05
 33000 1.8e+01 |  4.2e+04   4.2e+04 | 2.8e-02 4.6e+00 1.5e+00 | 2.6e-06 2.3e-04 1.8e-05
 34000 1.9e+01 |  4.2e+04   4.2e+04 | 4.0e-02 4.1e+00 3.1e+00 | 3.6e-06 2.0e-04 3.7e-05
 35000 2.0e+01 |  4.2e+04   4.2e+04 | 7.9e-02 3.0e+00 7.0e+00 | 7.1e-06 1.5e-04 8.4e-05
 36000 2.0e+01 |  4.2e+04   4.2e+04 | 7.6e-02 2.4e+00 8.6e+00 | 6.8e-06 1.2e-04 1.0e-04
 37000 2.1e+01 |  4.2e+04   4.2e+04 | 6.7e-02 1.9e+00 9.1e+00 | 6.1e-06 9.2e-05 1.1e-04
 38000 2.1e+01 |  4.2e+04   4.2e+04 | 6.4e-02 1.5e+00 8.4e+00 | 5.7e-06 7.6e-05 1.0e-04
 39000 2.2e+01 |  4.2e+04   4.2e+04 | 6.1e-02 1.3e+00 8.0e+00 | 5.5e-06 6.2e-05 9.5e-05
 40000 2.2e+01 |  4.2e+04   4.2e+04 | 5.7e-02 1.1e+00 7.8e+00 | 5.1e-06 5.3e-05 9.2e-05
 41000 2.3e+01 |  4.2e+04   4.2e+04 | 5.3e-02 9.3e-01 7.3e+00 | 4.8e-06 4.6e-05 8.7e-05
 42000 2.3e+01 |  4.2e+04   4.2e+04 | 4.8e-02 8.4e-01 6.6e+00 | 4.3e-06 4.2e-05 7.9e-05
 43000 2.4e+01 |  4.2e+04   4.2e+04 | 4.1e-02 7.7e-01 6.1e+00 | 3.7e-06 3.8e-05 7.2e-05
 44000 2.5e+01 |  4.2e+04   4.2e+04 | 3.8e-02 7.0e-01 5.6e+00 | 3.4e-06 3.5e-05 6.6e-05
 45000 2.5e+01 |  4.2e+04   4.2e+04 | 3.2e-02 6.5e-01 5.2e+00 | 2.9e-06 3.2e-05 6.3e-05
 46000 2.6e+01 |  4.2e+04   4.2e+04 | 2.8e-02 6.2e-01 4.6e+00 | 2.5e-06 3.1e-05 5.5e-05
 47000 2.6e+01 |  4.2e+04   4.2e+04 | 2.9e-02 5.2e-01 4.3e+00 | 2.6e-06 2.6e-05 5.1e-05
 48000 2.7e+01 |  4.2e+04   4.2e+04 | 2.6e-02 4.7e-01 3.8e+00 | 2.4e-06 2.3e-05 4.5e-05
 49000 2.7e+01 |  4.2e+04   4.2e+04 | 2.5e-02 4.3e-01 3.2e+00 | 2.3e-06 2.1e-05 3.9e-05
 50000 2.8e+01 |  4.2e+04   4.2e+04 | 2.5e-02 3.9e-01 2.8e+00 | 2.2e-06 1.9e-05 3.3e-05
 51000 2.8e+01 |  4.2e+04   4.2e+04 | 2.3e-02 3.7e-01 2.3e+00 | 2.1e-06 1.8e-05 2.8e-05
 52000 2.9e+01 |  4.2e+04   4.2e+04 | 2.1e-02 3.5e-01 1.9e+00 | 1.9e-06 1.7e-05 2.3e-05
 53000 3.0e+01 |  4.2e+04   4.2e+04 | 1.9e-02 3.3e-01 1.5e+00 | 1.7e-06 1.6e-05 1.8e-05
 54000 3.0e+01 |  4.2e+04   4.2e+04 | 1.7e-02 3.1e-01 1.1e+00 | 1.5e-06 1.5e-05 1.3e-05
 55000 3.1e+01 |  4.2e+04   4.2e+04 | 1.5e-02 3.0e-01 8.0e-01 | 1.3e-06 1.5e-05 9.5e-06
 56000 3.1e+01 |  4.2e+04   4.2e+04 | 1.3e-02 2.8e-01 5.4e-01 | 1.1e-06 1.4e-05 6.4e-06
 57000 3.2e+01 |  4.2e+04   4.2e+04 | 1.1e-02 2.5e-01 3.2e-01 | 1.0e-06 1.3e-05 3.8e-06
 58000 3.2e+01 |  4.2e+04   4.2e+04 | 9.5e-03 2.3e-01 2.2e-01 | 8.6e-07 1.1e-05 2.7e-06
 59000 3.3e+01 |  4.2e+04   4.2e+04 | 9.5e-03 2.2e-01 1.9e-01 | 8.6e-07 1.1e-05 2.2e-06
 60000 3.3e+01 |  4.2e+04   4.2e+04 | 9.8e-03 2.0e-01 1.4e-01 | 8.9e-07 9.8e-06 1.6e-06
---------------------------------------------------------------------------------------
Solution Summary
  Status        : OPTIMAL
  Iterations    : 60600
  Solve time    : 33.7 sec
  Primal obj    : 41950.94959
  Dual obj      : 41950.8804
  Primal infeas : 8.759e-07
  Dual infeas   : 9.163e-06
@PC:~/cuPDLPx-main/cuPDLPx-main/build$