Skip to content

JerichoFletcher/WowBestMatch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WowBestMatch

Author: Jericho Russel Sebastian (13521107)

WowBestMatch merupakan program pencari pasangan titik terdekat (closest pair) dari sekumpulan titik n-dimensi acak atau diberikan. Program ini dibuat sebagai pemenuhan Tugas Kecil 2 mata kuliah IF2211 Strategi Algoritma.

Table of Contents

Requirements

  • Make, GNU G++, Python, PyInstaller, Matplotlib (untuk kompilasi)
  • Make, Python, Matplotlib (opsional untuk menjalankan)

Description

Program terbagi menjadi dua bagian, yaitu:

  1. WowBM (C++): Mencari pasangan titik terdekat dari sekumpulan titik n-dimensi:

    • Jika tidak diberikan argumen, program akan menerima masukan banyak titik dan nilai n.
    • Jika diberikan argumen path ke file CSV, program akan membaca file dan membentuk daftar titik sesuai dengan isi file.

    Program memberikan beberapa keluaran, yaitu:

    • Keluaran ke layar berupa pasangan titik terdekat beserta dengan jaraknya, berikut banyak operasi perhitungan jarak dan durasi total.
    • Keluaran indeks pasangan titik terdekat beserta dengan daftar titik ke file result.txt, untuk dibaca oleh WowPlot.
  2. WowPlot (Python): Menerima daftar titik dalam file result.txt dan menggambarkan semua titik dalam bidang 3D:

    • Variasi 3 komponen pertama titik digambarkan sebagai perbedaan posisi dalam bidang 3D.
    • Variasi komponen ke-4 digambarkan sebagai perbedaan ukuran.
    • Variasi komponen ke-5 digambarkan sebagai perbedaan warna.
    • Variasi komponen di atas dimensi 5 tidak digambarkan.

    Pasangan titik terdekat yang ditemukan oleh WowBM digambarkan dalam warna merah.

Compilation

Jalankan perintah berikut pada root folder untuk mengkompilasi program (hasil wowbm.exe dan wowplot.exe dalam folder bin):

make build-all

Jalankan perintah berikut pada root folder untuk mengkompilasi versi debug dari program (hasil wowbm_debug.exe dan wowplot.exe dalam folder bin):

make build-debug

Usage

Run

Untuk menjalankan program, jalankan perintah berikut pada root folder:

make run

atau, jika Python dan Matplotlib tersedia:

make run-nopybin

Jika Make tidak tersedia, dapat menjalankan run.bat (Windows) atau run.sh (Linux) yang tersedia pada root folder.

Program dapat menerima masukan kumpulan titik dari file CSV. Jalankan perintah berikut untuk memberikan masukan file:

./bin/wowbm.exe <path/to/file.csv>
./bin/wowplot.exe

Debug

Untuk menjalankan versi debug dari program (melakukan perbandingan terhadap algoritma brute force), jalankan perintah berikut pada root folder:

make debug

atau, jika Python dan Matplotlib tersedia:

make debug-nopybin

Jika Make tidak tersedia, dapat menjalankan debug.bat (Windows) atau debug.sh (Linux) yang tersedia pada root folder.

Program dapat menerima masukan kumpulan titik dari file CSV. Jalankan perintah berikut untuk memberikan masukan file:

./bin/wowbm_debug.exe <path/to/file.csv>
./bin/wowplot.exe

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published