Giter Site home page Giter Site logo

wowbestmatch's Introduction

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

wowbestmatch's People

Contributors

jerichofletcher avatar

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.