Etmen tabanlı otomatik müzayede ortamının tasarım ve gerçeklenmesi
Design and implementation of an agent based automated auction environment
Yazar: UĞUR GÜLERYÜZ
Danışman: PROF. DR. TAKUHİ NADİA ERDOĞAN
İstanbul Teknik Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı / Bilgisayar Mühendisliği Bilim Dalı
Derece: Yüksek Lisans, 2020
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin: Bilgisayar yazılım dilleri = Computer software languages ; Bilgisayar yazılımları = Computer softwares ; Dağıtık bilgisayar sistemi = Distributed computer system ; Uygulama yazılımı = Application software

Özet:
Teknolojinin gelişmesi ile beraber internetin yaygınlaşmasından önce reel olarak yapılan pek çok işlem sanal ortama taşınmış ve daha az efor harcayarak yapılabilir hale gelmiştir. Günümüzde alışverişler büyük oranda online olarak yapılmaya başlanmıştır, satıcılar ürünlerini farklı yöntemler kullanarak satabilmektedir. Müzayedeler ürün satışı yapmak için kullanılan yaygın yöntemlerden birisidir ve günümüzde pek çok ürün farklı müzayede yöntemleri ile internet üzerinden satılabilmektedir.
Farklı müzayede yöntemleri ile ürün satışı yapılırken hem alıcı hem de satıcı tarafının müzayedenin her aşamasını dikkatle takip etmesi ve ürünü satın alma isteği ve bütçesine göre doğru stratejilerle hareket etmesi son derece önemlidir. Fakat müzayedeyi takip etmek için yeterli zamanı olmayan veya aynı anda birden fazla müzayedeye alıcı veya satıcı olarak katılmış katılımcılar için müzayedeyi takip etme işlemi oldukça zor hale gelmektedir. Bu sebeple kullanıcının önceden belirlediği parametrelerle hem alıcı hem de satıcı tarafında müzayede takibini kullanıcı yerine otomatik yapacak bir sisteme ihtiyaç duyulmaktadır.
Bu çalışmada kullanıcıların farklı tip müzayede yöntemleri kullanarak ürün alma ve ürün satma işlemlerini isterse manual isterse önceden gireceği parametre ve stratejilere göre otomatik olarak yapabileceği bir ortam tasarlanmış ve gerçeklenmiştir. Bu ortam tamamen etmen tabanlı olarak gerçeklenmiş ve uygulamanın ana bileşenleri etmenlerle ifade edilmiştir. Server, arayüz, teklif, müzayede olmak üzere dört tip etmen bulunmakta ve her etmen kendi temsil ettiği bileşenle alakalı işleri gerçekleştirmektedir. Farklı etmen tipleri kendi aralarında haberleşerek sistemin ana akışını oluşturmaktadır. Sistem İngiliz ve Hollandalı tipi müzayedeleri desteklemektedir ve her müzayede tipi için alıcı ve satıcı tarafına farklı stratejiler sunmaktadır. Hollandalı tipi müzayedede ücret değişimlerini yapan satıcı tarafına farklı ücret düşürme stratejileri sunmaktadır. Alıcı tarafına ise otomatik olarak müzayedeyi takip ederek istediği ücrete düştüğünde ürünü satın alma seçeneği sunmaktadır. İngiliz tipi müzayedede ise satıcı tarafına istediği ücrete ulaştığında otomatik olarak ürünü satma seçeneği sunmadktadır. Alıcı tarafına ise ister otomatik olarak belirlediği stratejide periyodik olarak teklifler verme ister belirlediği zamanda belirlediği miktarda teklif yapma seçeneği sunmaktadır.
Yapılan deneylerde sistemin sunduğu seçeneklerle iki tip müzayede tipi içinde kullanıcının isteklerini karşıladığı, alıcıların ve satıcıların bütçeleri, ürünü alma veya satma isteklerine göre belirlediği stratejiler ve girdiği parametrelerle müzayedelere katılım sağlayabildiği gözlemlenmiştir. Sunulan stratejiler karşılaştırılmış olup farklı durumlarda farklı stratejilerin öne çıktığı ve müzayedenin sonucuna büyük oranda etki ettiği gözlemlenmiştir.

Abstract:
With the development of technology, computer technologies are being used in all areas of life and provide convenience in many areas. Software technologies, in particular, are a solution to many problems or provide faster implementation of existing solutions. Now, people can handle many transactions online, without leaving their home. In addition, many workloads made by people in the past have started to be done automatically without the need for any control. Many transactions that were carried out in real word before the Internet became widespread were moved to the online world and became less feasible. Nowadays, shopping has started to be done mostly online, sellers can sell their products using different methods. Auctions are one of the common methods used to sell products, and today many products can be sold over the internet using different auction methods.
While buying and selling through auction methods, sellers aim to sell the product at the maximum price they can sell, while buyers aim to buy the product with the minimum amount they can buy. In addition, it is critical for both parties to sell the product in the optimum time possible. While the sale of any product, many buyers compete with each other and the seller checks the auction by examining each buyer's offers while selling. The fact that the buyers increase the price with the right strategy in line with their budgets makes them the winners of the auction. In addition, in the auction methods made by the seller, the price change made by the seller with the right strategy enables the product to sell at the price it wants. For this reason, both buyers and sellers must follow the auction properly during the auction. When selling products with different auction methods, it is extremely important that both the buyer and seller side carefully follow each stage of the auction and act with the right strategies according to the desire and budget of the product. However, for participants who do not have enough time to follow the auction, or who have participated in more than one auction at the same time, it becomes difficult to follow the auction. For this reason, there is a need for a system that will automatically track auctions on both the buyer and the seller side with the parameters set by the user.
In this study, an execution environment is designed and implemented in which users can purchases and sell products using different types of auction methods manually or automatically according to the parameters and strategies they have chosen. The environment has an entirely agent-based design where the main components of the environment are represented by agents. There are four types of agents: server, gui, bidder, and auctioneer. Different types of agents communicate among each other and constitute the main architecture of the system. The system supports English and Dutch auctions and offers different strategies to the buyer and seller side for each auction type. In the Dutch type auction, it offers different price reduction strategies to the seller side, which makes the price changes automatically and offers the buyer side the option to purchase the product when it falls to the desired price by following the auction. In the English Auction, it offers the seller the option of automatically selling the product when it reaches the desired price. It offers the buyer side the opportunity to make periodic offers using the different strategies. In addition, buyer side can make single bid at the specified time automatically.
The architecture developed within the scope of the Jade Based Automatic Auction Environment consists of various agents, each agent in the system fulfills the task assigned to it. During the running of the program, according to the input of the users, new agents occur instantly and are connected to the system.
Server agent provides connection to the database during operations such as adding new users, user logins, adding new auctions, and users are connected to the server agent during login. The server agent starts each auction agent created by users. It provides connection with the database and provides the desired information from the database.
A new auction agent is created for each auction and when the auction ends, the agent is also terminated. Users who want to participate in the auction can participate in the auction by applying to the auction agent. It is responsible for accepting and examining bids and announcing the auction winner. With the end of the auction, the auction agent ends.
Gui agent is responsible for o each user's gui and gui operations. According to the user commands, gui agent is responsible for interfacing with every operation that occurs on the gui. It performs works such as updating the information of the auctions and delivering them to the user through the table, and displaying the messages sent by the auction agent on the gui screen.
One bidder agent for each user works. The bidder agent is responsible for the operations such as joining the auction by applying to the auction agent, making offers until the end of the auction with the strategy determined automatically.
When the implemented environment starts working, it consists of server and database. As the new user logs in, the gui and bidder agents of each user are dynamically connected to the system. In this way, each user is represented by its own agents. When the users create an auction, the auction agent representing that auction is added to the system for each auction and performs the operations related to that auction. In this way, the main structure works dynamically. Thanks to its simple interface, the system allows them to perform all auctions without tiring the user. While the system was being designed, the server agent was designed to run on the server machine, and the bidder and gui agents for each user would run on the user machines.
In the experiments, it was observed that the system meets the requests of the users within two types of auctions with the options offered by the system, and it can participate in auctions with the strategies and parameters chosen by buyers and sellers according to their budgets, their desire to buy or sell the product. The presented strategies have been compared and it has been observed that different strategies come to the fore in different situations and have a large impact on the outcome of the auction.
In this study, a agent-based environment has been implemented in which users can automatically sell their products with the parameters of the English and Dutch type auction methods only with the parameters they enter. The application was implemented in Java programming language and Jade library was used. Many options and strategies have been presented and a flexible structure has been created in order to enable users to direct their auctions as they wish, without the hassle of both the buyer and the seller. While designing the system, the system components were represented by agents and four different types of factors were created: server, auction, offer, and interface. Each factor constitutes the main system by performing its own specialized task and communicating with each other via messaging. As a result of the experiments, it was observed that the system successfully performed the purchase and sale transactions according to the user preferences, and the auction could be completed in different ways according to the parameters and strategies entered. A distributed and scalable architecture was created using agent-based programming. By adding the necessary behaviors to the agents in the system, the system was enabled to operate without user intervention. As future studies, the number of server agents in the system can be increased because being the only one server agent in the system is seen as the bottleneck of the system. According to the needs of the system that accepts a limited number of users and auctions, many server agents can be created, and the server agents can be communicated among themselves to form the main system. Apart from this, different auctions or product selling methods can be added to the system and users can be offered different options. Finally, new strategies can be added to the strategies used during price increase and decrease.