Skip to main content

Algoritma Hidup (Algorithm of Life)

Deadline tubes pertama IB (Intelegensia Buatan) sudah lama lewat. Yang berlalu biarlah berlalu, kata pepatah yang saya sendiri tidak tahu dari mana asal-muasalnya. Mengapa tubes IB ini begitu berkesan setelah deadline lewat? Karena bagi saya, inilah tubes yang paling mencengkeram yang pernah saya hadapi selama paruh pertama semester ini – meskipun selanjutnya, sudah terbukti, lebih banyak tugas, dan lebih menambah tekanan tentunya. Namun itu semua merupakan tantangan yang menyenangkan sekaligus mencerdaskan.

Pertanyaan berikutnya: mengapa menulis artikel ini? Berkeluh kesah? Jelas tidak, jika mengeluhkan tugas tersebut. Tugasnya adalah membuat permainan berbasis turn-based strategy, dengan modul utama/platform yang diimplementasikan oleh perwakilan dari seluruh peserta kuliah, dan pemain-pemainnya yang merupakan bot/agent (komputer) rancangan tiap-tiap kelompok. Bot/agent bekerja dengan berbagai algoritma pencarian: BFS, DFS, UCS, Greedy, A*, dan CSP. Secara lojik, algoritma pencarian memanfaatkan struktur pohon, terdiri dari simpul dan sisi, yang simpul-simpulnya ditelusuri menurut algoritma pencariannya. Tugas ini sebenarnya cukup mengasyikkan, hanya saja sangat menyita waktu, tenaga, dan pikiran (yang ini berlebihan). Akibatnya, setiap mendengarkan dan melihat sesuatu, langsung terkait-kait dengan tubes ini, termasuk ketika sedang mendengarkan kuliah lain (termasuk kuliah bukan informatika), juga ketika sedang melamun. Dari lamunan saya berkaitan dengan peristiwa-peristiwa masa lalu dan hasil mengait-ngaitkan dengan algoritma pencarian, saya pun mendapatkan pemikiran yang saya ingin ceritakan dalam tulisan ini.

Sekilas mengenai Algoritma Pencarian Solusi

Ada dua algoritma dasar dalam pencarian solusi: Breadth First Search (BFS) dan Depth First Search (DFS). Algoritma-algoritma lain merupakan pengembangan dari kedua algoritma ini. Kedua algoritma ini memiliki persamaan dalam hal pohon ruang status yang digunakan untuk melakukan pencarian solusi. Masing-masing simpul ditelusuri; ketika penelusuran tiba pada suatu simpul, simpul tersebut diperluas dengan pembangkitan simpul-simpul baru. Pembangkitan simpul dilakukan secara berulang hingga tiba di simpul solusi. Inilah perbedaannya: pada algoritma BFS, urutan penelusuran simpul mengikuti urutan pembangkitannya, simpul yang dibangkitkan lebih dahulu ditelusuri lebih dahulu juga, sementara pada algoritma DFS, setelah memperluas simpul dan membangkitkan simpul-simpul turunannya, salah satu simpul turunan tersebut langsung ditelusuri. Sebagai ilustrasi, simpul 1 diperluas menghasilkan simpul 2, 3, dan 4. Pada algoritma BFS, simpul 2 diperluas membentuk simpul 5 dan 6, kemudian simpul 3 diperluas membentuk simpul 7 dan 8, dan simpul 4 diperluas membentuk simpul 9 dan 10. Sementara itu, pada algoritma DFS, setelah simpul 2, 3, dan 4 dibangkitkan, simpul 2 diperluas membentuk simpul 5 dan 6, kemudian alih-alih simpul 3 diperluas, simpul 5 terlebih dahulu diperluas.

Kaitan dengan Kehidupan Nyata

Dalam hidup, banyak momen pengambilan keputusan, baik dalam hal yang kecil maupun besar. Keputusan terkait dengan pilihan-pilihan, dengan memilih yang satu berarti juga mengorbankan yang lain. Ini dapat dibandingkan dengan simpul pada pohon pencarian; dari suatu simpul dapat dibangkitkan simpul-simpul turunan yang terhubung dengan simpul tersebut. Simpul yang ditelusuri melambangkan persimpangan (saat kita dihadapkan pada pilihan), sementara itu simpul-simpul yang dibangkitkan merupakan pilihan-pilihannya. Jika menetapkan pilihan (memilih satu simpul), berarti kita sudah meninggalkan kemungkinan untuk memilih simpul-simpul lainnya yang dibangkitkan bersamaan dengan simpul tersebut. Ketika menetapkan pilihan (memilih simpul), kita juga akan menghadapi konsekuensi dari pilihan yang ditetapkan tersebut. Simpul-simpul baru (pilihan-pilihan baru) yang dibangkitkan dari simpul yang telah kita pilih tersebut dipengaruhi konsekuensi pilihan kita sebelumnya. Proses tersebut terjadi secara berulang; setiap memilih simpul, pada posisi mana pun dalam pohon, kita tidak dapat lagi kembali dan memilih simpul lainnya, sehingga karakteristiknya mirip algoritma DFS.

Kita sering menyesali apa yang sudah terjadi di masa lalu. Misalnya saja, ketika saya tidak belajar dengan baik selama satu semester dan kemudian mendapatkan hasil yang kurang memuaskan ketika UAS, saya akan mengatakan, "Coba dulu saya belajar sungguh-sungguh, pasti bisa A."

Pada algoritma pencarian dengan DFS, memang dimungkinkan melakukan runut balik (backtrack) manakala simpul tidak mengarah ke solusi dan tidak dapat diperluas lagi. Akan tetapi, dalam kehidupan nyata, hal tersebut tidak dimungkinkan. Suka ataupun tidak, hal tersebut sudah terjadi, tidak dapat melakukan runut balik dalam kehidupan nyata. Untungnya, selama kita masih hidup, semua simpul dalam pohon pencarian kita masih dapat diperluas, sehingga masih ada kesempatan untuk mengubah kebiasaan dan menjadi lebih baik.

Persoalan berikutnya adalah bagaimana menetapkan simpul yang dipilih untuk diperluas. Dalam strategi algoritma, dapat digunakan perhitungan ongkos dari simpul yang sudah dilalui dan/atau fungsi heuristik tertentu untuk memperkirakan simpul mana yang akan memberikan solusi optimum. Dalam kehidupan nyata, ongkos jelas tidak dapat digunakan karena kita tidak dapat kembali ke masa lalu dengan runut balik. Kita hanya dapat meperkirakan dampak dari pilihan yang kita ambil (seperti halnya memperhitungkan heuristik dari simpul yang dibangkitkan). Fungsi heuristik yang kita tetapkan dalam kehidupan ini tidak sesederhana dalam program, ada berbagai aspek yang memengaruhi pengambilan keputusan kita. Ini bergantung pada prinsip dan nilai-nilai yang dianut oleh orang tersebut.

Apakah algoritma yang ditetapkan dapat selalu menghasilkan solusi optimum? Ya, dengan fungsi heuristik yang baik namun hanya pada persoalan tertentu. Mendapatkan solusi optimum menjadi lebih mudah jika lingkungan bersifat statis – dalam konteks artificial intelligence (AI), agent mempunyai tugas tertentu, berinteraksi dengan lingkungannya dengan menerima percept dari lingkungan dan melakukan aksi yang berpengaruh terhadap lingkungan, sehingga ada timbal balik antara agent dengan lingkungannya. Sementara itu, kehidupan ini merupakan lingkungan dinamis, sehingga tidak ada yang pasti di masa mendatang.

Tidak semua keadaan lingkungan dapat ditangkap oleh percept. Agent dikatakan rasional jika melakukan tindakan yang sesuai dengan percept yang ditangkapnya. Begitu pula manusia. Kita hanya dapat berpikir dan bertindak jika diberikan percept tertentu. Hanya dari yang kita dengar, kita lihat, dan kita rasakan yang dapat kita ketahui. Kita pun berpikir dan bertindak hanya berdasarkan fakta-fakta yang ada dan dipahami. Untungnya, kita manusia lebih dari sekadar agent AI; kita makhluk yang dinamis, sehingga kita dapat semakin baik dalam mengenali percept, menetapkan perhitungan pada setiap pengambilan keputusan, dan menambah pengetahuan dan pemahaman dengan pembelajaran sepanjang hidup (life-long learning).

Note ini merupakan repost dari Facebook note milik penulis, dengan perubahan secukupnya.

Comments

Popular posts from this blog

Uji coba cross-post

Yth. Pembaca, Terhitung hari Jumat, 5 Desember 2008 malam, saya membuka blog baru di Blogspot . Sementara blog Multiply ini tidak akan ditinggalkan, saya akan melakukan posting silang ( cross-post ) setiap menuliskan blog ini jika dimungkinkan oleh penyedia layanan blog.

Turkish Summer Vacation [Part 7-End]: The Memorable (Yet Troubled) End of Journey

This is the last part of the "Turkish Summer Vacation" series I posted beginning from this August, covering the final closing of the vacation after the last day of the tour. Friday, 6 July 2012 (Evening) After our last dinner, we boarded our bus which would bring us to Atatürk International Airport. However, we got a surprise here. Before boarding the bus, I saw the owner of the restaurant where we had last dinner talking with several youths of our groups on the façade of the restaurant, in Indonesian language! It turned out that he was a volunteer stationed in Indonesia for several years and had been in several cities in Indonesia. No wonder he spoke fluent Indonesian. And the surprise was that that man joined us on board, without anyone knowing before Ümit introduced him to the rest of us. His name was Murat. Ümit let Murat took over him to speak in front of all of us. Here, Murat introduced himself and his background, in Indonesian, definitely. It turned out t

Turkey Summer Vacation [Part 5]: Exploring Cappadocia, the Carved Civilization

The main reason for tourists to visit Cappadocia is the seemingly well-formed rock formations in the region. Some unique features of the rock formations are naturally created, but to add to its uniqueness, people also carved dwellings on the rock formations, giving historical aspect to the place. These dwellings are called cave houses, which still exist until now and even turned into cave hotels and cave restaurants. But for the housing purpose, (Turkish) government seems to have encouraged dwellers to move to more modern houses in the town areas of Nevşehir, the province where most of our point of interests to visit are located. On Wednesday, 4 July 2012, we woke up at 4 a.m. to catch the hot-air balloon flight tour, which always start early in the morning. We were picked up by the balloon flight operator company van at our hotel, not by our usual tour bus. As said before, this flight tour was optional so not everyone of the group joined the hot-air balloon. It costed 200 US do