Git Product home page Git Product logo

topological-sort's Introduction

Tugas Kecil II IF2211 Strategi Algoritma

Penyusunan Rencana Kuliah dengan Topological-Sort

Topological sort adalah persoalan mengurutkan simpul-simpul pada suatu Directed Acyclic Graph dimana untuk setiap sisi dari simpul v ke u, maka simpul v akan muncul terlebih dahulu sebelum simpul u pada hasil pengurutan.

Program ini akan menyelesaikan sebuah persoalan penyusunan rencana kuliah dengan topological sort sebagai salah satu pendekatan algortima decrease and conquer dimana sebuah persoalan akan direduksi menjadi sub-persoalan yang lebih kecil, kemudian dilanjutkan dengan memproses sub-persoalan terebut.

Pertama-tama, program akan mengubah daftar mata kuliah ke dalam representasi DAG. Kemudian program akan melakukan pengulangan secara rekursif dimana setiap iterasinya akan dipilih semua mata kuliah yang dapat diambil tanpa prasyarat, dan mata kuliah tersebut akan dihapus dari graf, kemudian proses yang sama dilakukan untuk semester-semester selanjutnya.

Instalasi

  • Clone repository ini pada terminal :
git clone https://github.com/farishasim/Topological-Sort.git
  • Anda bisa langsung menggunakan program (ada pada direktori bin) atau bisa juga melakukan compile terlebih dahulu. Jika ingin melakukan compile terhadap source-code program diperlukan compiler g++.
  • Compile program dapat dilakukan dengan menggunakan command berikut :
g++ -o bin/Grape.o -c src/13519050-Grape.cpp
g++ -o bin/maindish src/13519050-main.cpp bin/Grape.o
  • atau
g++ -o bin/Grape.o -c src/13519050-Grape.cpp
g++ -std=c++11 -o bin/maindish src/13519050-main.cpp bin/Grape.o
  • Selain itu, pada folder bin juga sudah disediakan driver untuk kelas graf. Silahkan bereksplorasi dengan graf menggunakan driver tersebut. Compile driver dapat dilakukan dengan command yang sama, dengan mengganti bin/maindish menjadi bin/driver dan src/13519050-main.cpp menjadi src/13519050-Plate.cpp

Cara Penggunaan

  • Siapkan file input, masukkan ke folder test (beberapa file yang siap pakai sudah disediakan pada folder tersebut). File yang di-input haruslah berisi daftar mata kuliah yang menjamin DAG jika direpresentasikan ke dalam graf
  • Masuk ke direktori bin, kemudian jalankan program dengan command berikut :
./maindish
  • Setelah program dijalankan, masukkan nama file input (file harus berada pada direktori test)

Author

Faris Hasim Syauqi - 13519050

๐Ÿ“Œ Bandung, Indonesia

topological-sort's People

Watchers

 avatar

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.