# Smart Recommendations for Renting Bikes in Bike-Sharing Systems
## 3 Station-Based BSSs  
A station-based BSS consists of a set of stations distributed around the city at different, fixed geographical locations. Each station has a number of slots to park a bike (its capacity), which may differ from station to station. At a given point in time, some slots may be empty or available (e.g., can be used to return a bike), while others have an available bike plugged in that can be taken by a user. The total sum of bikes in the system is always much smaller than the sum of capacities of all stations, so as to allow users to find empty slots to return bikes. Users who want to use the system would go to a station, take a bike, and return it after some time at another station close to the location of their destination. Normally, when a user decides to take a bike, they would be interested in finding the one closest to their initial position. In the same way, when they want to return a rented bike, they would like to do that at an available slot as close as possible to their final destination. Usually, BSSs are supported by software applications that provide the users with real-time information about the current state of stations. Users may consult these applications in order to find appropriate stations to rent or to return a bike. In some cases, recommendation systems exist that propose appropriate stations to users. However, even if a user applies this real-time information to identify appropriate stations with available bikes or slots, it may occur that when they actually arrive at that station, the initially available bikes (or slots) have already been taken (or occupied) by other users. We call this situation an _unsuccessful_ rental (or return) attempt. If a user has arrived at a station and there are no bikes available, they might consider going to a neighbouring station and trying there, or they may desist. A user will usually desist if they do not find an available bike after walking a certain distance (and perhaps trying at several stations). They might also desist if, based on the real-time information provided by their software application, they realize that there are currently no bikes available within a reasonable distance of their initial position. Once a user has rented a bike, they are obliged to return it at some station--that is, there is no possibility of desisting; the user must go to another station if there are no available slots at the first station they tried. In this work, we intend to provide users with a recommendation system that suggests the \"best\" station to them when they want to rent a bike in the system (or they have to return a rented bike)--that is, we assume that potential users, when they decide to rent a bike or to return a rented bike, consult our system for recommendations of \"good\" stations. Furthermore, users would usually follow the given recommendation and move to a recommended station. In this sense, our aim in this paper is to define and analyse recommendation strategies that, if followed by the users, provide improved performance at both the individual and social (system) levels. The general objective is to recommend stations that (1) are likely to have the requested resource (bike or slot) once a user arrives there, and (2) provide short travel times, e.g., are close to the location of the user in case of a bike rental, or close to their final destination in case of a bike return. In the rest of the paper, we use the following notations (see Table 1): \(S=\ \{s_{1},\ldots,s_{n}\}\) denotes the set of stations, each with geographical location \(l(s_{i})\) and capacity \(c(s_{i})\). \(bikes(s_{i},t)\) and \(slots(s_{i},t)\) represent the number of available bikes and slots, respectively, at station \(s_{i}\) at time \(t\). A user \(u_{k}\) who wishes to rent out a bike will request a recommendation for an appropriate rental station.