Fixed shrt path algorithm name for graphs with negative edges. Fix loader.

This commit is contained in:
Oleg Sh 2024-08-03 21:03:42 +02:00
parent d628dcd74d
commit c9201526a9
25 changed files with 117 additions and 4369 deletions

View File

@ -60,9 +60,9 @@
$g_config['extrapacker'] = array(); $g_config['extrapacker'] = array();
$g_config['extrapacker']['dir'] = 'auto_merge_css_js'; $g_config['extrapacker']['dir'] = 'auto_merge_css_js';
$g_config['extrapacker']['packHtml'] = true; $g_config['extrapacker']['packHtml'] = false;
$g_config['extrapacker']['packCss'] = true; $g_config['extrapacker']['packCss'] = true;
$g_config['extrapacker']['packJs'] = true; $g_config['extrapacker']['packJs'] = false;
$g_config['extrapacker']['arrExeptions_js'] = array(); $g_config['extrapacker']['arrExeptions_js'] = array();
$g_config['extrapacker']['arrExeptionsNotAdd_js'] = array(); $g_config['extrapacker']['arrExeptionsNotAdd_js'] = array();
$g_config['extrapacker']['arrExeptions_css'] = array(); $g_config['extrapacker']['arrExeptions_css'] = array();
@ -93,5 +93,5 @@
$g_config['vote'] = "./tmp/vote/vote.txt"; $g_config['vote'] = "./tmp/vote/vote.txt";
$g_config['voteTopics'] = "./tmp/vote/voteTopics.txt_"; $g_config['voteTopics'] = "./tmp/vote/voteTopics.txt_";
$g_config['use_js_cache'] = true; $g_config['use_js_cache'] = true;
$g_config['engine_version'] = 82; $g_config['engine_version'] = 83;
?> ?>

View File

@ -198,6 +198,7 @@ We have added Dutch translation 🇳🇱. Thank you Willie de Wit</a>";
$g_lang["modern_graph_style_name"] = "Визуализация на база тегло"; $g_lang["modern_graph_style_name"] = "Визуализация на база тегло";
$g_lang["radius_and_diameter_name"] = "Намерете радиус и диаметър на граф"; $g_lang["radius_and_diameter_name"] = "Намерете радиус и диаметър на граф";
$g_lang["find_short_path_name"] = "Намерете най-краткия път с помощта на алгоритъма на Дейкстра"; $g_lang["find_short_path_name"] = "Намерете най-краткия път с помощта на алгоритъма на Дейкстра";
$g_lang["find_short_path_belman_ford_name"] = "Find shortest path using BellmanFord's algorithm";
$g_lang["vertices_degree_name"] = "Изчислете степента на връх"; $g_lang["vertices_degree_name"] = "Изчислете степента на връх";
$g_lang["min_spanning_tree_res_is"] = "Теглото на минималното обхващащо дърво е "; $g_lang["min_spanning_tree_res_is"] = "Теглото на минималното обхващащо дърво е ";

View File

@ -200,6 +200,7 @@
$g_lang["modern_graph_style_name"] = "根据权重的可视化"; $g_lang["modern_graph_style_name"] = "根据权重的可视化";
$g_lang["radius_and_diameter_name"] = "找图的半径和直径"; $g_lang["radius_and_diameter_name"] = "找图的半径和直径";
$g_lang["find_short_path_name"] = "用Dijkstra算法找最短路"; $g_lang["find_short_path_name"] = "用Dijkstra算法找最短路";
$g_lang["find_short_path_belman_ford_name"] = "Find shortest path using BellmanFord's algorithm";
$g_lang["vertices_degree_name"] = "计算顶点的度"; $g_lang["vertices_degree_name"] = "计算顶点的度";
$g_lang["min_spanning_tree_res_is"] = "最小生成树的权重是 "; $g_lang["min_spanning_tree_res_is"] = "最小生成树的权重是 ";

View File

@ -199,6 +199,7 @@
$g_lang["modern_graph_style_name"] = "Vizualizace založená na váze"; $g_lang["modern_graph_style_name"] = "Vizualizace založená na váze";
$g_lang["radius_and_diameter_name"] = "Hledání poloměru a průměru grafu"; $g_lang["radius_and_diameter_name"] = "Hledání poloměru a průměru grafu";
$g_lang["find_short_path_name"] = "Najít nejkratší cestu pomocí Dijkstrova algoritmu"; $g_lang["find_short_path_name"] = "Najít nejkratší cestu pomocí Dijkstrova algoritmu";
$g_lang["find_short_path_belman_ford_name"] = "Find shortest path using BellmanFord's algorithm";
$g_lang["vertices_degree_name"] = "Výpočet stupňů vrcholů"; $g_lang["vertices_degree_name"] = "Výpočet stupňů vrcholů";
$g_lang["min_spanning_tree_res_is"] = "Váha minimální kostry stromu je "; $g_lang["min_spanning_tree_res_is"] = "Váha minimální kostry stromu je ";

View File

@ -163,6 +163,7 @@
$g_lang["modern_graph_style_name"] = "Gewicht-basierte Visualisierung"; $g_lang["modern_graph_style_name"] = "Gewicht-basierte Visualisierung";
$g_lang["radius_and_diameter_name"] = "Graphradius und Graphdiameter suchen"; $g_lang["radius_and_diameter_name"] = "Graphradius und Graphdiameter suchen";
$g_lang["find_short_path_name"] = "Kürzesten Weg via Dijkstra Algorithm finden"; $g_lang["find_short_path_name"] = "Kürzesten Weg via Dijkstra Algorithm finden";
$g_lang["find_short_path_belman_ford_name"] = "Find shortest path using BellmanFord's algorithm";
$g_lang["vertices_degree_name"] = "Knotengewicht berechnen"; $g_lang["vertices_degree_name"] = "Knotengewicht berechnen";
$g_lang["min_spanning_tree_res_is"] = "Weight of minimum spanning tree is "; $g_lang["min_spanning_tree_res_is"] = "Weight of minimum spanning tree is ";
$g_lang["min_spanning_tree_ignore_direction"] = "In time of calculation we have ignored the edges direction."; $g_lang["min_spanning_tree_ignore_direction"] = "In time of calculation we have ignored the edges direction.";

View File

@ -201,6 +201,7 @@
$g_lang["modern_graph_style_name"] = "Απεικόνιση με βάση το βάρος"; $g_lang["modern_graph_style_name"] = "Απεικόνιση με βάση το βάρος";
$g_lang["radius_and_diameter_name"] = "Αναζήτηση ακτίνας και διαμέτρου του γράφου"; $g_lang["radius_and_diameter_name"] = "Αναζήτηση ακτίνας και διαμέτρου του γράφου";
$g_lang["find_short_path_name"] = "Εύρεση συντομότερου μονοπατιού με χρήση του αλγορίθμου Dijkstra"; $g_lang["find_short_path_name"] = "Εύρεση συντομότερου μονοπατιού με χρήση του αλγορίθμου Dijkstra";
$g_lang["find_short_path_belman_ford_name"] = "Find shortest path using BellmanFord's algorithm";
$g_lang["vertices_degree_name"] = "Υπολογισμός βαθμών κορυφών"; $g_lang["vertices_degree_name"] = "Υπολογισμός βαθμών κορυφών";
$g_lang["min_spanning_tree_res_is"] = "Το βάρος του ελάχιστου ζευγνύοντος δέντρου είναι "; $g_lang["min_spanning_tree_res_is"] = "Το βάρος του ελάχιστου ζευγνύοντος δέντρου είναι ";

View File

@ -200,6 +200,8 @@ We have added Dutch translation 🇳🇱. Thank you Willie de Wit</a>";
$g_lang["modern_graph_style_name"] = "Visualisation based on weight"; $g_lang["modern_graph_style_name"] = "Visualisation based on weight";
$g_lang["radius_and_diameter_name"] = "Search graph radius and diameter"; $g_lang["radius_and_diameter_name"] = "Search graph radius and diameter";
$g_lang["find_short_path_name"] = "Find shortest path using Dijkstra's algorithm"; $g_lang["find_short_path_name"] = "Find shortest path using Dijkstra's algorithm";
$g_lang["find_short_path_belman_ford_name"] = "Find shortest path using BellmanFord's algorithm";
$g_lang["vertices_degree_name"] = "Calculate vertices degree"; $g_lang["vertices_degree_name"] = "Calculate vertices degree";
$g_lang["min_spanning_tree_res_is"] = "Weight of minimum spanning tree is "; $g_lang["min_spanning_tree_res_is"] = "Weight of minimum spanning tree is ";

View File

@ -200,6 +200,7 @@ Tenemos traducciones en griego 🇬🇷.</a> <a href=\"https://github.com/UnickS
$g_lang["modern_graph_style_name"] = "Visualización basada en el peso"; $g_lang["modern_graph_style_name"] = "Visualización basada en el peso";
$g_lang["radius_and_diameter_name"] = "Buscar radio y diámetro del grafo"; $g_lang["radius_and_diameter_name"] = "Buscar radio y diámetro del grafo";
$g_lang["find_short_path_name"] = "Encontrar el camino más corto usando el algoritmo de Dijkstra"; $g_lang["find_short_path_name"] = "Encontrar el camino más corto usando el algoritmo de Dijkstra";
$g_lang["find_short_path_belman_ford_name"] = "Find shortest path using BellmanFord's algorithm";
$g_lang["vertices_degree_name"] = "Calcular grado de los vértices"; $g_lang["vertices_degree_name"] = "Calcular grado de los vértices";
$g_lang["min_spanning_tree_res_is"] = "Weight of minimum spanning tree is "; $g_lang["min_spanning_tree_res_is"] = "Weight of minimum spanning tree is ";

View File

@ -167,6 +167,7 @@
$g_lang["modern_graph_style_name"] = "Visualisation pondérée"; $g_lang["modern_graph_style_name"] = "Visualisation pondérée";
$g_lang["radius_and_diameter_name"] = "Calcul du rayon et du diamètre du graphe"; $g_lang["radius_and_diameter_name"] = "Calcul du rayon et du diamètre du graphe";
$g_lang["find_short_path_name"] = "Plus court chemin avec l'algorithme de Dijkstra"; $g_lang["find_short_path_name"] = "Plus court chemin avec l'algorithme de Dijkstra";
$g_lang["find_short_path_belman_ford_name"] = "Find shortest path using BellmanFord's algorithm";
$g_lang["vertices_degree_name"] = "Calculer le degré des sommets"; $g_lang["vertices_degree_name"] = "Calculer le degré des sommets";
$g_lang["min_spanning_tree_res_is"] = "Weight of minimum spanning tree is "; $g_lang["min_spanning_tree_res_is"] = "Weight of minimum spanning tree is ";

View File

@ -164,6 +164,7 @@
$g_lang["modern_graph_style_name"] = "Visualisatie op basis van gewicht"; $g_lang["modern_graph_style_name"] = "Visualisatie op basis van gewicht";
$g_lang["radius_and_diameter_name"] = "Zoek grafiek straal en diameter"; $g_lang["radius_and_diameter_name"] = "Zoek grafiek straal en diameter";
$g_lang["find_short_path_name"] = "Kortstepad-algoritme (Dijkstra's algoritme)"; $g_lang["find_short_path_name"] = "Kortstepad-algoritme (Dijkstra's algoritme)";
$g_lang["find_short_path_belman_ford_name"] = "Find shortest path using BellmanFord's algorithm";
$g_lang["vertices_degree_name"] = "Bereken hoekpunten graden"; $g_lang["vertices_degree_name"] = "Bereken hoekpunten graden";
$g_lang["min_spanning_tree_res_is"] = "Weight of minimum spanning tree is "; $g_lang["min_spanning_tree_res_is"] = "Weight of minimum spanning tree is ";

View File

@ -200,6 +200,7 @@ Dodaliśmy polskie tłumaczenie, Patryk</a>";
$g_lang["modern_graph_style_name"] = "Wizualizajca bazująca na wadze"; $g_lang["modern_graph_style_name"] = "Wizualizajca bazująca na wadze";
$g_lang["radius_and_diameter_name"] = "Znajdź średnicę i cięciwe grafu"; $g_lang["radius_and_diameter_name"] = "Znajdź średnicę i cięciwe grafu";
$g_lang["find_short_path_name"] = "Znajdź najkrótszą ścieżkę używając algiorytmu Dijkstra"; $g_lang["find_short_path_name"] = "Znajdź najkrótszą ścieżkę używając algiorytmu Dijkstra";
$g_lang["find_short_path_belman_ford_name"] = "Find shortest path using BellmanFord's algorithm";
$g_lang["vertices_degree_name"] = "Policz stopień wierzchołków"; $g_lang["vertices_degree_name"] = "Policz stopień wierzchołków";
$g_lang["min_spanning_tree_res_is"] = "Waga minimalnego drzewa rozpinającego to "; $g_lang["min_spanning_tree_res_is"] = "Waga minimalnego drzewa rozpinającego to ";

View File

@ -166,6 +166,7 @@
$g_lang["modern_graph_style_name"] = "Visualização baseada nos pesos"; $g_lang["modern_graph_style_name"] = "Visualização baseada nos pesos";
$g_lang["radius_and_diameter_name"] = "Buscar raio e diâmetro do grafo"; $g_lang["radius_and_diameter_name"] = "Buscar raio e diâmetro do grafo";
$g_lang["find_short_path_name"] = "Encontrar o caminho mais curto usando o algoritmo de Dijkstra"; $g_lang["find_short_path_name"] = "Encontrar o caminho mais curto usando o algoritmo de Dijkstra";
$g_lang["find_short_path_belman_ford_name"] = "Find shortest path using BellmanFord's algorithm";
$g_lang["vertices_degree_name"] = "Calcular o grau dos vértices"; $g_lang["vertices_degree_name"] = "Calcular o grau dos vértices";
$g_lang["min_spanning_tree_res_is"] = "Peso da árvore geradora mínima é"; $g_lang["min_spanning_tree_res_is"] = "Peso da árvore geradora mínima é";
$g_lang["min_spanning_tree_ignore_direction"] = "Durante os cálculos ignoramos as direções dos vértices."; $g_lang["min_spanning_tree_ignore_direction"] = "Durante os cálculos ignoramos as direções dos vértices.";

View File

@ -201,6 +201,8 @@
$g_lang["modern_graph_style_name"] = "Визуализация на основе весов"; $g_lang["modern_graph_style_name"] = "Визуализация на основе весов";
$g_lang["radius_and_diameter_name"] = "Поиск радиуса и диаметра графа"; $g_lang["radius_and_diameter_name"] = "Поиск радиуса и диаметра графа";
$g_lang["find_short_path_name"] = "Поиск кратчайший путь алгоритмом Дейкстры"; $g_lang["find_short_path_name"] = "Поиск кратчайший путь алгоритмом Дейкстры";
$g_lang["find_short_path_belman_ford_name"] = "Поиск кратчайший путь алгоритмом Беллмана-Форда";
$g_lang["vertices_degree_name"] = "Рассчитать степень вершин"; $g_lang["vertices_degree_name"] = "Рассчитать степень вершин";
$g_lang["min_spanning_tree_res_is"] = "Вес минимального остовного дерева равен "; $g_lang["min_spanning_tree_res_is"] = "Вес минимального остовного дерева равен ";

View File

@ -161,6 +161,7 @@
$g_lang["modern_graph_style_name"] = "Мiktbaserad visualisering"; $g_lang["modern_graph_style_name"] = "Мiktbaserad visualisering";
$g_lang["radius_and_diameter_name"] = "Hitta radien och diametern på en graf"; $g_lang["radius_and_diameter_name"] = "Hitta radien och diametern på en graf";
$g_lang["find_short_path_name"] = "Hitta den kortaste vägen med Dijkstras algoritm"; $g_lang["find_short_path_name"] = "Hitta den kortaste vägen med Dijkstras algoritm";
$g_lang["find_short_path_belman_ford_name"] = "Find shortest path using BellmanFord's algorithm";
$g_lang["vertices_degree_name"] = "Кäkna graden av vertikaler"; $g_lang["vertices_degree_name"] = "Кäkna graden av vertikaler";
$g_lang["min_spanning_tree_res_is"] = "Weight of minimum spanning tree is "; $g_lang["min_spanning_tree_res_is"] = "Weight of minimum spanning tree is ";

View File

@ -30,7 +30,7 @@ function loadAsyncAlgorithms(onFinish) {
"ShortestPath.js", "ShortestPath.js",
"VerticesDegree.js"]; "VerticesDegree.js"];
doIncludeAsync (pluginsList.map((plugin) => include ("model/plugins/" + plugin + "?v=" + globalVersion, modulDir)), onFinish); doIncludeAsync (pluginsList.map((plugin) => include ("model/plugins/" + plugin, modulDir)), onFinish);
} }
} }

View File

@ -23,7 +23,7 @@ FindShortPathNew.prototype.infinityValue = 1E9 - 1;
FindShortPathNew.prototype.getName = function(local) FindShortPathNew.prototype.getName = function(local)
{ {
return g_findShortPathName; //local == "ru" ? "Поиск кратчайший путь алгоритмом Дейкстры" : "Find shortest path using Dijkstra's algorithm"; return this.graph.hasNegative() ? g_findShortPathBellmanFordName : g_findShortPathName; //local == "ru" ? "Поиск кратчайший путь алгоритмом Дейкстры" : "Find shortest path using Dijkstra's algorithm";
} }
FindShortPathNew.prototype.getId = function() FindShortPathNew.prototype.getId = function()

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -129,6 +129,7 @@ var g_minimumSpanningTree = "Search of minimum spanning tree";
var g_modernGraphStyleName = "Visualization based on weight"; var g_modernGraphStyleName = "Visualization based on weight";
var g_RadiusAndDiameter = "Search graph radius and diameter"; var g_RadiusAndDiameter = "Search graph radius and diameter";
var g_findShortPathName = "Find shortest path using Dijkstra's algorithm"; var g_findShortPathName = "Find shortest path using Dijkstra's algorithm";
var g_findShortPathBellmanFordName = "Find shortest path using BellmanFord algorithm";
var g_VerticesDegreeName = "Calculate vertices degree"; var g_VerticesDegreeName = "Calculate vertices degree";
var g_SpanningTreeResult = "Min Spanning Tree is"; var g_SpanningTreeResult = "Min Spanning Tree is";
var g_SpanningTreeIgnoreDir = "We ignored edges direction for calculation"; var g_SpanningTreeIgnoreDir = "We ignored edges direction for calculation";
@ -340,6 +341,7 @@ function loadTexts()
g_modernGraphStyleName = document.getElementById("modernGraphStyleName").innerHTML; g_modernGraphStyleName = document.getElementById("modernGraphStyleName").innerHTML;
g_RadiusAndDiameter = document.getElementById("RadiusAndDiameter").innerHTML; g_RadiusAndDiameter = document.getElementById("RadiusAndDiameter").innerHTML;
g_findShortPathName = document.getElementById("findShortPathName").innerHTML; g_findShortPathName = document.getElementById("findShortPathName").innerHTML;
g_findShortPathBellmanFordName = document.getElementById("findShortPathBellmanFordName").innerHTML;
g_VerticesDegreeName = document.getElementById("VerticesDegreeName").innerHTML; g_VerticesDegreeName = document.getElementById("VerticesDegreeName").innerHTML;
g_SpanningTreeResult = document.getElementById("MinSpanningTreeResult").innerHTML; g_SpanningTreeResult = document.getElementById("MinSpanningTreeResult").innerHTML;

View File

@ -533,7 +533,7 @@ Editor.prototype.initAlgorithmList = function()
if (!event.originalEvent.closeThisMenu) { if (!event.originalEvent.closeThisMenu) {
event.stopPropagation(); event.stopPropagation();
} }
}); });
$(window).on('click', function() { $(window).on('click', function() {
$('#algorithmList').slideUp(); $('#algorithmList').slideUp();
}); });
@ -644,6 +644,10 @@ Editor.prototype.createAlgorithmMenu = function()
else else
{ {
$(data.object).show(); $(data.object).show();
// Update button text
var textSpan = data.object.getElementsByTagName("span")[1];
textSpan.innerHTML = algorithm.getName();
} }
}); });

View File

@ -1,5 +1,5 @@
// Global version needs to force reload scripts from server. // Global version needs to force reload scripts from server.
let globalVersion = 78; let globalVersion = 79;
var include = function(filename, localDir) { var include = function(filename, localDir) {
return {filename: filename, localDir: localDir}; return {filename: filename, localDir: localDir};

View File

@ -1,7 +1,7 @@
<?php if (!isset($_GET["cacheFiles"]) && isset($_GET["target"])): ?> <?php if (!isset($_GET["cacheFiles"]) && isset($_GET["target"])): ?>
<head> <head>
<script src="/script/shared/config.js" ></script> <script src="/script/shared/config.js?v=<?= $g_config['engine_version'] ?>" ></script>
<script src="/script/shared/loader.js" ></script> <script src="/script/shared/loader.js?v=<?= $g_config['engine_version'] ?>" ></script>
<script src="<?= $_GET["target"] ?>" ></script> <script src="<?= $_GET["target"] ?>" ></script>
<script> <script>
setTimeout( setTimeout(

View File

@ -425,7 +425,7 @@
<p id="SaveImageLinks"><a href="<?= $protocol . $shareImagePageURL ?>tmp/saved/XX/XXXXX.png" target="_blank"><?= L('open_saved_image_browser')?></a> <?= L('or')?> <a href="<?= $protocol . $shareImagePageURL ?>tmp/saved/XX/XXXXX.png" download><?= L('download_saved_image')?></a> <p id="SaveImageLinks"><a href="<?= $protocol . $shareImagePageURL ?>tmp/saved/XX/XXXXX.png" target="_blank"><?= L('open_saved_image_browser')?></a> <?= L('or')?> <a href="<?= $protocol . $shareImagePageURL ?>tmp/saved/XX/XXXXX.png" download><?= L('download_saved_image')?></a>
</p> </p>
<p class="hidden-phone"> <p class="hidden-phone">
<a href="<?= $protocol . $shareImagePageURL ?>tmp/saved/XX/XXXXX.png" target="_blank" class="hidden-phone showShareImage" id="showSavedImageGraphRef"><img src="<?= $protocol . $shareImagePageURL ?>tmp/saved/XX/XXXXX.png" id="showSavedImageGraph" class="showShareImage"></a> <a href="<?= $protocol . $shareImagePageURL ?>tmp/saved/XX/XXXXX.png" target="_blank" class="hidden-phone showShareImage" id="showSavedImageGraphRef"><img src="<?= $protocol . $shareImagePageURL ?>/tmp/saved/XX/XXXXX.png" id="showSavedImageGraph" class="showShareImage"></a>
</p> </p>
<p><?= L('share_graph_description') ?></p> <p><?= L('share_graph_description') ?></p>
<ul class="share-buttons" id="ShareSavedImageGraph"> <ul class="share-buttons" id="ShareSavedImageGraph">
@ -829,6 +829,8 @@
<p id="modernGraphStyleName" class="translation"><?= L('modern_graph_style_name')?></p> <p id="modernGraphStyleName" class="translation"><?= L('modern_graph_style_name')?></p>
<p id="RadiusAndDiameter" class="translation"><?= L('radius_and_diameter_name')?></p> <p id="RadiusAndDiameter" class="translation"><?= L('radius_and_diameter_name')?></p>
<p id="findShortPathName" class="translation"><?= L('find_short_path_name')?></p> <p id="findShortPathName" class="translation"><?= L('find_short_path_name')?></p>
<p id="findShortPathBellmanFordName" class="translation"><?= L('find_short_path_belman_ford_name')?></p>
<p id="VerticesDegreeName" class="translation"><?= L('vertices_degree_name')?></p> <p id="VerticesDegreeName" class="translation"><?= L('vertices_degree_name')?></p>
<p id="MinSpanningTreeResult" class="translation"><?= L('min_spanning_tree_res_is')?></p> <p id="MinSpanningTreeResult" class="translation"><?= L('min_spanning_tree_res_is')?></p>