フロー ネットワークで反復計算を行っています。その間、各ソースが各エッジのフローにどれだけ寄与しているかを記録する必要があります。任意の 1 つのエッジでのフローは、平均でソースの 2% によるものであるため、 を定義しますvector< map<int, double> > flow
。ここで、ソースによるflow[e][s] = f
エッジでのフローは です。各反復で、すべての入力が更新されます。e
s
f
f
flow
プログラムのピーク時のメモリ使用量は 4 GB 近くになります。これは (32 ビット) Linux および OS X で動作しますが、Windows ではクラッシュします (プロセスごとに 2 GB の制限が課されるようです)。
インターフェイスを使用してディスクベースのデータ構造を実装するにはどうすればよいvector< map<int, double> >
ですか (または、この問題を回避するには)?