System
Evaluation
To evaluate the performance of the implemented system, some
simple experiments were conducted to see if the agents are able to track the
user's preference. The computer used in this experiment is a Pentium 4 operating
under the Windows ME environment with JDK1.3.0. The system connects to the
Internet via a 56.6 kbps modem.
Product
Recommendation
In this experiment, a group of 20 product-brokering agents
are instructed to search for CPU on the Internet. Assume that the user aims to
get the most powerful CPU and does not care about the price. After instructing the
agents to search for the product, the system is allowed to run on its own for
about 10 minutes so that the agents can retrieve sufficient products before the
user gives feedback. After 10 minutes, the user clicks on the result button, and the recommended list is as shown in Figure 6.
From the recommended list, the user selects the current best
product at row 13, which happens to be a Pentium 4, 1.8 GHz, as shown in Figure 7.
While the feedback is being made, the system continues to search
for products in the background. After making a few similar selections, the
agents evolved and reevaluated their list. The new recommended list is now as
shown in Figure 8. The list now only
shows the best CPU retrieved by all the agents.
When the user is satisfied with what the system learned, the user
allows the system to continue searching the Internet for new products on its
own. After some time has passed, the agents found an even better-performing CPU, and this is reflected in the agent's recommended list,
as shown in Figure 9.
Tracking User
Preferences
In this experiment, the objective is to test if the system
is able to detect a change in the user's preference and how fast the system will
be able to respond to a change. This could be observed by looking at the average
fitness of all the agents in the system. The average fitness of all the agents
should remain high if the system is able to track and respond to the change
effectively.
An initial population of 20 agents is created, and the
response of the system is observed by changing the number of agents to evolve in
the population.
Gradual Changes
in User Preferences
In the beginning, the user starts by selecting the best CPU available. After a few selections, the user will
gradually choose cheaper CPUs. The experiment stops after all agents begin to recommend the
cheapest CPU available. The average fitness of the agents, when the user
gradually changes his preferences, is shown in Figure 10.
The results obtained from this experiment showed that the
system is capable of tracking gradual changes in the user's preferences.
Although some "dips" are observed during the experiment, the average fitness of
the agents in the system remains high while the user changes his or her
selection. These dips could happen because some of the agents might not have the
products that the user selected in their databases. Therefore, these agents do
not receive any points and could significantly "pull down" the average
fitness.
M-Commerce
Applications
The proposed design of a product-brokering agent was
implemented, using Java on a desktop computer. However, mobile devices such as
phones and PDAs tend to have smaller screens, slower processors, and limited
memory. Hence, this will pose some serious constraints when we want to transfer
the software into these mobile devices. There is also a serious lack of
standardization, as these mobile devices use different OS platforms, which makes
it difficult for the developer to create a single program that can run on all
devices.
After taking these issues into consideration, a possible
solution is to use software that is compatible across multiple operating
platforms. A good candidate is Java, which has been used to implement the system
as mentioned in this chapter. However, the disadvantage of Java as compared to
other programming languages, such as C, is its less efficient and slower program
execution. Faster processors and more memory are needed to compensate for this.
This results in higher cost, and, for wireless applications, shorter battery
life. However, this disadvantage has been slowly reduced by the introduction of
more efficient JIT (just-in-time) compilers. Recently, the developers of Java
also introduced some highly optimized and micro versions of the Java software to
cater especially to small devices, such as cellular phones and PDAs.
Application of
Product-Brokering Agent in M-Commerce
A PDA is an ideal device for m-commerce applications. It
tends to have a larger screen and a more powerful processor as compared to a
cellular phone but is less bulky than a laptop. Making an existing application
viewable in any wireless device, a process known as transcoding, is among one of
the biggest challenges of m-commerce. In order to fit the screen of the PDA, the
GUI implemented in this chapter will have to be scaled down to the appropriate
size. A possible solution to fit all these into the PDA screen is to use
scrollbars that allow the user to scroll the GUI. A possible screenshot of a PDA
with the GUI is as shown in Figure
11.
The PDA selected for our application is the Compaq iPAQ Pocket PC
H3870. It has one of the largest viewable screens on the market and also has an
integrated Bluetooth for wireless links to Bluetooth-enabled cellular phones.
This device also supports the Java Virtual Machine, which will allow our
software to be integrated easily into the PDA. The specifications of the PDA are
as shown in Table 1.
Table 1: Specifications for Compaq's iPAQ Pocket
PC H3870
|
Operating System |
Microsoft Pocket PC 2002 |
|
Processor |
206 MHz Intel StrongARM 32-bit RISC Processor |
|
Display Type |
Color reflective thin film transistor (TFT) LCD, 64K
colors |
|
Resolution/Viewable Image Size |
240 x 320/2.26 x 3.02 inches |
|
Pixel Pitch |
0.24 mm |
|
RAM |
64MB |
|
ROM |
32MB |
|
Input Method |
Handwriting recognition, soft keyboard, voice record,
inking |
|
Wireless Connectivity |
Bluetooth™, Infrared port (115
Kbps) |
|
Dimensions |
5.3" x 3.3" x .62" |
|
Weight |
6.7 oz. including
battery |