diff --git a/Grafi/.vs/Grafi/DesignTimeBuild/.dtbcache.v2 b/Grafi/.vs/Grafi/DesignTimeBuild/.dtbcache.v2 new file mode 100644 index 0000000000000000000000000000000000000000..9eebc6a59ee61a002f2fed065f83cbeabe540b2f Binary files /dev/null and b/Grafi/.vs/Grafi/DesignTimeBuild/.dtbcache.v2 differ diff --git a/Grafi/.vs/Grafi/v16/.suo b/Grafi/.vs/Grafi/v16/.suo new file mode 100644 index 0000000000000000000000000000000000000000..4a21638a0fea4667efcd2a99d227143e50c38721 Binary files /dev/null and b/Grafi/.vs/Grafi/v16/.suo differ diff --git a/Grafi/Grafi.sln b/Grafi/Grafi.sln new file mode 100644 index 0000000000000000000000000000000000000000..36c3efb73d8c6e73ece31cd0058db9b4b081c120 --- /dev/null +++ b/Grafi/Grafi.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.32002.261 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibreriaGrafi", "LibreriaGrafi\LibreriaGrafi.csproj", "{07DE39C2-AF81-44A4-A048-C848B2CD66C5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PercorsoDijkstra", "PercorsoDijkstra\PercorsoDijkstra.csproj", "{05C00BA9-0229-4649-92F0-45181941E2DD}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {07DE39C2-AF81-44A4-A048-C848B2CD66C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {07DE39C2-AF81-44A4-A048-C848B2CD66C5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {07DE39C2-AF81-44A4-A048-C848B2CD66C5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {07DE39C2-AF81-44A4-A048-C848B2CD66C5}.Release|Any CPU.Build.0 = Release|Any CPU + {05C00BA9-0229-4649-92F0-45181941E2DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {05C00BA9-0229-4649-92F0-45181941E2DD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {05C00BA9-0229-4649-92F0-45181941E2DD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {05C00BA9-0229-4649-92F0-45181941E2DD}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {1C736D2E-7FB6-4F2D-B2E9-F5F46B8B8E9D} + EndGlobalSection +EndGlobal diff --git a/Grafi/LibreriaGrafi/Grafo.cs b/Grafi/LibreriaGrafi/Grafo.cs new file mode 100644 index 0000000000000000000000000000000000000000..3c0119a902aad263da486b7accec2160877d2c91 --- /dev/null +++ b/Grafi/LibreriaGrafi/Grafo.cs @@ -0,0 +1,166 @@ +/* + * Progetto: Libreria per lo studio dei grafi + * + * Autore: Roberto Fuligni + * Ultima modifica: 06/03/2022 + * + * Descrizione: Gestione dei nodi e dei vertici di un grafo. + */ + +using System.Collections.Generic; +using System.Text; + +namespace LibreriaGrafi +{ + public class Grafo + { + public const int Infinito = int.MaxValue; + public const int NessunNodo = int.MinValue; + public enum Tipo { Orientato, NonOrientato }; + + private int numNodi; + private Tipo tipo; + private int[,] pesi; + + // Accesso ai pesi degli archi attraverso gli indici dei nodi sorgente e destinazione + // Esempio: g[1][3] = 20 Memorizza un arco (orientato oppure non orientato, in base al tipo di grafo) + // di peso 20 dal nodo sorgente 1 al nodo destinazione 3 + public int this[int sorg, int dest] + { + get { return pesi[sorg, dest]; } + set + { + pesi[sorg, dest] = value; + // Un arco non orientato equivale a una coppia di archi orientati + if (tipo == Grafo.Tipo.NonOrientato) + pesi[dest, sorg] = value; + } + } + + public Grafo(int numNodi, Tipo tipo = Tipo.Orientato) + { + this.numNodi = numNodi; + this.tipo = tipo; + pesi = new int[numNodi, numNodi]; + // Inizializzazione dei pesi del grafo + // All'inizio il grafo non contiene archi -> tutti i pesi sono infiniti + for (int i = 0; i < numNodi; i++) + for (int j = 0; j < numNodi; j++) + pesi[i, j] = Grafo.Infinito; + } + + // Calcolo del percorso a costo minimo, a partire da un dato nodo sorgente, + // mediante l'algorimo di Dijkstra. + // Il metodo restituisce un nuovo grafo rappresentante il Minimum Spanning Tree + // elaborato a partire dal nodo indicato. + public Grafo Dijkstra(int partenza) + { + // Definizione dello stato dei nodi mediante vettori paralleli + + int[] costoTot = new int[numNodi]; // Vettore dei costi totali + int[] pred = new int[numNodi]; // Vettore dei nodi predecessori + + // Criterio di confronto tra due nodi (utilizzato per stabilire la priorità di elaborazione nella coda) + // definito mediante statement Lambda. + // + // Dati due nodi A e B, la funzione di confronto restituisce un numero negativo se A è elaborato prima di B + // (A ha priorità maggiore); un numero positivo se A è elaborato dopo B. + // Il risultato del confronto è calcolato per differenza tra i costi totali di A e B (precedenza ai costi minori) + // Nel caso di costi uguali, si sceglie di stabilire la priorità in base all'id del nodo (precedenza agli id minori). + + IComparer<int> confrontaNodi = Comparer<int>.Create( + (a, b) => + { + int pa = costoTot[a]; + int pb = costoTot[b]; + return (pa != pb ? pa - pb : a - b); + }); + + // Implementazione di una coda con priorità mediante SortedSet. + // La coda contiene gli id dei nodi in attesa di essere elaborati. + // Gli elementi inseriti nella coda sono ordinati in base alla priorità: + // il primo elemento della coda (elemento minimo) corrisponde al + // nodo con priorità maggiore. + + SortedSet<int> coda = new SortedSet<int>(confrontaNodi); + + // Fase 1: Inizializzazione dello stato e inserimento dei nodi in coda + for (int i = 0; i < numNodi; i++) + { + costoTot[i] = (i == partenza ? 0 : Grafo.Infinito); + pred[i] = Grafo.NessunNodo; + coda.Add(i); + } + + while (coda.Count > 0) + { + // Estrazione dalla coda del nodo a costo minimo + int corrente = coda.Min; + coda.Remove(corrente); + + // Se il nodo estratto ha peso infinito, la coda contiene solo nodi irraggiungibili: + // il ciclo può essere interrotto. + if (costoTot[corrente] == Grafo.Infinito) + break; + + for (int vicino = 0; vicino < numNodi; vicino++) + { + // Analisi dei nodi vicini (collegati al nodo corrente con un arco) + int peso = this[corrente, vicino]; + if (peso != Grafo.Infinito && costoTot[corrente] + peso < costoTot[vicino]) + { + // Per aggiornare il costo totale, si rimuove il nodo "vicino" dal set, + // si ricalcola il suo costo e si reinserisce il nodo aggiornato nel set. + // Questa operazioni sono equivalenti all'aggiornamento della priorità + // del nodo nella coda. + + coda.Remove(vicino); + costoTot[vicino] = costoTot[corrente] + peso; + pred[vicino] = corrente; // Aggiornamento del nodo predecessore + coda.Add(vicino); + } + } + } + + // Costruzione del grafo MST a partire dagli stati finali dei nodi + Grafo mst = new Grafo(numNodi, Grafo.Tipo.Orientato); + for (int i = 0; i < numNodi; i++) + { + int h = pred[i]; + // Se il nodo i ha un predecessore, si inserisce nel grafo l'arco pesato h -> i + if (h != Grafo.NessunNodo) + mst[h, i] = pesi[h, i]; + } + return mst; + } + + public override string ToString() + { + // Rappresentazione testuale del grafo. + // Il formato di rappresentazione è compatibile con + // il software GraphViz (https://graphviz.org/). + + // Strumento online per visualizzare un grafo in formato GraphViz: + // https://dreampuf.github.io/GraphvizOnline/ + + + var sb = new StringBuilder(); + string tg = tipo == Grafo.Tipo.Orientato ? "digraph" : "graph"; + string tl = tipo == Grafo.Tipo.Orientato ? "->" : "--"; + sb.AppendLine(tg + " {"); + for (int i = 0; i < numNodi; i++) + { + int inizio = tipo == Grafo.Tipo.NonOrientato ? i : 0; + for (int j = inizio; j < numNodi; j++) + { + int peso = this[i, j]; + if (peso != Grafo.Infinito) + sb.AppendLine($" {i} {tl} {j} [label={peso}];"); + } + } + + sb.AppendLine("}"); + return sb.ToString(); + } + } +} diff --git a/Grafi/LibreriaGrafi/LibreriaGrafi.csproj b/Grafi/LibreriaGrafi/LibreriaGrafi.csproj new file mode 100644 index 0000000000000000000000000000000000000000..f208d303c9811fa05807ef8f72685b8ebb536a37 --- /dev/null +++ b/Grafi/LibreriaGrafi/LibreriaGrafi.csproj @@ -0,0 +1,7 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <TargetFramework>net5.0</TargetFramework> + </PropertyGroup> + +</Project> diff --git a/Grafi/LibreriaGrafi/obj/Debug/net5.0/.NETCoreApp,Version=v5.0.AssemblyAttributes.cs b/Grafi/LibreriaGrafi/obj/Debug/net5.0/.NETCoreApp,Version=v5.0.AssemblyAttributes.cs new file mode 100644 index 0000000000000000000000000000000000000000..2f7e5ec5afa156f8313c6a17e8a80a25246858f5 --- /dev/null +++ b/Grafi/LibreriaGrafi/obj/Debug/net5.0/.NETCoreApp,Version=v5.0.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// <autogenerated /> +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v5.0", FrameworkDisplayName = "")] diff --git a/Grafi/LibreriaGrafi/obj/Debug/net5.0/LibreriaGrafi.assets.cache b/Grafi/LibreriaGrafi/obj/Debug/net5.0/LibreriaGrafi.assets.cache new file mode 100644 index 0000000000000000000000000000000000000000..8cd7f9142b2cc19d0625ae3449aef1e518c379ff Binary files /dev/null and b/Grafi/LibreriaGrafi/obj/Debug/net5.0/LibreriaGrafi.assets.cache differ diff --git a/Grafi/LibreriaGrafi/obj/Debug/net5.0/LibreriaGrafi.csproj.FileListAbsolute.txt b/Grafi/LibreriaGrafi/obj/Debug/net5.0/LibreriaGrafi.csproj.FileListAbsolute.txt new file mode 100644 index 0000000000000000000000000000000000000000..55f5ca66449c10620e24fed3c7109ff7d46fbfe2 --- /dev/null +++ b/Grafi/LibreriaGrafi/obj/Debug/net5.0/LibreriaGrafi.csproj.FileListAbsolute.txt @@ -0,0 +1,12 @@ +C:\Users\Fuligni\source\repos\Grafi\LibreriaGrafi\obj\Debug\net5.0\LibreriaGrafi.csproj.AssemblyReference.cache +C:\Users\Fuligni\source\repos\Grafi\LibreriaGrafi\obj\Debug\net5.0\LibreriaGrafi.GeneratedMSBuildEditorConfig.editorconfig +C:\Users\Fuligni\source\repos\Grafi\LibreriaGrafi\obj\Debug\net5.0\LibreriaGrafi.AssemblyInfoInputs.cache +C:\Users\Fuligni\source\repos\Grafi\LibreriaGrafi\obj\Debug\net5.0\LibreriaGrafi.AssemblyInfo.cs +C:\Users\Fuligni\source\repos\Grafi\LibreriaGrafi\obj\Debug\net5.0\LibreriaGrafi.csproj.CoreCompileInputs.cache +C:\Users\Fuligni\source\repos\Grafi\LibreriaGrafi\bin\Debug\net5.0\LibreriaGrafi.deps.json +C:\Users\Fuligni\source\repos\Grafi\LibreriaGrafi\bin\Debug\net5.0\LibreriaGrafi.dll +C:\Users\Fuligni\source\repos\Grafi\LibreriaGrafi\bin\Debug\net5.0\ref\LibreriaGrafi.dll +C:\Users\Fuligni\source\repos\Grafi\LibreriaGrafi\bin\Debug\net5.0\LibreriaGrafi.pdb +C:\Users\Fuligni\source\repos\Grafi\LibreriaGrafi\obj\Debug\net5.0\LibreriaGrafi.dll +C:\Users\Fuligni\source\repos\Grafi\LibreriaGrafi\obj\Debug\net5.0\ref\LibreriaGrafi.dll +C:\Users\Fuligni\source\repos\Grafi\LibreriaGrafi\obj\Debug\net5.0\LibreriaGrafi.pdb diff --git a/Grafi/LibreriaGrafi/obj/LibreriaGrafi.csproj.nuget.dgspec.json b/Grafi/LibreriaGrafi/obj/LibreriaGrafi.csproj.nuget.dgspec.json new file mode 100644 index 0000000000000000000000000000000000000000..9d921a8556fab7e91023b4c64ce1009458a3a053 --- /dev/null +++ b/Grafi/LibreriaGrafi/obj/LibreriaGrafi.csproj.nuget.dgspec.json @@ -0,0 +1,62 @@ +{ + "format": 1, + "restore": { + "C:\\Users\\Fuligni\\OneDrive\\Desktop\\4A\\SR\\algoritmi-di-routing\\Grafi\\LibreriaGrafi\\LibreriaGrafi.csproj": {} + }, + "projects": { + "C:\\Users\\Fuligni\\OneDrive\\Desktop\\4A\\SR\\algoritmi-di-routing\\Grafi\\LibreriaGrafi\\LibreriaGrafi.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\Fuligni\\OneDrive\\Desktop\\4A\\SR\\algoritmi-di-routing\\Grafi\\LibreriaGrafi\\LibreriaGrafi.csproj", + "projectName": "LibreriaGrafi", + "projectPath": "C:\\Users\\Fuligni\\OneDrive\\Desktop\\4A\\SR\\algoritmi-di-routing\\Grafi\\LibreriaGrafi\\LibreriaGrafi.csproj", + "packagesPath": "C:\\Users\\Fuligni\\.nuget\\packages\\", + "outputPath": "C:\\Users\\Fuligni\\OneDrive\\Desktop\\4A\\SR\\algoritmi-di-routing\\Grafi\\LibreriaGrafi\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\Fuligni\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" + ], + "originalTargetFrameworks": [ + "net5.0" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net5.0": { + "targetAlias": "net5.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + } + }, + "frameworks": { + "net5.0": { + "targetAlias": "net5.0", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\6.0.101\\RuntimeIdentifierGraph.json" + } + } + } + } +} \ No newline at end of file diff --git a/Grafi/LibreriaGrafi/obj/LibreriaGrafi.csproj.nuget.g.props b/Grafi/LibreriaGrafi/obj/LibreriaGrafi.csproj.nuget.g.props new file mode 100644 index 0000000000000000000000000000000000000000..a67070b3fe0b60792a9778b6dea07c62ce2ee5d9 --- /dev/null +++ b/Grafi/LibreriaGrafi/obj/LibreriaGrafi.csproj.nuget.g.props @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="utf-8" standalone="no"?> +<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' "> + <RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess> + <RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool> + <ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile> + <NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot> + <NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Fuligni\.nuget\packages\</NuGetPackageFolders> + <NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle> + <NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.11.1</NuGetToolVersion> + </PropertyGroup> + <ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' "> + <SourceRoot Include="C:\Users\Fuligni\.nuget\packages\" /> + </ItemGroup> + <PropertyGroup> + <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects> + </PropertyGroup> +</Project> \ No newline at end of file diff --git a/Grafi/LibreriaGrafi/obj/LibreriaGrafi.csproj.nuget.g.targets b/Grafi/LibreriaGrafi/obj/LibreriaGrafi.csproj.nuget.g.targets new file mode 100644 index 0000000000000000000000000000000000000000..53cfaa19b16f3769b2bfc33db3b5c0053c16fdba --- /dev/null +++ b/Grafi/LibreriaGrafi/obj/LibreriaGrafi.csproj.nuget.g.targets @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8" standalone="no"?> +<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects> + </PropertyGroup> +</Project> \ No newline at end of file diff --git a/Grafi/LibreriaGrafi/obj/project.assets.json b/Grafi/LibreriaGrafi/obj/project.assets.json new file mode 100644 index 0000000000000000000000000000000000000000..902619e976837514a1c6005bce7024452833d15c --- /dev/null +++ b/Grafi/LibreriaGrafi/obj/project.assets.json @@ -0,0 +1,67 @@ +{ + "version": 3, + "targets": { + "net5.0": {} + }, + "libraries": {}, + "projectFileDependencyGroups": { + "net5.0": [] + }, + "packageFolders": { + "C:\\Users\\Fuligni\\.nuget\\packages\\": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\Fuligni\\OneDrive\\Desktop\\4A\\SR\\algoritmi-di-routing\\Grafi\\LibreriaGrafi\\LibreriaGrafi.csproj", + "projectName": "LibreriaGrafi", + "projectPath": "C:\\Users\\Fuligni\\OneDrive\\Desktop\\4A\\SR\\algoritmi-di-routing\\Grafi\\LibreriaGrafi\\LibreriaGrafi.csproj", + "packagesPath": "C:\\Users\\Fuligni\\.nuget\\packages\\", + "outputPath": "C:\\Users\\Fuligni\\OneDrive\\Desktop\\4A\\SR\\algoritmi-di-routing\\Grafi\\LibreriaGrafi\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\Fuligni\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" + ], + "originalTargetFrameworks": [ + "net5.0" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net5.0": { + "targetAlias": "net5.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + } + }, + "frameworks": { + "net5.0": { + "targetAlias": "net5.0", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\6.0.101\\RuntimeIdentifierGraph.json" + } + } + } +} \ No newline at end of file diff --git a/Grafi/PercorsoDijkstra/PercorsoDijkstra.cs b/Grafi/PercorsoDijkstra/PercorsoDijkstra.cs new file mode 100644 index 0000000000000000000000000000000000000000..3e0efbb84e2f606c718180c4ede90971a725dddb --- /dev/null +++ b/Grafi/PercorsoDijkstra/PercorsoDijkstra.cs @@ -0,0 +1,41 @@ +/* + * Progetto: Calcolo del percorso a costo minimo mediante algoritmo di Dijkstra + * + * Autore: Roberto Fuligni + * Ultima modifica: 07/03/2022 + * + * Descrizione: Costruisce un grafo pesato e determina il MST a partire da un dato nodo sorgente. + * Il grafo iniziale e il MSt sono visualizzati in formato GraphViz. + */ + +using LibreriaGrafi; +using System; + +namespace PercorsoDijkstra +{ + class PercorsoDijkstra + { + static void Main(string[] args) + { + // Esempio di grafo non orientato con sei nodi. + // Gli archi non hanno pesi negativi + + const int NumeroNodi = 6; + var g = new Grafo(NumeroNodi, Grafo.Tipo.NonOrientato); + g[0, 1] = 4; g[0, 5] = 3; g[0, 1] = 4; + g[0, 5] = 3; g[1, 2] = 2; g[1, 4] = 5; + g[1, 5] = 1; g[2, 3] = 2; g[3, 4] = 1; + g[3, 5] = 6; g[4, 5] = 20; + + Console.WriteLine("Per visualizzare un grafo: https://dreampuf.github.io/GraphvizOnline"); + Console.WriteLine("# GRAFO INIZIALE"); + Console.WriteLine(g); + + Grafo mst = g.Dijkstra(0); + + Console.WriteLine(); + Console.WriteLine("# MST"); + Console.WriteLine(mst); + } + } +} diff --git a/Grafi/PercorsoDijkstra/PercorsoDijkstra.csproj b/Grafi/PercorsoDijkstra/PercorsoDijkstra.csproj new file mode 100644 index 0000000000000000000000000000000000000000..b8164bd2dbe84e909a8725440d05234edfe1f97f --- /dev/null +++ b/Grafi/PercorsoDijkstra/PercorsoDijkstra.csproj @@ -0,0 +1,12 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <OutputType>Exe</OutputType> + <TargetFramework>net5.0</TargetFramework> + </PropertyGroup> + + <ItemGroup> + <ProjectReference Include="..\LibreriaGrafi\LibreriaGrafi.csproj" /> + </ItemGroup> + +</Project> diff --git a/Grafi/PercorsoDijkstra/obj/Debug/net5.0/.NETCoreApp,Version=v5.0.AssemblyAttributes.cs b/Grafi/PercorsoDijkstra/obj/Debug/net5.0/.NETCoreApp,Version=v5.0.AssemblyAttributes.cs new file mode 100644 index 0000000000000000000000000000000000000000..2f7e5ec5afa156f8313c6a17e8a80a25246858f5 --- /dev/null +++ b/Grafi/PercorsoDijkstra/obj/Debug/net5.0/.NETCoreApp,Version=v5.0.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// <autogenerated /> +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v5.0", FrameworkDisplayName = "")] diff --git a/Grafi/PercorsoDijkstra/obj/Debug/net5.0/PercorsoDijkstra.assets.cache b/Grafi/PercorsoDijkstra/obj/Debug/net5.0/PercorsoDijkstra.assets.cache new file mode 100644 index 0000000000000000000000000000000000000000..35d2fae5aa07276e7770b285da98fff7eeb226f6 Binary files /dev/null and b/Grafi/PercorsoDijkstra/obj/Debug/net5.0/PercorsoDijkstra.assets.cache differ diff --git a/Grafi/PercorsoDijkstra/obj/Debug/net5.0/PercorsoDijkstra.csproj.FileListAbsolute.txt b/Grafi/PercorsoDijkstra/obj/Debug/net5.0/PercorsoDijkstra.csproj.FileListAbsolute.txt new file mode 100644 index 0000000000000000000000000000000000000000..5a542c84f0ab7d700a1285b4effdfb805a2cefa2 --- /dev/null +++ b/Grafi/PercorsoDijkstra/obj/Debug/net5.0/PercorsoDijkstra.csproj.FileListAbsolute.txt @@ -0,0 +1,19 @@ +C:\Users\Fuligni\source\repos\Grafi\PercorsoDijkstra\bin\Debug\net5.0\PercorsoDijkstra.exe +C:\Users\Fuligni\source\repos\Grafi\PercorsoDijkstra\bin\Debug\net5.0\PercorsoDijkstra.deps.json +C:\Users\Fuligni\source\repos\Grafi\PercorsoDijkstra\bin\Debug\net5.0\PercorsoDijkstra.runtimeconfig.json +C:\Users\Fuligni\source\repos\Grafi\PercorsoDijkstra\bin\Debug\net5.0\PercorsoDijkstra.runtimeconfig.dev.json +C:\Users\Fuligni\source\repos\Grafi\PercorsoDijkstra\bin\Debug\net5.0\PercorsoDijkstra.dll +C:\Users\Fuligni\source\repos\Grafi\PercorsoDijkstra\bin\Debug\net5.0\ref\PercorsoDijkstra.dll +C:\Users\Fuligni\source\repos\Grafi\PercorsoDijkstra\bin\Debug\net5.0\PercorsoDijkstra.pdb +C:\Users\Fuligni\source\repos\Grafi\PercorsoDijkstra\bin\Debug\net5.0\LibreriaGrafi.dll +C:\Users\Fuligni\source\repos\Grafi\PercorsoDijkstra\bin\Debug\net5.0\LibreriaGrafi.pdb +C:\Users\Fuligni\source\repos\Grafi\PercorsoDijkstra\obj\Debug\net5.0\PercorsoDijkstra.csproj.AssemblyReference.cache +C:\Users\Fuligni\source\repos\Grafi\PercorsoDijkstra\obj\Debug\net5.0\PercorsoDijkstra.GeneratedMSBuildEditorConfig.editorconfig +C:\Users\Fuligni\source\repos\Grafi\PercorsoDijkstra\obj\Debug\net5.0\PercorsoDijkstra.AssemblyInfoInputs.cache +C:\Users\Fuligni\source\repos\Grafi\PercorsoDijkstra\obj\Debug\net5.0\PercorsoDijkstra.AssemblyInfo.cs +C:\Users\Fuligni\source\repos\Grafi\PercorsoDijkstra\obj\Debug\net5.0\PercorsoDijkstra.csproj.CoreCompileInputs.cache +C:\Users\Fuligni\source\repos\Grafi\PercorsoDijkstra\obj\Debug\net5.0\PercorsoDijkstra.csproj.CopyComplete +C:\Users\Fuligni\source\repos\Grafi\PercorsoDijkstra\obj\Debug\net5.0\PercorsoDijkstra.dll +C:\Users\Fuligni\source\repos\Grafi\PercorsoDijkstra\obj\Debug\net5.0\ref\PercorsoDijkstra.dll +C:\Users\Fuligni\source\repos\Grafi\PercorsoDijkstra\obj\Debug\net5.0\PercorsoDijkstra.pdb +C:\Users\Fuligni\source\repos\Grafi\PercorsoDijkstra\obj\Debug\net5.0\PercorsoDijkstra.genruntimeconfig.cache diff --git a/Grafi/PercorsoDijkstra/obj/Debug/net5.0/apphost.exe b/Grafi/PercorsoDijkstra/obj/Debug/net5.0/apphost.exe new file mode 100644 index 0000000000000000000000000000000000000000..e444b0012b825ad7d33872e0aaa5632e0c86b7bf Binary files /dev/null and b/Grafi/PercorsoDijkstra/obj/Debug/net5.0/apphost.exe differ diff --git a/Grafi/PercorsoDijkstra/obj/PercorsoDijkstra.csproj.nuget.dgspec.json b/Grafi/PercorsoDijkstra/obj/PercorsoDijkstra.csproj.nuget.dgspec.json new file mode 100644 index 0000000000000000000000000000000000000000..22d9f3931c30d09fd60f5ad2d58a455bc7a1c297 --- /dev/null +++ b/Grafi/PercorsoDijkstra/obj/PercorsoDijkstra.csproj.nuget.dgspec.json @@ -0,0 +1,120 @@ +{ + "format": 1, + "restore": { + "C:\\Users\\Fuligni\\OneDrive\\Desktop\\4A\\SR\\algoritmi-di-routing\\Grafi\\PercorsoDijkstra\\PercorsoDijkstra.csproj": {} + }, + "projects": { + "C:\\Users\\Fuligni\\OneDrive\\Desktop\\4A\\SR\\algoritmi-di-routing\\Grafi\\LibreriaGrafi\\LibreriaGrafi.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\Fuligni\\OneDrive\\Desktop\\4A\\SR\\algoritmi-di-routing\\Grafi\\LibreriaGrafi\\LibreriaGrafi.csproj", + "projectName": "LibreriaGrafi", + "projectPath": "C:\\Users\\Fuligni\\OneDrive\\Desktop\\4A\\SR\\algoritmi-di-routing\\Grafi\\LibreriaGrafi\\LibreriaGrafi.csproj", + "packagesPath": "C:\\Users\\Fuligni\\.nuget\\packages\\", + "outputPath": "C:\\Users\\Fuligni\\OneDrive\\Desktop\\4A\\SR\\algoritmi-di-routing\\Grafi\\LibreriaGrafi\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\Fuligni\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" + ], + "originalTargetFrameworks": [ + "net5.0" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net5.0": { + "targetAlias": "net5.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + } + }, + "frameworks": { + "net5.0": { + "targetAlias": "net5.0", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\6.0.101\\RuntimeIdentifierGraph.json" + } + } + }, + "C:\\Users\\Fuligni\\OneDrive\\Desktop\\4A\\SR\\algoritmi-di-routing\\Grafi\\PercorsoDijkstra\\PercorsoDijkstra.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\Fuligni\\OneDrive\\Desktop\\4A\\SR\\algoritmi-di-routing\\Grafi\\PercorsoDijkstra\\PercorsoDijkstra.csproj", + "projectName": "PercorsoDijkstra", + "projectPath": "C:\\Users\\Fuligni\\OneDrive\\Desktop\\4A\\SR\\algoritmi-di-routing\\Grafi\\PercorsoDijkstra\\PercorsoDijkstra.csproj", + "packagesPath": "C:\\Users\\Fuligni\\.nuget\\packages\\", + "outputPath": "C:\\Users\\Fuligni\\OneDrive\\Desktop\\4A\\SR\\algoritmi-di-routing\\Grafi\\PercorsoDijkstra\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\Fuligni\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" + ], + "originalTargetFrameworks": [ + "net5.0" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net5.0": { + "targetAlias": "net5.0", + "projectReferences": { + "C:\\Users\\Fuligni\\OneDrive\\Desktop\\4A\\SR\\algoritmi-di-routing\\Grafi\\LibreriaGrafi\\LibreriaGrafi.csproj": { + "projectPath": "C:\\Users\\Fuligni\\OneDrive\\Desktop\\4A\\SR\\algoritmi-di-routing\\Grafi\\LibreriaGrafi\\LibreriaGrafi.csproj" + } + } + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + } + }, + "frameworks": { + "net5.0": { + "targetAlias": "net5.0", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\6.0.101\\RuntimeIdentifierGraph.json" + } + } + } + } +} \ No newline at end of file diff --git a/Grafi/PercorsoDijkstra/obj/PercorsoDijkstra.csproj.nuget.g.props b/Grafi/PercorsoDijkstra/obj/PercorsoDijkstra.csproj.nuget.g.props new file mode 100644 index 0000000000000000000000000000000000000000..a67070b3fe0b60792a9778b6dea07c62ce2ee5d9 --- /dev/null +++ b/Grafi/PercorsoDijkstra/obj/PercorsoDijkstra.csproj.nuget.g.props @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="utf-8" standalone="no"?> +<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' "> + <RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess> + <RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool> + <ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile> + <NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot> + <NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Fuligni\.nuget\packages\</NuGetPackageFolders> + <NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle> + <NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.11.1</NuGetToolVersion> + </PropertyGroup> + <ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' "> + <SourceRoot Include="C:\Users\Fuligni\.nuget\packages\" /> + </ItemGroup> + <PropertyGroup> + <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects> + </PropertyGroup> +</Project> \ No newline at end of file diff --git a/Grafi/PercorsoDijkstra/obj/PercorsoDijkstra.csproj.nuget.g.targets b/Grafi/PercorsoDijkstra/obj/PercorsoDijkstra.csproj.nuget.g.targets new file mode 100644 index 0000000000000000000000000000000000000000..53cfaa19b16f3769b2bfc33db3b5c0053c16fdba --- /dev/null +++ b/Grafi/PercorsoDijkstra/obj/PercorsoDijkstra.csproj.nuget.g.targets @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8" standalone="no"?> +<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects> + </PropertyGroup> +</Project> \ No newline at end of file diff --git a/Grafi/PercorsoDijkstra/obj/project.assets.json b/Grafi/PercorsoDijkstra/obj/project.assets.json new file mode 100644 index 0000000000000000000000000000000000000000..d7e71b4612848d3a2e70e24d3d3c69932ec64c26 --- /dev/null +++ b/Grafi/PercorsoDijkstra/obj/project.assets.json @@ -0,0 +1,90 @@ +{ + "version": 3, + "targets": { + "net5.0": { + "LibreriaGrafi/1.0.0": { + "type": "project", + "framework": ".NETCoreApp,Version=v5.0", + "compile": { + "bin/placeholder/LibreriaGrafi.dll": {} + }, + "runtime": { + "bin/placeholder/LibreriaGrafi.dll": {} + } + } + } + }, + "libraries": { + "LibreriaGrafi/1.0.0": { + "type": "project", + "path": "../LibreriaGrafi/LibreriaGrafi.csproj", + "msbuildProject": "../LibreriaGrafi/LibreriaGrafi.csproj" + } + }, + "projectFileDependencyGroups": { + "net5.0": [ + "LibreriaGrafi >= 1.0.0" + ] + }, + "packageFolders": { + "C:\\Users\\Fuligni\\.nuget\\packages\\": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\Fuligni\\OneDrive\\Desktop\\4A\\SR\\algoritmi-di-routing\\Grafi\\PercorsoDijkstra\\PercorsoDijkstra.csproj", + "projectName": "PercorsoDijkstra", + "projectPath": "C:\\Users\\Fuligni\\OneDrive\\Desktop\\4A\\SR\\algoritmi-di-routing\\Grafi\\PercorsoDijkstra\\PercorsoDijkstra.csproj", + "packagesPath": "C:\\Users\\Fuligni\\.nuget\\packages\\", + "outputPath": "C:\\Users\\Fuligni\\OneDrive\\Desktop\\4A\\SR\\algoritmi-di-routing\\Grafi\\PercorsoDijkstra\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\Fuligni\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" + ], + "originalTargetFrameworks": [ + "net5.0" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net5.0": { + "targetAlias": "net5.0", + "projectReferences": { + "C:\\Users\\Fuligni\\OneDrive\\Desktop\\4A\\SR\\algoritmi-di-routing\\Grafi\\LibreriaGrafi\\LibreriaGrafi.csproj": { + "projectPath": "C:\\Users\\Fuligni\\OneDrive\\Desktop\\4A\\SR\\algoritmi-di-routing\\Grafi\\LibreriaGrafi\\LibreriaGrafi.csproj" + } + } + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + } + }, + "frameworks": { + "net5.0": { + "targetAlias": "net5.0", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\6.0.101\\RuntimeIdentifierGraph.json" + } + } + } +} \ No newline at end of file diff --git a/README.md b/README.md index 6b8fdd60c437c4e44b26737e6419e05274b842f7..3157b9e4750c63c4cbb22192c721e80b896942a5 100644 --- a/README.md +++ b/README.md @@ -4,4 +4,5 @@ Soluzioni di alcuni degli esercizi proposti durante le lezioni di "Sistemi e reti". -* [Regole di routing](Regole%20routing) \ No newline at end of file +* [Regole di routing](Regole%20routing) +* [Ricerca del percorso minimo](Grafi) \ No newline at end of file