UNIVERSITI SAINS MALAYSIA. CCS592 Advanced Algorithms and Complexity [Algoritma Lanjutan & Kekompleksan]

Similar documents
CCS592 Advanced Algorithms and Complexity [Algoritma Lanjutan & Kekompleksan]

UNIVERSITI SAINS MALAYSIA. CST333 Distributed & Grid Computing [Perkomputeran Teragih & Grid]

UNIVERSITI SAINS MALAYSIA. CMT322/CMM323 Web Engineering & Technologies [Kejuruteraan & Teknologi Web]

UNIVERSITI SAINS MALAYSIA. CST332 Internet Protocols. Architecture & Routing [Protokol, Seni Bina & Penghalaan Internet]

UNIVERSITI SAINS MALAYSIA. CPT113 Programming Methodology & Data Structures [Metodologi Pengaturcaraan & Struktur Data]

CPT212 Design & Analysis of Algorithms [Reka Bentuk & Analisis Algoritma]

UNIVERSITI SAINS MALAYSIA. CST331 Principles of Parallel & Distributed Programming [Prinsip Pengaturcaraan Selari & Teragih]

UNIVERSITI SAINS MALAYSIA. CCS522 Advanced Data Communication & Computer Networks [Rangkaian Komputer & Komunikasi Data Lanjutan]

UNIVERSITI SAINS MALAYSIA. CST232 Operating Systems [Sistem Pengendalian]

UNIVERSITI SAINS MALAYSIA. CPT344 Computer Vision & Image Processing [Penglihatan Komputer & Pemprosesan Imej]

MSS 318 Discrete Mathematics [Matematik Diskret]

UNIVERSITI SAINS MALAYSIA. Peperiksaan Semester Pertama Sidang Akademik 2003/2004. September/Oktober 2003

UNIVERSITI SAINS MALAYSIA

MSS 317 Coding Theory [Teori Pengekodan]

UNIVERSITI SAINS MALAYSIA. CST334 Network Monitoring & Security [Pengawasan & Keselamatan Rangkaian]

UNIVERSITI SAINS MALAYSIA. CCS522 Advanced Data Communication and Computer Networks [Rangkaian Komputer dan Komunikasi Data Lanjutan]

UNIVERSITI SAINS MALAYSIA. CCS521 Advanced Distributed Systems Concepts and Design [Konsep dan Reka Bentuk Sistem Teragih Maju]

UNIVERSITI SAINS MALAYSIA. CPT211-CPM313 Programming Language Concepts & Paradigm [Konsep & Paradigma Bahasa Pengaturcaraan]

UNIVERSITI SAINS MALAYSIA. CPT111/CPM111 Principles of Programming [Prinsip Pengaturcaraan]

UNIVERSITI SAINS MALAYSIA. CST131 Computer Organisation [Organisasi Komputer]

UNIVERSITI SAINS MALAYSIA. CST131 Computer Organisation [Organisasi Komputer]

UNIVERSITI SAINS MALAYSIA. CMT224/CMM221 Multimedia Systems [Sistem Multimedia]

...a- JEE ELEKTRONIK DIGIT II. UNlVERSlTl SAINS MALAYSIA. Peperiksaan Semester Kedua Sidang Akademik FebruarVMac 2003.

UNIVERSITI SAINS MALAYSIA. CPT212 Design & Analysis of Algorithms [Reka Bentuk & Analisis Algoritma]

UNIVERSITI SAINS MALAYSIA. CMT422 Multimedia Information Systems & Management [Sistem & Pengurusan Maklumat Multimedia]

UNIVERSITI SAINS MALAYSIA. CST131 Computer Organisation [Organisasi Komputer]

CPT211/CPM313 Programming Language Concepts & Paradigms [Konsep & Paradigma Bahasa Pengaturcaraan]

EEE 348 PENGANTAR REKABENTUK LITAR BERSEPADU

UNIVERSITI SAINS MALAYSIA. CMT324 Computer Graphics & Visual Computing [Grafik Komputer & Perkomputeran Visual]

UNIVERSITI SAINS MALAYSIA. CST331 Principles of Parallel & Distributed Programming [Prinsip Pengaturcaraan Selari & Teragih]

UNIVERSITI SAINS MALAYSIA. CST231/CSM331 Data Communications & Networks [Komunikasi Data & Rangkaian]

UNIVERSITI SAINS MALAYSIA. CPT341 Software Design & Architecture [Reka Bentuk & Seni Bina Perisian]

CPT111/CPM111 Principles of Programming [Prinsip Pengaturcaraan]

MULTIMEDIA COLLEGE JALAN GURNEY KIRI KUALA LUMPUR

PANDUAN PENGGUNA (SUPPLIER) MAINTAIN CERTIFICATES/SUPPLIER DETAILS SUPPLIER RELATIONSHIP MANAGEMENT SUPPLY CHAIN MANAGEMENT SYSTEM (SCMS)

MAT 181 Programming For Scientific Applications [Pengaturcaraan Untuk Penggunaan Sains]

UNIVERSITI SAINS MALAYSIA. CPT103/ CPM211 Struktur Data & Paradigma Pengaturcaraan

PANDUAN PENGGUNA (SUPPLIER) MAINTAIN CERTIFICATES/SUPPLIER DETAILS SUPPLIER RELATIONSHIP MANAGEMENT SUPPLY CHAIN MANAGEMENT SYSTEM (SCMS)

Pengenalan Sistem Maklumat Dalam Pendidikan

PANDUAN PENGGUNA (SUPPLIER) e-purchase ORDER FOR SERVICES

INSTRUCTION: This section consists of FOUR (4) structured questions. Answer ALL questions.

UNIVERSITI SAINS MALAYSIA. CST234 Network Programming [Pengaturcaraan Rangkaian]

EEE 428 SISTEM KOMPUTER

INSTRUCTION: This section consists of FOUR (4) questions. Answer ALL questions. ARAHAN: Bahagian ini mengandungi EMPAT (4) soalan. Jawab SEMUA soalan.

Lab 4 : Sorting Techniques

PANDUAN PENGGUNA (PENTADBIR SYSTEM/SYSTEM ADMINISTRATOR) (INFOTECH, BPPF DAN POLIS

TEKNOLOGI, GADJET & KEIBUBAPAAN

INSTRUCTION: This section consists of TWO (2) structured questions. Answer ALL questions.

INSTRUCTION: This section consists of FOUR (4) structured questions. Answer ALL questions.

MAT 181 Programming for Scientific Applications [Pengaturcaraan untuk Penggunaan Sains]

MICROSOFT EXCEL. Membina Hamparan Elektronik Fungsi Hamparan Elektronik

OPTIMIZE PERCEPTUALITY OF DIGITAL IMAGE FROM ENCRYPTION BASED ON QUADTREE HUSSEIN A. HUSSEIN

ssk 2023 asas komunikasi dan rangkaian TOPIK 4.0 PENGALAMATAN RANGKAIAN Minggu 11

UNIVERSITI SAINS MALAYSIA. CPT111 Principles of Programming [Prinsip Pengaturcaraan]

INSTRUCTION: This section consists of TWO (2) structured questions. Answer ALL questions.

INSTRUCTION: This section consists of TWO (2) structured questions. Answer ALL questions.

PANDUAN PENGGUNA (PENSYARAH)

INSTRUCTION: This section consists of TWO (2)short answers and TWO (2) structured essays. Answer ALL questions.

UNIVERSITI SAINS MALAYSIA. CCS513 Computer Vision and Image Analysis [Penglihatan Komputer dan Analisis Imej]

INSTRUCTION: This section consists of TWO (2) structured questions. Answer ALL questions.

EEE 355 ROBOTIC & AUTOMATION [Robotik & Pengautomatan]

UNIVERSITI SAINS MALAYSIA. CPT103 Struktur Data & Paradigma Pengaturcaraan

UNIVERSITI SAINS MALAYSIA. CST232 Operating Systems [Sistem Pengendalian]

INSTRUCTION: This section consists of TWO (2) short answer and structured essay questions. Answer ALL questions.

EEE348 INTRODUCTION TO INTEGRATED CIRCUIT DESIGN (PENGANTAR REKABENTUK LITAR BERSEPADU)

MANAGE COURSE RESOURCES LABEL TEXT PAGE URL BOOK FILE FOLDER IMS CONTENT PACKAGE

MAT181 Programming For Scientific Applications [Pengaturcaraan Untuk Penggunaan Sains]

EEM 312 ROBOTIK & PENGLIHATAN MESIN

CST432 Microprocessors & Embedded Systems [Mikropemproses & Sistem Terbenam]

Panduan Pengguna Autodesk Education Community

Registration of Supplier (ROS) TM Supplier Registration Renewal via SUS Portal (Pembaharuan Pendaftaran Pembekal TM melalui SUS Portal)

PART A SULIT (EKT 221) BAHAGIAN A. Answer ALL questions. Question 1. a) Briefly explain the concept of Clock Gating.

DOKUMEN TIDAK TERKAWAL

UNIVERSITI SAINS MALAYSIA. CPT101 Prinsip-Prinsip Pengaturcaraan

UNIVERSITI SAINS MALAYSIA. CPT103/CPM211 Struktur Data & Paradigma Pengaturcaraan

UNIVERSITI SAINS MALAYSIA. CCS523 Computer Security & Cryptography [Keselamatan Komputer & Kriptografi]

COMBINING TABLES. Akademi Audit Negara. CAATs ASAS ACL / 1

INSTRUCTION: This section consists of TWO (2) questions. Answer ALL questions. ARAHAN: Bahagian ini mengandungi DUA (2) soalan. Jawab SEMUA soalan.

CREATING USER ID AND PASSWORD : NOTA PENTING NOTA PENTING SEBELUM MEMULAKAN PROSES CREATE USER ID & PASSWORD

Pengguna akan diberikan Username dan Password oleh Administrator untuk login sebagai admin/conference Manager bagi conference yang akan diadakan.

MAT 181 Programming For Scientific Applications [Pengaturcaraan Untuk Penggunaan Sains]

UNIVERSITI SAINS MALAYSIA. CPT101 Prinsip-Prinsip Pengaturcaraan

UNIVERSITI SAINS MALAYSIA. CCS514 - Envisioning Information [Pemelihatan Maklumat]

Panduan Guru Maker UNO/ Arduino

FUZZY NEURAL NETWORKS WITH GENETIC ALGORITHM-BASED LEARNING METHOD M. REZA MASHINCHI UNIVERSITI TEKNOLOGI MALAYSIA

UNIVERSITI SAINS MALAYSIA EEE 355 ROBOT DAN PENGAUTOMATAN

FIRST TIME LOGIN & SELF REGISTRATION USER GUIDE LOG MASUK KALI PERTAMA & PENDAFTARAN SENDIRI PANDUAN PENGGUNA

INSTRUCTION: This section consists of TWO (2) questions. Answer ALL questions. ARAHAN: Bahagian ini mengandungi DUA (2) soalan. Jawab SEMUA soalan.

Registration of Supplier (ROS) TM Supplier Registration Renewal via SUS Portal (Pembaharuan Pendaftaran Pembekal TM melalui SUS Portal)

INSTRUCTION: This section consists of TWO (2) structured questions. Answer ALL questions.

Panduan Menggunakan Autoresponder FreeAutobot.com

UNIVERSITI SAINS MALAYSIA. CST432 Microprocessors & Embedded Systems [Mikropemproses & Sistem Terbenam]

CST234 Network Programming [Pengaturcaraan Rangkaian]

INSTRUCTION: This section consists of TEN (10) structured questions. Answer ALL questions.

Manual Pengguna. PCN Online Service Fulfillment System

INSTRUCTION: This section consists of FOUR (4) structured questions. Answer ALL questions.

UNIVERSITI SAINS MALAYSIA. CIT502 Pengaturcaraan dan Kejuruteraan Perisian Berorientasi Objek

UNIVERSITI SAINS MALAYSIA. CPT201 Reka Bentuk & Analisis Algoritma

UNIVERSITI SAINS MALAYSIA. CST334 Network Monitoring & Security [Pengawasan & Keselamatan Rangkaian]

M2U MANUAL PENGGUNA USER MANUAL M2UNHJ. 0 P a g e BAHAGIAN SIMPANAN DAN PENGELUARAN JABATAN KHIDMAT PENDEPOSIT DAN OPERASI LEMBAGA TABUNG HAJI

Transcription:

UNIVERSITI SAINS MALAYSIA Second Semester Examination 2014/2015 Academic Session June 2015 CCS592 Advanced Algorithms and Complexity [Algoritma Lanjutan & Kekompleksan] Duration : 2 hours [Masa : 2 jam] INSTRUCTIONS TO CANDIDATE: [ARAHAN KEPADA CALON:] Please ensure that this examination paper contains FOUR questions in EIGHT printed pages before you begin the examination. [Sila pastikan bahawa kertas peperiksaan ini mengandungi EMPAT soalan di dalam LAPAN muka surat yang bercetak sebelum anda memulakan peperiksaan ini.] Answer ALL questions. [Jawab SEMUA soalan.] You may answer the questions either in English or in Bahasa Malaysia. [Anda dibenarkan menjawab soalan sama ada dalam bahasa Inggeris atau bahasa Malaysia.] In the event of any discrepancies, the English version shall be used. [Sekiranya terdapat sebarang percanggahan pada soalan peperiksaan, versi bahasa Inggeris hendaklah diguna pakai.]...2/-

- 2-1. (a) You have been assigned into a team to build the next generation Walkman (music player) by Soni. You are asked to implement the processes described below. When powered up, the Walkman will be initialized to an initial state. When a user inserts a tape, music will be played. When the user presses on the pause button when the music is playing, the Walkman will stop playing music. But if the user presses eject while music is playing, the Walkman will eject the tape and go back to the initial state. When the Walkman is paused, user can press the pause button to continue playing music or eject button to eject the tape. Anda telah ditugaskan ke dalam satu pasukan untuk membina Walkman (pemain music) generasi baru oleh Soni. Anda diminta untuk melaksanakan proses yang dinyatakan berikut. Apabila dihidupkan, Walkman akan diawalkan kepada suatu keadaan permulaan. Apabila pengguna memasukkan pita, muzik akan dimainkan. Apabila pengguna menekan butang jeda ketika muzik dimainkan, Walkman akan berhenti memainkan muzik. Tetapi jika pengguna menekan butang memacu semasa muzik sedang bermain, Walkman akan mengeluarkan pita dan kembali kepada keadaan permulaan. Ketika Walkman dijedakan, pengguna boleh tekan butang jeda untuk meneruskan muzik atau menekan butang memacu untuk mengeluarkan pita. Implement the rules explained above for the Walkman using appropriate programming design pattern with Java or other appropriate object oriented programming language. Laksanakan peraturan yang dijelaskan di atas untuk Walkman menggunakan corak reka bentuk pemprograman yang sesuai dengan Java atau bahasa pengaturcaraan berorientasikan objek lain yang sesuai. (40/100) (b) The travelling salesman problem (TSP) asks the following question: Given a list of cities and the distances between each pair of cities, what is the shortest possible route that visits each city exactly once and returns to the origin city? Masalah jurujual kembara (TSP) bertanya soalan berikut: Diberi senarai bandarbandar dan jarak antara setiap pasang bandar, apakah laluan terpendek untuk melawat setiap bandar sekali dan kembali semula ke bandar permulaan? Describe how Graham scan works. Jelaskan bagaimana pengimbas Graham dilaksanakan. Analyze and explain how Graham scan can be used to find a reasonably good solution for the travelling salesman problem. Analisis dan jelaskan bagaimana pengimbas Graham boleh digunakan untuk mendapatkan penyelesaian yang munasabah untuk masalah jurujual kembara. (60/100)...3/-

- 3-2. The Chinese postman problem is also known as the route inspection problem. In this problem, there is a mailman who needs to deliver mail to a certain neighbourhood. The mailman is unwilling to walk far, so he wants to find the shortest route through the neighbourhood that meets the following criteria: Masalah posmen Cina juga dikenali sebagai masalah pemeriksaan laluan. Dalam masalah ini, terdapat seorang posmen yang perlu menghantar surat ke kawasan sekitar. Posmen tidak bersedia untuk berjalan jauh, jadi dia ingin mencari laluan terpendek untuk melalui kawasan sekitar yang memenuhi kriteria berikut: The route is a closed circuit (it ends at the same point it starts). Laluan membentuk suatu litar tertutup (ia berakhir pada titik yang sama ia bermula). Postman needs to go through every street at least once. Posmen perlu melalui setiap jalan sekurang-kurangnya sekali. Chinese postman problem is a NP-Complete problem. Masalah posmen Cina adalah masalah NP-lengkap. (a) Analyze the problem given and explain using an example what is the difficulty in solving this problem. Kaji masalah yang diberikan dan terangkan menggunakan contoh apa kesukaran dalam menyelesaikan masalah ini. (30/100) (b) What is a greedy algorithm? Apakah yang dimaksudkan dengan algoritma tamak? (20/100)...4/-

- 4 - (c) Propose a greedy algorithm that could give a reasonably optimal solution. Explain how the algorithm solve the given problem, then use an appropriate example to simulate the algorithm. Cadangkan algoritma tamak yang boleh memberikan penyelesaian yang cukup optimum. Terangkan bagaimana algoritma tersebut menyelesaikan masalah yang diberi, kemudian gunakan contoh yang sesuai untuk mensimulasikan algoritma yang dicadangkan. (50/100) 3. (a) Based on the graph below, justify whether the graph has the following properties or otherwise. Berdasarkan graf di bawah, jelaskan sama ada graf berkenaan mempunyai sifatsifat berikut atau sebaliknya. 0 1 5 2 4 3 A connected graph. Sebuah graf terkait. A complete graph. Sebuah graf lengkap. (iii) A bipartite graph. Sebuah graf dwipihak. (iv) A planar graph. Sebuah graf sesatah. (v) There is no articulation points. Tidak terdapat titik persendian. (30/100)...5/-

- 5 - (b) For the graph in Question 3(a), the following information (v = node, DFSTreeParent[v] = the parent of v in the depth-first search tree) is given: Bagi graf dalam Soalan 3(a), maklumat (v = nod, DFSTreeParent[v] = bapa v dalam pepohon gelintaran kedalaman dahulu) berikut diberikan: v 0 1 2 3 4 5 DFSTreeParent[v] 2 0 4 5-1 1 Identify the root of the depth-first search tree and sketch the tree obtained from the traversal. Kenal pasti akar pepohon penyusuran gelintaran kedalaman dahulu dan lakar pepohon yang diperoleh daripada penyusuran berkenaan. (20/100) (c) Given below is the pseudo-code for finding a shortest path based on the Dijkstra s algorithm. Diberi di bawah pseudokod untuk mencari sebuah lintasan terpendek berdasarkan algoritma Dijkstra. procedure Dijkstra(G, a, w, T) Dist[0:n-1] is an array initialised to T is initialised to be tree consisting of the single vertex r Dist[r] 0 while Cut(T) ø do select an edge uv ϵ Cut(T) such that Dist[u] + w(uv) is minimised add vertex v and edge uv to T endwhile end Dijkstra Why is this algorithm considered to be a greedy method? Mengapakah algoritma ini dianggap sebagai kaedah tamak? How many times would the while loop be executed for a connected graph using this algorithm? Berapa kalikah gelung while dilakukan untuk graf terkait menggunakan algoritma ini? (iii) The complexity of this algorithm depends on specific implementation details of the algorithm. Why? Kekompleksan algoritma ini bergantung kepada perincian pelaksanaan yang tertentu algoritma berkenaan. Mengapa?...6/-

- 6 - (iv) Trace step by step how the algorithm works on the following graph. Surih langkah demi langkah bagaimana algoritma berkenaan dilaksanakan ke atas graf berikut. 0 3 1 2 3 4 8 6 2 9 4 (50/100) 4. (a) Given the following pseudo-code for the naïve algorithm for string matching: Diberi pseudokod berikut untuk algoritma naïf untuk pemadanan rentetan: function NaiveStringMatcher(P[0:m-1],T[0:n-1]) P[0:m-1] // a pattern string of length m (rentetan pola panjang m) T[0:n-1] // a text string of length n (rentetan teks panjang n) for s 0 to n-m do if T[s: s+m 1] = P then return (s) endif endfor return(-1) end NaiveStringMatcher What will be the possible outputs of this pseudo-code and what exactly is the output for each case? Apakah output-output yang mungkin bagi pseudokod ini dan apakah output yang sebenar bagi setiap kes? Trace the algorithm by giving a proper pattern that will show a worst-case situation when the text is aaaaaaaab. Surih algoritma berkenaan dengan memberi pola yang betul yang akan menunjukkan situasi kes terburuk apabila teks ialah aaaaaaaab. (iii) Show that worst-case complexity of the algorithm is O(mn). Tunjuk bahawa kekompleksan algoritma berkenaan ialah O(mn)....7/-

- 7 - (iv) How do Knuth-Morris-Pratt and Boyer-Moore algorithms improve the complexity of the naïve algorithm? Bagaimanakah algoritma Knuth-Morris-Pratt dan algoritma Boyer-Moore menambah baik kekompleksan algoritma naïf? (50/100) (b) Given below is the pseudo-code for the algorithm FFTRec for evaluating P(1), P(ω),,P(ω n-1 ): Diberi di bawah ialah pseudokod untuk algoritma FFTRec untuk menilai P(1), P(ω),,P(ω n-1 ): procedure FFTRec (a[0:n-1],n, ω, b[0:n-1]) recursive if n =1 then b[0] a[0] else for j 0 to n/2-1 do Even[j] a[2*j] Odd[j] a[2*j+1] endfor FFTRec(Even[0:n/2-1], n/2, ω 2, e[0:n/2-1] FFTRec(Odd[0:n/2-1], n/2, ω 2, d[0:n/2-1] for j 0 to n/2-1 do b[j] e[j] + ω i * d[j] b[j + n/2] e[j] + ω i * d[j] endfor endif end FFTRec Define all the parameters of the above procedure. Takrifkan semua parameter bagi tatacara di atas. Which part of the above procedure is the part where divide-and-conquer strategy is applied? Bahagian manakah dalam tatacara di atas merupakan tempat strategi bahagi dan tawan diterapkan? (iii) Without going into mathematical detail of the above algorithm, describe how the divide-and-conquer strategy is used to reduce its complexity. Tanpa perincian matematik bagi algoritma di atas, huraikan bagaimana strategi bahagi dan tawan digunakan untuk mengurangkan kekompleksannya. (30/100)...8/-

- 8 - (c) Give with justification two (2) examples of graph algorithm that belong to the class of NP-Complete problems and two (2) examples of graph algorithm that do not belong to this class. Beri dengan penjelasan dua (2) contoh algoritma graf yang tergolong dalam kelas masalah NP-Lengkap dan dua (2) contoh algoritma graf yang tidak tergolong dalam kelas berkenaan. (20/100) - ooooooo -