The present invention relates to the use of dynamic programming for selecting TV programs from a previously specified set of preferred programs, for simultaneous recording and viewing during a given time period.
With the ever increasing number of available television channels, either through terrestrial connections, satellite, or cable, the task for a viewer of selecting TV programs to watch and record is becoming too big to handle manually. With the advent of digital television, the number of channels, hence the number of options, to choose is becoming even greater. Therefore, viewers can no longer overview all available contents, and it becomes more likely that a viewer will miss TV programs that he or she would find very interesting.
Because of the high number of TV programs available each week, printed program guides are no longer a viable option, as they would simply become too extensive to use. Electronic program guides (EPGs) form a solution to this problem by presenting the available TV programs for a number of channels on a TV screen. However, only a limited amount of information can be shown, e.g., the number of channels and the length of the time interval of the portion shown on the screen are very limited, because of the poor resolution of a TV screen for this kind of information. And, even if the resolution were high enough, simply programming all available TV contents would overwhelm the average viewer.
In order to alleviate the viewer's problem of what TV programs to select and when to watch them, i.e., the problem of developing a viewer-specific viewing schedule, EPGs offer an option of searching (filtering) by keyword(s). In this way EPGs reduce the number of TV programs to be screened and selected by the viewer to a tractable number. Another way for the viewer to cull a plurality of TV programs that are uninteresting to the viewer is through the use of recommender systems based on artificial intelligence (AI) technology. These AI recommender systems maintain a preference profile of the viewer, indicating what the viewer likes and dislikes, and employ this profile to score each newly offered program as to what extent the viewer will like the newly offered TV program. Then, the programs scoring in excess of a pre-determined viewer-specific tolerance are highlighted in an EPG or the viewer is provided a list of these programs. A problem with these solutions, however, is that they do not take into account whether or not programs overlap in time, so it remains for the viewer to compile a viewer-specific schedule of top-scoring TV programs to watch during an evening for example. In other words, whereas filters and recommenders come up with a list of individual programs, such a list is an incomplete solution to a viewer's problem of creating a schedule of programs to watch.
A similar situation exists for recording TV programs.
A solution is needed that, for a given time period, combines the two steps into one, i.e., selection of programs for watching and recording, simultaneously, for which a limited number of tuners is given, that must be shared.
The system, apparatus, and method of the present invention provide a way to create personalized TV viewing evenings, by compiling a sequence of consecutive TV programs for watching and recording, simultaneously. Before compiling such a sequence, a set of viewer-preferred TV programs appearing in a broadcast schedule must be selected.
When time-shifting is introduced (recording programs to be watched later), a plurality of tuners is available, and a limit on the total time of programs to be watched is given, the present invention provides a dynamic programming approach that solves the time-shifting program selection problem to optimality. Experiments indicate that an implementation that includes time-shifting runs in reasonable time on practical problem instances. Furthermore, alternative embodiments are provided to reduce the run time, albeit at the cost of losing the guarantee of finding an optimal solution.
The system, apparatus, and method of the present invention provide a way of determining an optimal TV experience to a viewer for a given time interval, the experience comprising watching as well as recording preferred TV programs using a plurality of tuners.
Time-Shifted Viewing
The viewer's scheduling problem consists of two aspects. First is selection of the programs to receive (which will be recorded). Second, from this first selection it must be decided which programs to watch during a given interval (e.g., that evening) and at what time.
It is assumed that a certain value per program is given for receiving it, and an additional value is given if it is also selected for watching. For instance, a sports program is assigned a certain value for being received (and recorded), and an additional value if it can be watched during the evening of the broadcast.
Consider a setting in which only complete programs are received using a plurality of tuners.
Time-Shifted Program Selection Problem (TSSP) Embodiment
Given is a set S of TV programs that a viewer has specified a preference for watching, for each program s, a begin time bs and an end time es, and a number m>1 tuners. Furthermore, for each program s a value vsr is given for receiving it, and an additional value vsw is given for watching it. Finally, a begin time b and an end time e are given, indicating the interval [b, e] during which the viewer wants to watch programs.
The system, apparatus, and method of the present invention determine a subset Sr⊂S of programs to be received (and recorded), and a subset Sw⊂Sr of programs that are going to be watched, such that at all times at most m programs must be received, i.e., for all times x we have
|{s∈Sr|bs≦x<es}|≦m,
such that the set Sw of programs selected for viewing can be scheduled in the time interval [b, e], and such that the total value of this solution, given by
is maximized.
The constraint that the set Sw selected for watching can be scheduled in the time interval [b, e] means that we also have to determine for each of the programs s in this set, a time ws at which its viewing starts, such that for all s∈Sw,
ws≧bs
ws≧b
w
s
+e
s
−b
s
<e
s
and such that for all s,t∈Sw,s≠t,
w
s
≧w
t
+
t
−b
t
Vw
t
≧w
s
+
s
−b
s.
Note that scheduling the programs selected for viewing may introduce gaps in the schedule. Such a gap will, for instance, be introduced if it is better to wait some time for a program to be broadcast if it has a very high value.
The above problem is typically solved for a limited time interval, e.g., an evening. The programs in Sw can be watched on the same evening, while the programs in Sr\Sw can be watched on another occasion. For example, they can be used if programs in Sw turn out to be disappointing, or they can be used on other days when there are no good programs being broadcast.
Scheduling Programs for Viewing
Theorem. Without loss of feasibility, a set Sw of programs selected for watching can be scheduled in a time interval [b, e] in the order of increasing begin time.
Proof. Suppose there exists a feasible schedule, given by the start times ws for all s∈Sw and suppose there are two programs s, t, with s being scheduled directly before t, but with t being available before s, i.e., bt<bs. Then, swapping s and t also gives a feasible schedule, which can be seen as follows.
Consider the schedule w′ which is given by the same start times for all programs except for programs s and t, which are given by
w′t=ws
w′
s
=w′
t
+e
t
−b
t.
These programs directly succeed one another. See
w′
t
=w
s
≧b
w′
t
=w
s
≧b
s
>b
t
w′
t
+e
t
−b
t
≦w
t
+e
t
−b
t
≦e
w′s≧ws≧b
w′s≧ws≧bs
w′
s
+e
s
−b
s
=w
s
+e
t
−b
t
+e
s
−b
s
≦w
t
+e
t
−b
t
≦e.
Therefore, scheduling the programs for viewing can be done in the order of increasing begin time. Furthermore, assigning tuners to the programs to be received corresponds to coloring an interval graph, which can also be done in the order of increasing begin time by means of the so-called left-edge coloring algorithm. This allows application of a dynamic programming approach, in which the programs are iteratively considered in the order of increasing begin time, and determination for each program whether to skip, receive, or receive and watch it. For the remainder of this disclosure, assume the programs to be numbered s=1, 2 . . . n, with bs<bs+1 for all s=1 . . . , n−1.
A Dynamic Programming Approach
A preferred embodiment is a dynamic programming approach in which the TV programs are considered in the order of increasing begin time. The state space chosen is such that when considering a certain program s, all the relevant information is available concerning previous decisions in order to determine the effect of skipping, receiving, or receiving and watching s (possibly time-shifted).
Therefore, in a preferred embodiment a state is given by the time onwards from which each of the tuners is (again) available for receiving the next program, plus the time onwards from which the next program can be scheduled for viewing. Given this information, it can be determined whether to skip, receive, or receive and watch the next program s under consideration, and what the effect is of these choices. Without loss of generality, the times for the tuners are sorted in non-decreasing order, as all tuners are identical.
In addition to the above parameters to keep track of the state, for each state the value is maintained of the already selected programs for reception and viewing. Furthermore, for each state the sets Sr and Sw are stored of programs selected for reception and viewing, respectively, so afterwards we can simply read out what the solution is.
More formally, a state is given by an (m+4)-tuple (a1 . . . , am; a; v; Sr.Sw), where a1 . . . , am indicate the times when each tuner is again available, with ai≦ai+1 for all i=1 . . . , m−1, a indicates the time when the viewer is again ready to watch the next program, and v is the total value of programs selected up to now.
The begin state for dynamic programming is given by ai=b1 for all i=1 . . . , m, i.e., the tuners are available from the first beginning of any program, a=b, i.e., the viewer can start watching from time b onwards, a value v=0, and sets Sr=Sw=φ. The set of possible states is hence initialized by P0={(b1 . . . , b1;b; 0;φ;φ}}.
Next, given the set of possible states Ps−1 at the beginning of iteration s=1 . . . , n of the dynamic programming approach, we can calculate the set of possible states PS at the end of this iteration as follows. For each state (a1 . . . , am; a; v; Sr.Sw), ∈Ps−1, we can take (at most) three possible actions for the program s under consideration:
(s,a2, . . . am;ws+s−bs;v+vsr+vsw,Sr∪{s},Sw∪{s})in Ps,
where again the availability times es, a2, . . . , am are resorted.
Next, the set Ps of states may be pruned, as some states may dominate other states. Before doing so, however, the states in Ps are updated as follows. Because the next program begins at time bs+1 (where we may define bn+1=∞) and the following ones do not begin earlier, a tuner availability time ai<bs+1 might as well be replaced by an availability time ai=bs+1. Similarly, the time a at which the viewer is again available for watching may as well be replaced by bs+1 if bs+1>a. Note that in the latter case the watching schedule of the corresponding state will have a gap.
After the updating step, dominated states are removed. A state
σ=(a1 . . . am;a;v;Sr,Sw)∈Ps
is said to dominate another state
σ′=(a′1, . . . , a′m;a′;v′;S′r,S′w)∈Ps
if and only if the next three conditions hold:
ai≦a′j for all i=1, . . . , m
a≦a′
v≧v′.
So, the availability of the tuners and the viewer in state σ are no later than in state σ′, whereas the value of σ is at least as good as the value of σ′. In this situation, σ′ can be removed from Ps without loss of optimality. This results in a smaller set of states, and hence in a shorter run time of the algorithm.
To remove all dominated states, a check must be performed for each pair of states, which takes a number of steps that are quadratic in the number of states. As this will be too time consuming in practice, in a preferred embodiment a less complete check is performed by first sorting the states, and next comparing each pair of successive states. This results in a good trade-off between the run time required for domination checks and the run time saved by reducing the state space. A pseudo code for the resulting dynamic programming approach is given in
Run Time Improvements
Three alternative embodiments reduce the run time, at the cost of losing the guarantee of finding an optimal solution.
1. Reducing the State Space by Making the Time Granularity Larger
Key in the dynamic programming approach of the present invention is that the state space can be reduced after each step by removing dominated states, and that in this way the state space can be kept reasonably small. An important factor in this is the time granularity of the problem instance at hand. If the time granularity is relatively large, compared to the total time span, then the number of possible availability times is quite small. For instance, if all programs begin and end at multiples of half an hour, and the earliest time point is 18:00 and the latest one is 23:00, then each availability time (of each tuner and of the viewer) can assume only 11 values. If there are two tuners, then there are 66 possible pairs (a1, a2) of tuner availability times, so the state space contains at most 66*11=726 states, regardless of the number of programs. If, however, the time grid is one minute, then the number of possible availability times is much larger, and hence the state space can become very large.
A way to prevent the state space from becoming very large is by artificially making the time granularity larger. For instance, all times may be rounded to multiples of five minutes. In a preferred embodiment, for the availability time of the viewer, this is done by only rounding upwards. Then, the amount of programs selected for watching with rounded times can certainly be watched if times are not rounded. In other words, the found solution is guaranteed to be feasible, but we may lose optimality. Rounding the availability time to the nearest (not necessarily higher) multiple of the time grid may also be done, but then the end time e may exceed by the eventual solution.
In a preferred embodiment, the availability times ai of the tuners i=1 . . . , m, are only rounded upwards. A drawback of this approach, however, is that two programs that directly succeed each other on a channel may not be selected together. For instance, if the first program is selected, and the corresponding tuner is available again from the end time of this program, then by rounding up this availability time it may be concluded that it is not possible to also receive the next program with this same tuner. If the begin and end times of the programs are such that there is a gap between the end of one program and the beginning of the next one on the same channel (for instance because of commercials in between), then this effect of rounding need not occur. Furthermore, if it is not an issue that the beginning of a program is missed, one may resolve the problem caused by rounding times upwards by simply increasing all begin times by a certain amount.
2. Filtering Programs
An alternative preferred embodiment reduces the run time of the dynamic programming approach by pruning the set of programs before solving the instance. To this end, a lower bound pmin is set on the preference density of a program, and all programs with value vs<pmin(es−bs) are removed. Key in this pre-filtering step is that a sufficient number of uninteresting programs are removed, but still a sufficient number of interesting programs is retained to choose from.
3. A Two-Step Approach
A further alternative embodiment reduces the run time by applying a two-step approach. To this end, the dynamic programming problem is first solved where the only options per program are to either skip it or to select it for watching. Therefore, the option to only receive (and not watch) a program is not considered in this alternative embodiment. This embodiment reduces the growth of the state space.
Next, when an optimal set Sw of programs is selected for watching, it is then determined which programs can additionally be received (for recording). So, keeping Sw fixed, an optimal set Sg of programs is determined that is to be received in addition to Sw.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/IB2006/053460 | 9/22/2006 | WO | 00 | 3/24/2008 |
Number | Date | Country | |
---|---|---|---|
60720090 | Sep 2005 | US |