Graf – podstawowy obiekt rozważań teorii grafów, struktura matematyczna służąca do przedstawiania i badania relacji między obiektami. W uproszczeniu graf to zbiór wierzchołków, które mogą być połączone krawędziami w taki sposób, że każda krawędź kończy się i zaczyna w którymś z wierzchołków.
W świecie informatyki graf jest abstrakcyjnym typem danych, który implementuje graf skierowany lub nieskierowany. Niniejsza biblioteka umożliwia zapis grafu za pomocą listy lub macierzy sąsiedztwa oraz późniejszą jego obróbkę za pomocą licznych algorytmów takich jak:
- Depth First Search
- Breadth First Search
- General Search
- Najkrótsze ścieżki:
- Aproksymacyjne TSP:
- TSP:
- Euler Path
- Minimalne Drzewo Rozpinające:
- Biconnected Components
- Strongly Connected Components
- Sortowanie Topologiczne
- Odwrotność
- Izomorfizmy
- Maksymalny Przepływ:
- Maksymalny Przepływ o Minimalnym Koszcie
- Generowanie Grafów
Żeby użyć tej biblioteki wytarczy dodać referecję paczki nugeta w pliku projektu:
<PackageReference Include="Graph.dll" Version="7.2.3" />
Dostarczona studentom wersja biblioteka uniemożliwia użycie jej na systemach innych niż Windows, takich jak systemy bazujące na jądrze Linux czy MacOS. Zgodnie z otrzymanym mailem nie jest także planowana wersja kompatybilna z innymi systemami. Zdeobfuskowana wersja biblioteki umożliwia korzystanie z niej na innych sytemach. Jest to jedyny cel powstania tego projektu. Biblioteka tu zamieszczona powinna być używana wyłącznie w tym celu, oraz tylko w wypadku posiadania licencji na używanie niezobfuskowanej wersji biblioteki. Ponadto stwierdzenie, że "system Windows jest obecnie systemem dominującym i ktoś kto nie porusza się w nim sprawnie, po prostu nie jest dobrym informatykiem" jest po prostu obraźliwe i aroganckie. Wielu ludzi świadomie nie korzysta z systemu Windows, gdyż jest to na przykład sprzeczne z ich światopoglądem, a zmuszanie ich do tego(celowe bądź nie) jest niewłaściwe. Nie każdy chce być szpiegowany przez system operacyjny, nie każdy też zgadza się z polityką Microsoftu. Poniżej załączona część wypowiedzi:
Biblioteka Graph działa jedynie w systemie Windows (i tak niestety musi być). Nie jest moim celem zmuszanie Państwa do używania Windows,
opisana cecha biblioteki jest efektem ubocznym obfuskacji. A obfuskacja jest konieczna.
Niestety platforma .NET ma taką przykrą cechę, że na podstawie niezabezpieczonych plików binarnych
można przy pomocy ogólnie dostępnych narzędzi w prosty sposób odzyskać kod źródłowy programu.
A na podanie Państwu na tacy gotowych do wykorzystania kodów źródłowych algorytmów z biblioteki
zgodzić się niestety nie mogę.
Jako studenci naszego wydziału macie Państwo prawo do bezpłatnego korzystania z Windows
do celów uczelnianych.
Wiem, że niektórzy z Państwa preferują inne systemy, ale fakty są takie, że system Windows
jest obecnie systemem dominującym i ktoś kto nie porusza się w nim sprawnie, po prostu nie jest
dobrym informatykiem, a laboratorium z ASD2 może być okazją na poćwiczenie korzystania z Windows
dla tych, którzy nie robią tego na co dzień.
Dostosowanie biblioteki Graph do innych systemów nie jest planowane.