GithubHelp home page GithubHelp logo

aal's Introduction

Projekt realizowany w ramach przedmiotu 'Analiza Algorytmów'

Temat projektu: Plan studiów

Autor: Adrian Nadratowski

O strukturze projektu i generowanym programie:

  • Pliki nagłówkowe znajdują się w folderze include/, kod źródłowy znajduje się w folderze src/
  • W folderze docs/ znajdują się dwa pliki .pdf - dokumentacja wstępna i końcowa projektu oraz plik .xslx, w którym analizie poddane zostały wyniki testów wydajności algorytmu.
  • W folderze data/, w plikach 'test*.txt' znajdują sie przykładowe dane wejściowe dla programu oraz narysowany graf reprezentujący jeden z proponowanych zestawów danych
  • W podfoledrach folderu /data - katalogi solutions/ i results/ znajdują się przykładowe wyniki działania programu - odpowiednio: znalezione sekwencje przedmiotów oraz wyniki testów wydajnościowych algorytmu
  • Projekt można skompilować z wykorzystaniem poleceń: cmake . - wygenerowanie plików do budowy projektu, cmake --build . - budowa projektu
  • Wygenerowany w głownym katalogu program (o nazwie 'AAL') można uruchomić w trzech trybach:
    • ./AAL -m 1 - uruchomi program w trybie wczytania danych ze standardowego strumienia wejścia. Do programu można przekierować dane z pliku (przykładowe zestawy danych w plikach data/test*.txt) lub wpisać dane ręcznie, podając w pierwszej kolejności rozmiar grafu, a następnie, w każdej linii zależność między dwoma przedmiotami. Wczytywanie danych można zakończyć wprowadzając dowolną literę/znak inny niż cyfra. Wynikiem działania programu w tym trybie jest uporzadkowana według podanych kryteriów (zależności) sekwencja przedmiotów.
    • ./AAL -m 2 -n [liczba wierzchołków, np. 100] -d [gęstość grafu, 'd' dla gęstego, 's' dla rzadkiego] - wygeneruje losowy graf skierowany o zadanym rozmiarze i gęstości. Rzadki graf oznacza w tym przypadku graf z liczbą krawędzi równą liczbie wierzchołków, natomiast graf gęsty oznacza graf z liczbą krawędzi równą maksymalnej liczbie krawędzi w grafie skierowanym. Wynikiem działania programu w tym trybie są dane gotowe do wykorzystania przy uruchomieniu programu w trybie opisanym wyżej
    • ./AAL -m 3 -n [początkowa liczba wierzchołków, np. 100] -k [liczba problemów do rozwiązania, np. 30] -step [krok zwiększający rozmiar generowanego grafu dla każdej iteracji głównej pęlti programu, np. 50] -r [liczba instancji generowanych dla danego problemu o danym rozmiarze, np. 10] -d [gęstość grafu, 'd' dla gęstego, 's' dla rzadkiego] - ten tryb pozwala zbadać efektywność (czas wykonania) algorytmu na losowych grafach o różnej złożności i o różnym rozmiarze. Program uruchomiony w tym trybie wykonuje k pętli, w kazdej z nich tworząc r instancji problemów o danym rozmiarze do rozwiązania i mierzac czas rozwiązania danej instancji problemu. Po każdorazowym wykonaniu iteracji głównej pętli, czasy wykonania są uśredniane i zapisywane. Wynikiem działania programu w tym trybie są dane rozdzielone przecinkami (można zapisać do pliku .csv i łatwo importować do arkuszy kalkulacyjnych) reprezentujące czasy wykonania dla każdej instancji problemu oraz tabelę z uśrednionymi czasami wykonania dla danych rozmiarów problemu.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.