過去50年間の整数線形計画法:最近の実用的進歩 — Anubis保護ページが表示される
(inria.hal.science)- 論文本体の代わりに Anubisのボット確認ページ が表示され、このURLでは実際の論文内容をすぐに確認できない
- 保護ページでは、AI企業による 攻撃的なWebスクレイピング がサーバーのダウンタイムやリソースへのアクセス遮断につながり得ると案内している
- AnubisはHashcashに類似した プルーフ・オブ・ワーク を要求し、個人利用者の負担は小さい一方で、大量スクレイピングには累積コストが大きくなるよう設計されている
- この方式は暫定的な解決策であり、長期的にはフォントレンダリングのような手がかりによって ヘッドレスブラウザ を識別することに重点が置かれている
- 最新のJavaScript機能が必要なため、JShelterのようなプラグインが有効になっている場合は、そのドメインで無効化しなければアクセスできない
Anubis保護ページが表示される
- ページタイトルは「Making sure you're not a bot!」で、画面には 計算中 の状態が表示される
- 難易度は
4 - 速度は
0kH/s
- 難易度は
- サーバー管理者がAI企業の攻撃的なスクレイピングからサーバーを保護するために Anubis を設定しており、このページが表示されている
- 大量スクレイピングはWebサイトのダウンタイムを引き起こす可能性があり、その結果すべての利用者がリソースにアクセスできなくなることがある
プルーフ・オブ・ワーク方式とアクセス制約
- AnubisはHashcash系の プルーフ・オブ・ワーク 方式を使用している
- 個々の利用者に生じる追加負荷は無視できる水準である
- 大量スクレイパーは累積コストが増大し、スクレイピングコストが高くなる
- 現在の方式は 暫定的な解決策 に近い
- 目的は、フォントレンダリング方式のような手がかりによってヘッドレスブラウザを識別するための時間を確保することにある
- 正当な利用者である可能性が高い場合には、プルーフ・オブ・ワークページを表示しない方向を目指している
- Anubisは最新の JavaScript 機能を要求する
- JShelterのようなプラグインが必要な機能を無効化することがある
- このドメインではJShelterまたは類似のプラグインをオフにする必要がある
1件のコメント
Hacker News のコメント
商用の整数線形計画法(ILP)ソルバーが、Gurobi のように無料/オープンソースのものよりはるかに優れている理由を大枠で知りたい。
ILP は本質的に難しすぎる問題なので、最高のソルバーは特定の部分問題向けヒューリスティックを大規模に集めた形になっており、公開領域には一般に有効な戦略がまだないのか気になっている。
混合整数線形計画法(MILP)では、分枝限定法の良い開始点を見つけてツリーを効果的に枝刈りするヒューリスティックや、分数解を切り落として目的値と整数性を改善するカスタム切除平面が重要になる。
オペレーションズ・リサーチの研究者が特定の問題に取り組むと、自分で切除平面やヒューリスティックを書いて、Gurobi のような汎用ソルバーをかなり簡単に上回ることもある。ソルバー企業は博士号取得者や研究者のチームを雇ってこの作業を継続し、顧客の問題群で改善と回帰を追跡している。
オープンソースのソルバーはいくつかの要因が重なって足を引っ張られているように見える。最新の最適化開発は参入障壁が非常に高く、数学とプログラミングの両方で意味のある貢献ができる研究者/開発者がそもそも少ない。そうした能力があると、収益につながる進路がオープンソースへの貢献から離れさせるし、オープンソースプロジェクトの性質上、「顧客」がソルバー改善に必要な例、性能データ、プロファイリング結果を返してくれる可能性も低い。
例外もあるが、従来型の商用ソルバー開発の外にあるからといって、すぐにオープンソースというわけではない。たとえば Stanford で開発された SNOPT も、いまだに商用ライセンスだ。学術界のソルバー開発は Clarabel のように特定の応用文脈で行われることが多く、問題群が狭くなりがちだ。
他分野では、大手テック企業が既存の商用プロジェクトを買収したり、競合を牽制するためにオープンソースプロジェクトへ資金提供したりしてボトルネックを越えたこともある。ソルバーにも Ceres のような狭い例はあるが、汎用ソルバースタック全体をゼロから開発する投資は大きすぎると見なされた可能性が高い。
問題構造を知っていれば、それを活用して商用ソルバーの性能を上回ることもできる。だが任意の問題なら、その可能性はほとんどない。
IBM の「ILOG」混合整数線形計画法ライブラリでリソース配分ツールを作った記憶がうっすらある。自分たちが 5 分以内に解いていた同じ問題を 20 年前に作っていたら、今でも実行中だっただろうと気づいた。
純粋な計算性能が約 1000 倍になり、アルゴリズムも同じくらい改善されて、合計で 100 万倍ほど良くなっていたと記憶している。
未来を予測するときに噛みしめる価値がある。ちなみにその「リソース」はダイヤモンドだった。
実際にこういうものがどう使われているのか気になる。数値最適化を実装すると、データ駆動型アプローチでよくある問題、たとえば信頼と悪いデータのせいで頻繁に失敗し、結局は重要人物が勘でどうするか決める構図が思い浮かぶ。
EU の電力スポット価格は、毎日 1 回の巨大なソルバー実行で決まる。Euphemia を調べると、その仕組みに関する記事がある。
最適化すべき明確な目標があり、実際のお金がかかっている分野のほとんどはソルバーだらけだ。
在庫については需要予測が難しく、完全自動化はされていない。
Gurobi のケーススタディ: https://www.gurobi.com/case_studies/
CPLEX のケーススタディの一部: https://www.ibm.com/products/ilog-cplex-optimization-studio/...
Hexaly、以前の LocalSolver、ケーススタディ: https://www.hexaly.com/customers
Gurobi はかなり高いと聞いた。価格情報を共有できる人がいるのか気になる。
オープンソース、または非商用利用なら無料のまともな MIP ソルバーが少なくとも 2 つある。
https://highs.dev/
https://www.scipopt.org/
業界の多くの人にとっては十分にその価値がある、と付け加えておきたい。
1990年代に学習用として、Mapleでゴモリーの切除超平面の何らかのバージョンを実装した記憶がある。実用向けではなかった。この分野はかなり進歩したようだ
「1990年代初頭にLPを解くのに実行時間が2か月必要だったとすれば、今日では1秒もかからない。最近、Bixbyは1990年から2020年までのCPLEXとGurobiという2つのMILPソルバーの機械非依存の性能を比較し、約4×10^6倍の高速化を報告した」
こうした問題に対する機械学習/人工知能ベースのアプローチはかなり不足しているように感じる。小さな問題を解こうとする強化学習/グラフニューラルネットワークの論文例は多く見てきたが、結局はGurobiのライセンスを買って走らせるのが最善に見えることが多い
最近、ジョブショップスケジューリングに近いスケジューリング最適化に取り組んでいたが、強化学習を使う例はあるものの、十分ではないように見える。大きな問題でそれらしい解を得るために、進化的アルゴリズムに頼ることになった
問題をうまく定式化できるなら、オペレーションズリサーチ的なアプローチを使うほうが常に効率的なのかもしれない
遺伝的アルゴリズムを作ることもできるだろうが、局所最小値にはまっていない答えを返す保証はない。高速に実行できるように作れるという前提も必要になる。ニューラルネットワークもやはり最適解には及ばないだろう
「1988年から2004年までにハードウェアは1600倍速くなり、LPソルバーは3300倍速くなって、累積の高速化係数は5 × 10^6を超えた。しかもそれはすでに20年前の話だ!」
「著者らは2001年から2020年の間に、商用MILPソルバーで1000倍の高速化を観察した。そのうち50倍はアルゴリズム、20倍はより高速なコンピュータによるものだ」
コンピューティングのサブ分野ごとにこうした高速化係数を集め、アルゴリズム改善とより高速なコンピュータの寄与に分解できるのか気になる
コンパイラには「Proebstingの法則」がある。コンパイラの進歩は18年ごとに計算性能を2倍にする、という法則だ
タイトルに [pdf] [2024] を付けるとよさそう