Javaでの実装とは? わかりやすく解説

Javaでの実装

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2018/04/10 17:32 UTC 版)

エドモンズ・カープのアルゴリズム」の記事における「Javaでの実装」の解説

public class FlowGraph { public static final int WHITE = 0, GRAY = 1, BLACK = 2; private double[][] flow, capacity, resCapacity; private int[] parent, color, queue; private double[] minCapacity; private int size, source, sink, first, last; private double maxFlow; public FlowGraph(String fileName) { // 入力テキストファイルから // "size" 値 // "capacity[size][size]" 配列 // "source" および "sink" ノードインデックス値(0始点) // を読み込む。 edmondsKarp(); // 出力ファイル結果を書く("flow" 配列と "maxFlow" 値) } private void edmondsKarp() { // 計算量 O(E) のエドモンズ・カープのアルゴリズム flow = new double[size][size]; resCapacity = new double[size][size]; parent = new int[size]; minCapacity = new double[size]; color = new int[size]; queue = new int[size]; for (int i = 0; i < size; i++) for (int j = 0; j < size; j++) resCapacity[i][j] = capacity[i][j]; while (BFS(source)) { maxFlow += minCapacity[sink]; int v = sink, u; while (v != source) { u = parent[v]; flow[u][v] += minCapacity[sink]; flow[v][u] -= minCapacity[sink]; resCapacity[u][v] -= minCapacity[sink]; resCapacity[v][u] += minCapacity[sink]; v = u; } } } private boolean BFS(int source) { // O() の幅優先探索 for (int i = 0; i < size; i++) { color[i] = WHITE; minCapacity[i] = Double.MAX_VALUE; } first = last = 0; queue[last++] = source; color[source] = GRAY; while (first != last) { // "queue" が空でないうちはループする int v = queue[first++]; for (int u = 0; u < size; u++) if (color[u] == WHITE && resCapacity[v][u] > 0) { minCapacity[u] = Math.min(minCapacity[v], resCapacity[v][u]); parent[u] = v; color[u] = GRAY; if (u == sink) return true; queue[last++] = u; } } return false; }}

※この「Javaでの実装」の解説は、「エドモンズ・カープのアルゴリズム」の解説の一部です。
「Javaでの実装」を含む「エドモンズ・カープのアルゴリズム」の記事については、「エドモンズ・カープのアルゴリズム」の概要を参照ください。

ウィキペディア小見出し辞書の「Javaでの実装」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Javaでの実装」の関連用語

Javaでの実装のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Javaでの実装のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのエドモンズ・カープのアルゴリズム (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS