This is normal text



FLIGHT RESERVATION USING RECOMMENDATION SYSTEM

BY

PRASAD KEMBURU

B.TECH., JAWAHARLAL NEHRU TECHNOLOGICAL UNIVERSITY, 2003

HYDERABAD, INDIA

A REPORT

Submitted in partial fulfillment of the requirements for the degree

MASTER OF SCIENCE

Department of Computing and Information Sciences

College of Engineering

KANSAS STATE UNIVERSITY

Manhattan, Kansas

2007

Approved by:

Major Professor

Dr. Daniel Andresen

ABSTRACT

With the advancement in technology in the filed of e-commerce, the problem with information overload has been at its peak. Thus there should be some cognitive solution to the problem at hand. The first and foremost solution to this problem would be a ‘recommender system’, which is information filtering technique aimed at presenting the user with the most viable options based on certain reference characteristics. These characteristics are learnt from either explicit or implicit feedback provided by the user. But, past experiences show that that only a few numbers of users provide explicit feedback. The current ‘Flight Reservation using recommendation system’ uses implicit feedback to overcome the problem.

Flight reservation systems have been implemented for years, basically from manual to computerized reservation system. The demand for fast and secure online Flight reservation systems has been increasing day by day. The effective use of the latest technology is the backbone for the design of a good system. The main objective of the project is to provide the user with desired selection options, real-time information and recommend the user of an itinerary that best fits his preferences, based on his previous purchases. The preferences are stored as a case base for future personalized recommendations.

TABLE OF CONTENTS

LIST OF FIGURES 3

LIST OF TABLES 5

ACKNOWLEDGEMENTS 6

1. INTRODUCTION 7

1.1 THE FLIGHT RECOMMENDATION CLIENT 7

1.2 IMPLICIT FEEDBACK AND FEATURE WEIGHTING 8

1.2.1 IMPLICIT FEEDBACK 8

1.2.2 FEATURE WEIGHTING 8

1.3 FEATURES OF THE SYSTEM 9

1.4 INTENDED AUDIENCE 9

1.5 OVERALL STRUCTURE 9

2. RELATED WORK 10

2.1 OTHER APPROACHES 10

2.2 COMPARISON WITH EXISTING METHODS 10

3. FLIGHT RECOMMENDATION ALGORITHM 12

4. IMPLEMENTATION 15

4.1 SYSTEM ARCHITECTURE 15

4.2 TECNOLOGIES USED 15

4.2.1 Microsoft Visual 17

4.2.2 17

4.2.3 SQL Server 2000 18

4.2.4 JavaScript 18

4.2.5 Microsoft Visio 18

4.2.6 Visual Paradigm 6.0 for UML 19

4.3 DATABASE SCHEMA 19

4.4 MODULES 27

4.5 FLOW CONTROL 29

4.5.1 User Flow Control 29

4.6 DESIGN 31

4.6.1 USE CASE DIAGRAMS 31

4.6.2 ACTIVITY DIAGRAMS 31

4.6.3 CLASS DIAGRAM 33

4.6.4 SEQUENCE DIAGRAM 34

4.7 SCREEN SHOTS 37

5. TESTING 41

5.1 ANTS LOAD 41

5.1.1 Testing using ANTS Load 41

5.1.2 ANAYLSIS 41

5.1.3 RESULTS 46

5.2 Unit Testing 46

5.2.1 Unit Testing Using Unite .NET 47

5.2.2 ANALYSIS OF RESULTS 49

6. FUTURE WORK 50

6.1 EXTENSIONS 50

7. CONCLUSION 51

References And/Or Bibliography 52

LIST OF FIGURES

Figure 4.1 – system architecture 15

Figure 4.2: tblUserType 19

Figure 4.3: tblUser 19

Figure 4.4: tblAirways 20

Figure 4.5: tblAirport 20

Figure 4.6: tblFlightCodes 20

Figure 4.7: tblduration 21

Figure 4.8: tblitinerary 21

Figure 4.9: tblFlightDetails 22

Figure 4.10: tblTempPrefData 22

Figure 4.11: tblPreferences 23

Figure 4.12: tblToTempResults 24

Figure 4.13: tblFroTempResults 24

Figure 4.14 – DATABASE SCHEMA 26

Figure 4.15 – User flow control 30

Figure 4.16 – User side Use Case Diagram 31

Figure 4.17 – Activity Diagram (Search for flight) 32

Figure 4.18 – Activity Diagram (View Purchases) 33

Figure 4.19 – Class Diagram 33

Figure 4.20 – User Sequence Diagram 34

Figure 4.21 – User Sequence Diagram 2 35

Figure 4.22 – User Sequence Diagram 3 36

Figure 4.23 – Search Page 37

Figure 4.24 – Results Page 38

Figure 4.25 – Login Page 39

Figure 4.26 – Confirm Page 40

Figure 5.1 – Results 42

Figure 5.2 – Time to Connect 43

Figure 5.3 – Time to get First Byte 44

Figure 5.4 – Time to get Last Byte 45

Figure 5.5 – Bytes Received 46

F

LIST OF TABLES

Table 5.1 – TEST REULTS 47

Table 5.2– TEST CASE RESULTS 48

ACKNOWLEDGEMENTS

I would like to thank my major professor, Dr. Daniel Andresen, for his valuable guidance and encouragement throughout this project.

I would also like to thank Dr. Scott Deloach and Dr. Neilsen for serving on my committee and for their valuable suggestions.

I would like to give my word of thanks to Mrs. Doina for her generous support and invaluable guidance with my project.

Finally, I would like to thank my family for their love and support. I’m grateful to them for the confidence they had in me that I would prosper in my education in the US.

1. INTRODUCTION

The problem of information overload occurs when the user is provided with too many options to choose from, most of which may not be what the user is looking for. Hence an effective system would capture the user preferences from his previous purchase history and use the same in recommending one on his next visit.

The user preferences are stored every time he makes a purchase. Explicit feedback from the user could be one way of collecting these preferences. But, explicit feedback often times may not be as effective, as it may result in boring the user and hence increasing the user’s frustration level. But one way of working around this problem would be to collect implicit feedback from the user by mining for information from the data stored in the user profile.

The aim of this project is to use the .net framework in effectively creating an online flight reservation system that provides the user with a friendly interface and is fast and secure. The key aspect of the system being the ability to recommend the user, the itineraries that best fit his selection, based on his purchase history. The system takes in the user input and generates a list of itineraries that the user is free to select from depending on his personal preference. The input essentially contains the source, destination, and date of departure of journey. The inputs required are strongly imposed by validating the required fields, which ensures the user selections are correct and prompt. A sorted list of recommended results is then displayed dynamically by searching the database for the entries that meet the input criterion. The system is developed using with and SQL SERVER 2000.

1.1 THE FLIGHT RECOMMENDATION CLIENT

The Flight recommendation client (FRC) is a recommender system that searches for multiple airlines concurrently for flights on behalf of the user. It has a good web interface the enables the user to search for flights. The FRC takes in the user input and generates a set of itineraries that meet the input criterion. The result set usually consists of a significant amount of flights. The user might get overwhelmed by the large number of choices. Hence a recommender system is incorporated the sorts out the results set based on the user’s purchase history. To make accurate recommendations, the FRC should be able to learn the user preferences. So, the system stores information about the user preferences, every time a purchases is made. It uses the stored preferences as the sort criterion in the recommendation process. The FRC uses the feature weighting technique.

1.2 IMPLICIT FEEDBACK AND FEATURE WEIGHTING

1.2.1 IMPLICIT FEEDBACK

If the FRC is to make successful flight recommendations to a user, it must have a grasp of that user's travel preferences. One of the problems with e-commerce in general is that users tend to get bored or frustrated easily, therefore a successful recommender should be able to learn preferences while minimizing the cognitive load placed on the user. Thus implicit feedback is associated with gathering the feedback from the user, without the user having to provide any explicit feedback. Explicitly gathered feedback is associated with a high level of cognitive load and. Examples of this method would be asking the user to assign weights or rank features in the order of importance, which the user wouldn’t be really interested in doing. The FRC uses implicit feedback from users to generate the data that capture their preferences.

1.2.2 FEATURE WEIGHTING

This method is associated with assigning weights to the features of a system. Thus, describing the item to be recommended. The more the weight, the better the chances of the item being recommended. In the FRC, the features are the user preferences. In explicit feedback, the user would be assigning the weights to the features, thus specifying his preferences. But, in implicit feedback, the weights are collected depending on the user purchase history.

1.3 FEATURES OF THE SYSTEM

The system is developed using using and SQL Server 2000 as back end. The FRC makes personal recommendations to users based on their purchase history. The key features of the FRC include:

a) It makes personalized recommendation to each user

b) It collects implicit feedback from the user as opposed to explicit feedback which is associated with a high cost of cognitive load placed on the user

c) Provides the user with the ability to sort the results based on his temporary preferences.

1.4 INTENDED AUDIENCE

The FRC system aims at reducing the cognitive load on the user by making recommendations based on implicit feedback. The recommendation process is not simply specific to the flight reservation domain. It could be used in any domain that involves making recommendations to users based on implicit feedback.

1.5 OVERALL STRUCTURE

1. The rest of the paper deals with the other approaches for developing this project.

2. The implementation section describes the system architecture, the database schema, the technologies used, flow control, Design of the project described using the UML diagrams, and the screen shots.

3. The Testing section describes the testing tools used to test the performance of the application and a detailed review of the results.

4. The Future work section discusses the advantages and shortcomings of the current recommendation strategy. It also some further techniques that could be investigated.

5. Finally, the Conclusion section concludes the report.

2. RELATED WORK

2.1 OTHER APPROACHES

Many different recommender systems have been developed to solve the problem of information overload. We will discuss a few approaches in the next paragraph. There are four main issues to characterize the design space for recommendation system. The issues include preferences, roles and communications, algorithms and human-computer interaction. Recommendation systems can be characterized by the above four issues.

A vast number of recommendation systems are being implemented using collaborative filtering. The method of collaborative filtering could be based on implicit or explicit feedback. But explicit feedback has its own disadvantages. In case of implicit feedback, Collaborative filtering is the method of making automatic predictions (filtering) about the interests of a user by collecting reference information from many users (collaborating). The underlying assumption of collaborative filtering approach is that those who agreed in the past tend to agree again in the future.

Content-based systems use only the preferences of the seeker; they attempt to recommend items that are similar to items the user liked in the past. Their focus is on algorithms for learning user preferences and filtering a stream of new items for those that most closely match user preferences.

Recommendation support systems do not automate the recommendation process; thus, they do not have to represent preferences or compute recommendations. Instead, they serve as tools to support people in sharing recommendations, helping both those who produce recommendations and those who look for recommendation.

`

2.2 COMPARISON WITH EXISTING METHODS

The current approach is a content based recommendation system. Content-based methods provide recommendations by comparing representations of content contained in an item to representations of content that interests the user. This approach fits the flight domain better than the other methods. Active Collaborative filtering (using explicit feedback) would result in good results, but it comes at a high cost. Moreover, the user opinion may be biased. Also, as providing feedback requires action by the user, less data may be available than with a passive approach (implicit feedback). Most of the existing systems use the data from the individual user combined with the data from other users to make a recommendation. The current system only uses the data from the user to provide the feedback. This results in more personalized recommendation.

The content based approach, rather than looking for weight of one feature, calculates the over-all weight of the item in context, which is more important when the recommendation is based on several attributes. Hence this relates to comparing the current item against a case base and determining the overall weight and the status of the item in terms of recommendation.

.

3. FLIGHT RECOMMENDATION ALGORITHM

The Flight recommendation algorithm had been designed with the concept of implicit feedback and Feature weights in mind. Calculations are made to compute the total weight of each entry in the result set. The results are then sorted based on these weights.

The following is a detailed description of the algorithm.

Pre conditions:

1. The status of the user login is known. (if the user is logged in or not)

2. The user has entered the input

Post condition:

The results are sorted in the order of recommendation with the most recommended result at the top and the least at the bottom.

Algorithm:

The set of flights that meet the user input criterion are fetched. Let’s call the temporary unsorted result set Rtemp and the size of the result set ‘n’. The algorithm needs to compute the value Rtemp (i, w) where (0 < i < = n) and w represents the weight. Hence Rtemp (i, w) represents the weight w of an itinerary i in the result set Rtemp.

There are four attributes based on which the total weight can be calculated Price P, Airline A, Time of the day T and stopover attribute S.

Rtemp (Pi), Rtemp (Ai), Rtemp (Ti) and Rtemp (Si) represent the value of price, airline, time of day and stopover for the itinerary i respectively where (0 < i 25) number of application users. It can understand the business impact of performance. It allows simulates multiple concurrent users of a web application. It measures the performance of the application in terms of page download times, server performance and errors. Finally it indicates the business impact in terms of the abandonment prediction and frustration coefficient

ANTS Load has 3 editions:

ANTS Load Entry Level Edition lets you simulate up to 25 concurrent users, running on a single client computer.

ANTS Load Professional Edition lets you simulate up to 100 concurrent users, running on a single client computer.

ANTS Load Enterprise Edition lets you simulate thousands, or even tens of thousands, of concurrent users, running on multiple client computers.

I have used the free evaluation for up to 10 users here for testing my web site.

5.1.2 ANAYLSIS

Website performance testing tools give results that are very subjective to interpret. Its been widely quoted that "if a web page takes longer than 10 seconds to download then a user is likely to lose interest”. Frustration was measured as being very slightly influenced by time but only if the download time was greater than 30 seconds. Lost ness equals the number of page visits required to complete a task (optimal path) divided by the number of pages visited. 1.0 means the user was not lost at all. There is no upper limit! You can see in the below test result that the time to connect to each page was zero except for two pages. This shows that the web site will not be much frustrating to users.

Figure 5.1 – Results

[pic]

[pic]

This section shows the overall distribution of metrics for the FRC. The charts show what proportion of timings fall into which intervals.

The next section shows you the average timings for each web page for this test. This can be used to find the fastest, and slowest, pages in the current web application.

FRC

Figure 5.2 – Time to Connect

[pic]

The figure 5.2 shows that the all the web requests take time that’s less than 50 milliseconds. This emphasis on the user’s frustration level is evident that it would be low for the current application.

Figure 5.3 – Time to get First Byte

[pic]

The figure 5.3 shows the time taken for the application to get the first byte. We can see that time taken to receive the first byte is less for the majority. Moreover, the maximum time taken was just 250 milliseconds.

Figure 5.4 – Time to get Last Byte

[pic]

The figure 5.4 shows the time taken for the application to get the last byte. We can see that the maximum time taken to receive the last byte was 250 milliseconds.

The figure 5.5 represents the total number of bytes received by each web request. The complexity of the application is obvious from the vast amount of the web requests receiving close to 5000-10000 bytes.

Figure 5.5 – Bytes Received

[pic]

5.1.3 RESULTS

From the above analysis, we can conclude that:

The FRC, despite being a very complex application with a lot of request to the database, performs really well in terms as is evident from the graphs. We can be assured that the application would minimize the user frustration level.

The time to connect to the web page is low and hence the web page will not be abandoned by the users.

The time between the first byte and the last byte received is very nominal, We can see from the figure 5.5 that despite the high amount of data received, the time to receive the last byte is low. Thus we can conclude that the level of lost ness while navigating through the application is very less.

5.2 Unit Testing

Unit testing is a procedure used to validate that individual units of source code are working properly. The goal of unit testing is to isolate each part of the program and show that the individual parts are correct. A unit test provides a strict, written contract that the piece of code must satisfy. As a result, it affords several benefits. Experiences show that a consequent Unit and Integration Test increase the software quality, save time and saves money. In this approach, each software component, module or class is being test in the smallest possible context. This leads to robust building blocks, which can be integrated quite easily following a bottom up testing approach.

5.2.1 Unit Testing Using Unite .NET

Unite .NET is a Unit and Integration Test Environment for Microsoft Visual Studio .NET, that allows a software developer to efficiently test its software components, classes etc. as part of a Unit and Integration test. An extensive test harness library and wizards simplify the test driver development in C# and . A tight Microsoft Visual Studio integration ideally supports the "code a little, test a little" working style. The Unite .NET Test Control Center allows interactive and automatic test execution. Test results are reported with a comprehensive HTML/XML-based test execution trace.

Table 5.1 – Test Results

[pic]

Table 5.2 – Test Case Results

[pic]

5.2.2 ANALYSIS OF RESULTS

An application can be tested using numerous test cases to check for its correctness. But practically we have to restrict our self to few test cases which can assure that the application will run perfectly under ideal situations. The test cases used have been executed successfully with expected results and no errors. Various code snippets from different methods have been tested for correctness. The test cases basically concentrate on the correct retrieval of data from the database at various instances.

6. FUTURE WORK

6.1 EXTENSIONS

The FRC application is limited to only a few user preferences. The number of preference characteristic could be increased significantly. The case based reasoning works effectively for the particular user in context. A recommendation system can be made more effective by using a collaborative approach. An approach where the predictions are specific to the user, but use information gleaned from many users. The FRC generalizes the concept of multiple users by just calculating the total weight of individual preferences instead of calculating the similarity between different users. The current system gathers implicit feedback by observing the history of the user purchases. The scope of implicit feedback gathered can be extended or improved by observing the user’s action in each given sessions.

In FRC, the feature weight scheme uses static weights in the computation of the total weight of user preferences. The feature weights can be dynamically updated from time to time every time a purchase is made. For example, when the user makes a purchase, the implicit feedback is obtained about the preferences and the weights are increased for features that have been selected in the current purchase. At the same time, the weights are decreased for the features that have not been selected. This process yields in better recommendation as it would tend to push down the recommendation scores of items that are not being taken up and pull up the scores of ones that are selected.

7. CONCLUSION

This report describes the Flight Recommendation Client (FRC), an application that enables the user search for and finds flights. The search result comprises a large number of itineraries. Hence the recommendation system cuts down the burden on the user by recommending the flight that best fit his preferences by placing them at the top. Explicit feedback leads to an increase in the user’s frustration level. The recommendation process is highly effective as it uses implicit feedback. The feedback is obtained by making some observations on the user’s purchase history. The FRC makes successful recommendations by using the technique of assigning feature weights and user specific context based recommendations. The recommendation algorithm was designed with the Flight Recommendation client (FRC) application in mind. Yet, it can be applied to other domains that use implicit feedback. The key to the success of the FRC is the ability to sort the results based on user preferences and personalizing it in the recommendation process.

References And/Or Bibliography

[1] “Start VB dot ”, “ Features”,

[2] Red-Gate, “Load testing, stress testing”,



[3] Shrijeet Nair, “Microsoft Application Test Center”, “Date: 9-17-2002”17/2002



[4]

[5]W3Schools, “ Introduction”,

[6] Microsoft , “ web: Official Microsoft 2 site”,



[7] Microsoft, “Visual Studio Extensibility”,



[8] Red-Gate, “Website download time, abandonment”,



[9] “Microsoft Visio tutorial”



[10] “Visual Paradigm documentation”



[11] “Introduction to the Diagrams of UML 2.0”



[12]

[13]

[14]

[15]

[16]

[17]

[18]

[19] A dynamic approach to feature weighting

B. Arslan, F. Ricci, N. Mirzadeh & A. Venturini eCommerce and Tourism Research Laboratory, ITC-irst via Sommarive 18, 38050 Povo, Italy

[20]

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download