>> Eric Horvitz: Welcome to this talk this afternoon. We're excited to have Tuomas Sandholm today. I think he was just talking about his last talk at Microsoft Research was in 1998, so we like to hear from him at least once every 10 years to get an update on his reflections and his intellectual work. Tuomas is a professor in the Computer Science Department at Carnegie Mellon University. He's prolific in his research in eCommerce, game theory, core AI multiagent systems, eCommerce. He's looked at auctions and exchanges online negotiation and contracting, voting, safe exchange, coalition formation and a variety of other topics. Beyond his academic work he's founder, chairman and chief scientist of a company, I'm not sure you call it a start-up anymore, but it's a company called CombineNet, which is doing generalized combinatorial auctions, working with many companies in the world, quite a -- dealing with handling quite a bit of flow of dollars. Tuomas did his PhD and his master's degrees in computer science at the University of Massachusetts at Amherst. Earlier than that, he did his bachelor's and master's degree at Helsinki University of Technology in Finland. He is the recipient of many awards, including one that I know quite well, the Computers and Thought Award. And he recently became a fellow of the ACM. He's already a fellow of the AAAI a couple years back. So today Tuomas is showing how we can apply computational methods, data structures and decision making to health decisions of the most interesting kinds, involving -- including the kind that involve exchanging of critical organs in which is often scarce quantities of around the world. People wait for these kidney exchanges sometimes dying while they wait. And at Stanford when I did a medical degree we often saw these list and priorities of pending needs and availabilities. It's a very challenging problem that he's been working on. And an article on this topic just came out in the Journal of Medicine recently. So Tuomas. >> Tuomas Sandholm: Thank you, Eric. Thanks a lot for this opportunity to share some of my thoughts on how a computer scientist can save lives directly, which has been kind of an unusual opportunity for me. So first of all, I'd like to say a few words of thanks. First of all, funding agencies and Microsoft Research has been funding part of this work through Carnegie Mellon's Computational Thinking Center and the National Science Foundation has also been funding part of this work. In the second set of thanks go to my collaborators. I'm going to be talking about the results from three different papers, each one with different co-authors in this talk. So as Eric said, kidney exchange is an important -- kidney failure is an important problem and it can be a very sad situation when that strikes. In the US alone over 50,000 people get lethal kidney disease each year, and when it happens, it usually affects both kidneys. The traditional treatment is dialysis and here's a little picture of what dialysis looks like. You hook up a machine to your bloodstream and it takes a lot of time, multiple times a week, hours at a time. And quality of life on dialysis is very low. And for a relatively healthy person like myself, to think about this, it's hard to believe but most people actually on dialysis decide to stop the treatment and die instead, quality of life is so low, and in fact only 12 percent survive ten years, although in principle you can go forever. The real dialysis is just kind of sustaining your life. It doesn't solve the kidney failure problem. A more permanent solution is a transplant. But the transplant requires that the donor's kidney is compatible with the patient. And the main compatibility should come from blood type and tissue type, and there are a couple of others. And why do we work on kidneys rather than some other organs? Well, kidneys are by far the most prevalent organ transplant. So if you can help the kidney problem, you can probably do as much in terms of saving lives as all other organs combined. As Eric mentioned, there's this waiting list, this national waiting list. These numbers are now about a year old. So you have about 80,000 people on the waiting list. The average wait time is two to five years, depending on the blood type. Deaths while waiting are about 4,000 a year. And there are about 30,000 additions to the list every year. And only about 15,000 come off the list every year. So the list keeps growing by 15,000 a year. So there's a big imbalance between supply and demand of kidneys. And you probably read about, you know, buying kidneys and so forth. That's illegal in most countries, and that's not what we'll be talking about here. What we are talking about here is a live donation, where the observation is that you only need one kidney to serve, survive, so if you need a kidney, maybe one of your loved ones would like to donate you one of there's and they can live fine and you can live fine. The tricky piece is that usually even if you find a will donor, there's incompatibility, the blood and the tissue types don't match, so even though you have a willing donor, the donor is incompatible so you can't go ahead and do the transplant. The idea in kidney exchange is that instead of just looking at one donor and one patient let's take these donor patient pairs, which are marked by these circles here, and make a big pool of them and then try to find exchanges of donors in the pool. And if the pool is big enough, maybe it's no longer an off chance that you can get matches. So here's an example. So pair one has an incompatible patient at donor, we have another pair, pair two where the patient and the donor are incompatible, so maybe, though, the donor from pair one could donate to the recipient in pair two, and the donor in pair two could give to the patient in pair one. This would be what we call a two cycle. Any questions so far? Okay. By the way, this is now as of two years ago officially legal in the US. So you cannot by organs for valuable consideration but kidneys are no longer considered valuable compensation, so you can actually swap kidneys and this is legal. Usually when we do this and we work with some real kidney transplantation change or exchanges as we call them, we have the donors travel to the place of the recipient. So the kidney's actually travelling in a live person so we don't have to fly the kidney on ice where it gets worse over time, we actually bring it to the operating table inside the donor so the kidney's actually outside of a person only for a small number of minutes. >>: Does that [inaudible]. >> Tuomas Sandholm: That's an interesting thing. So different kidney exchanges have different policies as to whether they allow travel distance to be a consideration. And to me, at least, it's very -- I'm used to traveling a lot and it seems to the me that you know, this live saving thing should be much higher proprietary and travel should be a secondary consideration. There are certain people in the US who are not willing to travel long enough to make this happen. So they're willing to give a kidney to their loved one, which is I would think a big deal, but they're not willing to travel an unknown transplant center on the other side of the US. So this is a question. And some of the kidney exchange allow to you specify constraints like that, others don't. And you could also make it not a constraint but you could put it down -- well, we'll talk about weights later. You can also take it into account as weights. My personal preference, no, if you just talking US, you shouldn't put any -- allow any such constraints. But that's just my personal bias. With one of the kidney exchanges that we've used this work with, they actually do the mostly transportation inside donors, but they also do transportation on ice for those donors that don't want to travel. I think that's not that great in that the kidney gets worse during transportation, but that's another matter. So that was a two cycle. But in general you could have longer cycles, pair A giving to pair B, giving to pair C and so forth. Here's an example of what a kidney exchange optimization problem looks like in graph form. And this is a tiny example in the real USwide kidney exchange we'll have, as predicted, about 10,000 pairs and in the current small kidney exchanges that exist the biggest ones have about 200 pairs. But this only has five pairs just so that we can look at it visually. So we have each pair in note in the graph, the pair consists of donor over donor of a patient who are incompatible, and there's directed edges that show compatibility between pairs. In this example, there are four cycles that could happen. One is a two cycle C1, then there's a two cycle C2, a two cycle C3 and then there's this massive cycle which is one, two, three, four cycle around the whole loop. The cycles can have weights to capture different criteria which we'll talk about later, but for the exposition in the first part of the talk, let's just think about the unweighted case where all of the edge weights are one. And the aim here is to find the maximum weight sit of disjoint cycles. Disjoint means that you cannot take more than one kidney out of any donor. So any one of these nodes can be only part of one cycle. And maximum weight, well, the weight of a solution is the sum of the weight of the cycles in the solution. This is actually not just kidney exchange, you could use the same types of algorithms for other barter exchanges; for example, other organ donation, DVDs. There's an exchange for used books called read it, swap it. There's an exchange for holiday homes called Intervac. Question? >>: Basically if money transactions are allowed it was discovered I believe in the Fifth Century BC that money [inaudible] really simplify things a lot. So why this return to barter? >> Tuomas Sandholm: Oh, okay. >>: You can see where it's [inaudible] illegal to [inaudible]. >> Tuomas Sandholm: Right. So from kidneys it's illegal to use money so that's a very strong reason why you want to go the barter. There are other reasons why people like to barter instead of put things on the market. Some argue that there's -- you know, you save the taxes, you don't pay the taxes and stuff like that. The funniest one that I know of is the National Shoe Exchange where leg amputees exchange shoes, so maybe they can get away with paying only half of the cost of the shoes because they only need one. Now, kidney exchange, unlike some of these other exchanges, has a special property which is there's a cap on the length of the cycle. And usually we'll call the cap L, and usual in practice so far it's three, four, or five. And the reason -there's actually two reasons. One reason is there's research constraints. All of the transplants in the cycle have to happen at the same time, and in fact, the doctors are on cell phones with each other saying, okay, I'm putting that person, the donor under anesthesia now, I'm taking the kidney out now. Why? Well, if, let's say, Eric's loved one receives a kidney before Eric donates one, Eric might have said oh, well, now I have second thoughts and I don't want to donate anymore and now the cycle fails. So it has to actually execute atomically and that's why it's coordinated in time. But what that means is that executing long cycles is a huge logistical nightmare. You need -- if you want to do a K cycle, you need 2K operating rooms, between 3K and 6K doctors and around 4K nurses. And the biggest cycle that has been executed to date was a six cycle, but that was kind of showing that, you know, it can be done. But in practice usually three or four cycles. >>: What is the typical bound and time between the donations of all the people in a particular cycle? >> Tuomas Sandholm: No, there are no time gap. The kidneys come out at the same moment. >>: All of them? >> Tuomas Sandholm: All donor kidneys come out at the same moment. >>: That seems like a really harsh constraint. >> Tuomas Sandholm: Yeah. Yeah. But it's very important. >>: That sounds like [inaudible]. >> Tuomas Sandholm: Well, one [inaudible] asked the question, well, why do these have to happen atomically at all, can't we just write a contract that you'll give a kidney and so on. Well, in the US it's illegal to contract for organs, so you can't write a contract for the organ. So the only way to enforce it is to make it happen atomically. >>: Literally starting at the exact same moment. >> Tuomas Sandholm: Literally at the same moment, coordinated by cell phones. >>: That's pretty wild. >> Tuomas Sandholm: Yup. >>: You don't see a way out of ->> Tuomas Sandholm: I'll talk about one way, partial way out, but that's actually not a solution to these problem, it's a solution to a much big problem, call altruistic-donor chains. I'll talk about that later. >>: Okay. >> Tuomas Sandholm: The other reason why you don't want long cycles is that there's a last minute check after we've done the blood tests that say you know these people are compatible, there's a last minute check called the cross match where you actually take their bloods, put them together and shake it to see if it coagulates, if it cakes. If it coagulates, then you can't go ahead with the transplant anyway. So last minute, meaning one or two weeks before the operation some of these edges from a market graph come out. So the market graph edges are actually super shape of real compatibility. So that means that the cycle fails. But if you have a shorter cycle, the probability that the cycle fails is lower and if it fails a smaller number of people will be affected. So it's another reason why you don't want to go with long cycles. So what about the complexity now of the exchange clearing problem? Well, we proved that it's NP complete, more specifically deciding whether a directed graph has a perfect cover with cycles of length at most L will then be complete for any constant where L is three or more. With the reduction is from undirected 3D matching and it -- the obvious reduction doesn't quite work, so you need a little bit more of a subtle reduction. The interesting thing is that the problem is polynomial time is if L is 2, so if you only have two cycle polynomial time and if L is infinite, you don't have any cycle cap, it's also polynomial time. So it unfortunately happens to be for the real problem where L is three, four, or five, it's NP complete. Approximation algorithms exist but we want an exact algorithm, first of all, otherwise patients my die unnecessarily or will die unnecessarily, and as I'll show we can make an algorithm that can solve this problem optimally at the nationwide scale. Which is projected to be 10,000 pairs. Some prior work. Well, people of looked at simulation of different kinds, simulation paper by Segev, et al., that shows it with just 4,000 patients you get about 750 million dollars of savings in healthcare costs and that's just the cost of dialysis really that's saved there. It doesn't take into effect the fact that you get quality of life improvement and these people who are on dialysis are now working and being productive members of society. In reality the market as I mentioned is probably going to be about 10,000 so this is an underestimate in that sense as well. Roth showed that you can actually get significant gains with allowing three cycles instead of just restricting to two cycles. The current state of the art at least before we showed up on the scene, was there were three kinds of approaches to solving the exchange problem in kidney exchange in practice. And in the US there's a handful of kidney exchanges. They are all relatively small. The biggest one run pools of about 150, 200. I'll talk about the UNOS setting up a nationwide kidney exchange towards the end of the talk. Most of them did many of the matches or some sort of a greedy heuristic algorithm that doesn't find optimal solution and the manual approach doesn't scale. And people who used maximal weighted matching which finds the optimal answer for two cycles but can't handle more than two cycles, that can be solved, for example, with Edmond's algorithm from '65 and then the most advanced prior exchange is C plex, which is an integer program in general purpose package. And as I'll show, it doesn't scale beyond 600 or 9 to 900 pairs, that's where it chokes. The nice thing is that this can handle any cycle cap and it has the same flexibility as our algorithm, otherwise just doesn't scale to the nationwide size. The interesting thing about this problem is that unlike in determination and combinatorial auctions where the bottlenecks is time here space becomes the bottle neck first. And what I'll show you is an algorithm that can actually solve the problem provably optimally without ever writing the problem down. You can't ever write the problem down because it would be too big. So first I'm going to show you an approach -- yes? >>: You say space is a bottleneck, you're talking gigabytes, terabytes, petabytes. >> Tuomas Sandholm: Pick your favorite. So in my lab we have -- the biggest computer we have is about 128 gigabytes of RAM, so a supercomputer, and it's really -- I'll show you the reason why you'll just see it, okay, well if that's how it has to be, you can't write the problem down. It's just too big. But first let me talk about our first approach, and now I'll have to preface this that this didn't really work as well. The first approach was what we call the edge formulation of the problem, and it's motivated by this special case where there's no limit on cycling. So we can take the original market graph and put the agents as red nodes into a new graph. Let's say these are the recipients and then we have the donors here as items in the blue ones and we'll -- for every compatible edge, we'll put an edge in this graph and then we'll put these incompatible edges of weight zero between the donor and his incompatible pair. And then we can look for a perfect matching in this bipartite graph, and that will give us the right answer in the case where we have no limit on cycle length in polynomial time. So we took that type of idea and formulated it as an integer linear program, ILP, in this edge formulation. Of course now we really put in the cycle cap. The objective is to maximize the sum over the edges, the weight of the edge times the decision barrier below whether you're taking the edge or not. One means that you're taking the edge and the solution, zero means that you're not. Subject to conservation of flow, the last-minute kidneys have to come into each and just go out and capacity nobody can put out more than one kidney. And then we have the limit in cycle length. For each known cycle path of length L we have to say that the sum of the variables is less or equal to L minus one. The ILP there is too large, there's too many constraints to write down, even with just a thousand patients there are 400 million length 3 pads. So we tried the constraint generation approach. That's an incremental formulation where you begin with a small set of constraints and then you repeat solving the linear programming relaxation and adding a subset of the violated constraints, if any. We perform a branch and bound search, a tree search doing the repeat loop above at every node. So that's a normal way of doing constraint generation in the integer programming and search. There's some techniques that we use to try to make it faster. One is that we seeded the constraint, we didn't start with an empty pool of constraints, we forbid any known cycle path of length L minus one, there's no edge closing the cycle from its tail to head. And we also tried seeding with random constraints from the ILP. Then in the constraint generation, we find a length L path with value some more than L minus one and we add the constraint. Observation here is that the long cycle C of length C contains C of these paths. So we went in the smaller numbers of constraints so for example on a cycle the edge sum in a long fraction of cycle can be at most four of this so we put just one constraint instead of C constraints for these cycles. That gives less constraints, but there now turns out to be slower in practice. So then we went the other way and said, okay, well, let's put in more constraints than C and see if that helps. We added a constraint for violating path P and for each path with the same intern vertices. And that turned out to be faster, but it's still slow. So even after many improvements we couldn't clear markets with 100 patients faster than the next approach that I'm going to talk about can clear the market with 10,000 patients. And I'll mention the theoretical justification why the next approach is better. The second approach is column generation. The first was constraint generation. This is column generation. And this is motivated by how you can formulate in polynomial time [inaudible] the case where the cycle length is at most two. And what we do here, we put the nodes of the graph into this new graph from the original graph, and then we put one undirected edge for each cycle of length at most two. So for example, for this cycle C1, there's an edge here, for this cycle C2, there's an edge here, and for this cycle here, there's an edge here. And for the big cycle of course there's no edge because that's longer than two. And then the exchanges correspond to matchings in this graph, and again we can use standard matching algorithms to find optimal matching. But again, we want something that works for any cap L, so we need to formulate these in an integer linear program, but we use this idea that decision variables are cycles. So we will say that CL is a set of cycles of length. At most L. We'll have one variable for each cycle C, CL. We want to maximize over the sum of -sum over the cycles of the weight of the cycles, weight of the cycle times the decision variable of the cycle. Again, one means that the cycle is in the solution and zero means it's not. Subject to the constraint that that the sum over cycles that include vertex VI has to be smaller than one. Again, that's a constraint that every pair can be involved in that one cycle. And of course the cycles have to be out or in, they can't be partially in. Any questions on this? And this is a formulation that we'll really be working with. And now we're going to be adding some [inaudible] on top of this to make this tractable. You can see that CL will grow rapidly. So even if you have L being three, there's already a cubic number of cycles, and if you have 10,000 pairs it's 10,000 to the third in the worst case and now you start to be beyond what you can even write down. Let's compare the two different formulations, I'll formulation and edge formulation. The cycle formulation has fewer constraints but more variables. And a variable is a column in the integer program. Furthermore, we prove that the cycle formulation linear program gives upper bounds that are no worse than the edge formulation. In other words, the cycle formulation gives tighter upper bounds and therefore smaller search trees because search trees use the upper bounding to prune. And why is that? Well, you can easily see that any solution that's valid in the cycle formulation, you can convert a valid solution in the edge formulation. But the reverse isn't true. So for example think of a cycle of length N. In the cycle formulation, the optimal solution would be zero because you couldn't take that cycle because it's longer L. In the edge formulation, on the other hand, you can take half of every node. So that just says that cycle formulation gives you tighter bounding and that bears out also in the speed as I mentioned. What we can do not cycle formulation with 10,000 nodes we couldn't even do a hundred nodes in that time with edge formulation. Okay. So again, the linear program -- the integer linear program is too large even with only a thousand patients there are three million cycles, and again, if you recall, we're trying to solve problems be with the 10,000 patients. The overall approach that we take, therefore, is what we call branch and price. And it's an approach relatively recent approach starting in the mid '90s in operations research in the integer programming where you can actually find the provably optimal answer without writing the problem down exactly. So we adopted the approach here, plus we put in a lot of goodies on top of it to make it fast enough in practice. So the idea is that we branch like in the tree search, we'll select a fractional column from the LP, fractional means that the LP value is not zero or one, it's somewhere in between. So [inaudible] isn't sure whether it should be accepted or rejected. And we fix the value to zero and one respectively. That's our branch. And the search order is we'll do that first search just to save memory. That's just choice you might go in other orders, but we do this just to save memory and because it worked. We have found that the search node is no better, it is no better than incumbent, so that's a normal upper bounding rule. We solved for each node as LP relaxation using column generation. And that gives -- the LP gives us the upper ground. And then we have some primal heuristics that search for integer solutions early at the node and if they are found, they constitute new incumbents and therefore better pruning later in the search. I'll talk about these in detail. So in the column generation the master linear program which we'll call P has too many variables to write down, too many columns, in other words, so it won't fit in the memory and we would take too long to solve even if it would fit. So we begin with the restricted linear problem, P prime, which contains only a small subset of the variables; i.e., cycles. And note that then the optimum solution for P prime is no greater in value than the optimum for the actual linear problem. So we solve P prime, and if necessary we add more variables to it, add more columns to it, and we repeat until opt of P prime is provably the same as opt of P, and then we're done with the node. And continue with the search. The pricing problem then is to find a cycle of -- in other words, a column whose price which we define to be the weight of the cycle minus the sum of the dual values of the nodes in the cycle we want to find a cycle that has positive price or a report that none exists. The key point here is that we can check the price of each cycle one by one by enumeration without having all the cycles in memory at once. And once we found a solution that doesn't have any positive price cycles we are done. We need some further techniques to improve this pricing problem in speed. First of all, we generate cycles by depth research over the input graph and we explore the vertices in non decreasing order of their dual value. Therefore, the -- that's because the earlier vertices are more likely to belong to a cycle with positive price and you can prune the depth research path early since dual values never decrease down a path. We also avoid repeating work from one pricing problem to the next, meaning that as we move from one search node to another if a vertices dual value is unchanged and it was not the root of a positive price cycle before, it can't be now either and doesn't have to be checked. And finally you might ask how many columns do we add at a time? And here we add one. There's a trade of you might add more columns and be able to increase the opt of P prime more at a pop, but on the other hand if there aren't any positive price columns and you look for some, you're going to have to go through a whole list of columns before you're done. So therefore we just do one at a time. As I mentioned once all columns have non-positive prices, we know that we have a provable optimal solution for the linear program at the search tree node. However, there's this tailing off effect which is that we may have already found the optimal value for the linear program but some columns still have positive price, and they are -- often this is problem that you need many iterations to prove optimality or even you are there already. And there's no general solution for this problem, but we develop some problem specific techniques that work really well here. One is that we relax the cycle length constraint, and this gives us a polynomial time upper bound through the edge formulation. And these length three cycles are usually enough to match the upper bound. So we relax the idea of the cycle cap so they can have any length cycles but usually with three cycles you can already get there. So usually the opt of P prime is going to match, match this and we'll be done. So that's another stopping criterion beyond all of the columns having non positive price. It's actually an interesting side note that in this uncapped problem that we use for the stopping purpose, we use the edge formulation in the bipartite perfect matching graph that I showed you, but we use column generation there, which is exponentially in the worst case but it's much faster in practice than the best special purpose polynomial codes for this problem. Then column seeding you could run the algorithm just as I mentioned, but we again don't want to start with an empty pool of columns, so we seed the columns pool with some seemingly good candidates, we get them from a couple of different algorithms. One is randomized greedy algorithm, and the other one is maximum weighted matching algorithm with two cycles only that we discussed, and then we throw in a randomish selection of a large set of cycles just to start the pool from its final size of -- instead of starting from empty. And this improves speed. Then we need column management once our column pool is as big as we allow it to grow based on our memory requirements. We need to somehow delete columns as we want to put in new ones through the column generation. And the neat thing here is that only a small fraction of the columns end up in the final solution of the optimal problem. So even if we deleted some, it's unlikely that we'll delete any of the important ones and even if we do, they'll be generated again through column generation if we happened to run into that case. And in particular we delete the column with the largest negative price first as this is the most satisfied constraint in the dual. Then primal heuristics, again, the goal is to construct integer solutions at nodes from the fractional optimal solution for the LP so that we get a lower bound, a new incumbent if you will for the integer program and more bounding later on. We have two types of primal heuristics. One is a rounding heuristic where we include all of the cycles with value at least a half and greedily select remaining cycles. Rarely actually helps [inaudible]. Our better primal heuristic is the following is kind of -- where usually actually turns out that P prime at the root node usually contains enough columns so that the integral opt can match the fractional opt. We use C plex's mixover as a primal heuristic at nodes, but only on the restricted ILP that corresponds to the restricted linear problem P prime. And there it's faster than our own tree search algorithm. We also made it faster further by saying that we have to have a constraint that ILP value has to match the fractional target. If we already fall short of that, we can stop the search for the primal heuristic, and then we have a time limit and we only do the primal heuristic if the problem is sufficiently different from the previous problem so we don't keep wasting a lot of time in back-to-back search nodes. And this improves speed significantly. When we do experiments we experiment using a market generator that's being developed by others, by side [inaudible] in particular. And it's based on data from the United Network For Organ Sharing where you have the real distribution of blood types an tissue types in the population and so forth. The idea there is that you generate these patients and donors from the real population see if they're compatible, and if those are beyond compatible, then they join the exchange, if they're compatible, they'll just do their own live donation pairwise. So this gives pretty realistic data. Why didn't we use real data? Well, because there aren't real kidney exchanges at this scale. The biggest kidney exchange problem that we solved for real had 158 pairs. So again, there's a little bit of a chicken and egg problem. There weren't any nationwide kidney exchange because there wasn't the technology to run them. On the other hand, the benchmark the technology you need the data. So it's just like in combinatorial auctions as we proceeded, we generated artificial data honed our algorithms from that and then did it live. So if you take one slide from this talk, this is the slide to remember. This is an experiment on speed. On the X axis we have the number of patients. Each point is different from the next point. So this isn't like we're adding patients. These are different instances. Actually the average is over multiple instances per point. We have the clear ring time on the Y action, so this is the time in second it takes to run the algorithm, i.e., to find the provably optimal answer. So we have here we have the basic cycle formulation which is the better formulation but just fed to C plex without any of this technology that I've been talking about. And you can see that depending the how much time you allow, it might get to 600 or 900 patients before it dies. On the other extreme, we have our algorithm with all the goodies, and you can see that we can get to the whole 10,000 in about one hour. Then in between we have our algorithm with a restricted column seeder where we have no random columns, you just see [inaudible] and they have one with no optimally prover and you can see that it does worse essentially. Any questions on this? Eric. >>: Do you have any graphs that would show how much better each set computation does [inaudible]. >> Tuomas Sandholm: No, I don't. The leading approximation algorithms people have used aren't really published. People kind of shy away. They use the word optimization, although it's not really optimization and then they do some manual thing that's not really well defined or they have some sort of very greedy algorithm that they run, and they're not really published, so I can't really -- I don't have anything real to compare against. >>: No idea? >> Tuomas Sandholm: No idea. There are studies that others have conducted like for example Al Roth's group. They have looked at what can you do if you allow just two cycles. So you use for example Edmond's algorithm versus what can you do if you allow three cycles. So there's been work on that. >>: What does that tell us? >> Tuomas Sandholm: It tells even the work with two cycles is already much better than manuals or the greedy algorithms. And that I don't know how much better but that's already better. But we know that we can even improve from there by three cycles. Any other questions on this? Okay. Well, the short of it is that now it's possible to run kidney exchanges at the nationwide scale. Let's talk about some additional functionality of modern kidney exchange that our algorithm supports. One is allocation level side constraints. So you can put any side constraints you can express in a linear form into the linear program unlike the classic weighted maximal matching algorithms. So for example, you might say one center doesn't wasn't cycles longer than two, another center doesn't want cycles longer than three, a particular region of centers must get at least seven or at most seven operations. Each center gets at least as many operations that it would get if it operated individually, it is very important from a finance perspective. Sender C does not want to participate in altruistic-donor chains of length greater than three. I'll talk about what that is and so forth. You can also incorporate compatible pairs. So why would a compatible pair join a kidney exchange? Because they can do the transplant just wife and husband directly. Well, it may be that the patient can get a better kidney that matches more closely less HLA incompatibility for example. Also, others in the exchange my benefit. You might get more matches or better matches for other people by allowing these incompatible pairs to come in and some other kidney exchanges that we've run we've actually had this, we've allowed these incompatible people to come in with the understanding that, you know, if they don't get something within say three months, you're going to do it themselves. >>: [inaudible] the value in the trades when it comes to their romantic slash family connections versions the [inaudible]. >> Tuomas Sandholm: Yes. >>: [inaudible]. >> Tuomas Sandholm: Yes. So there's also that kind of emotional thing that you know, if I'm going a kidney from somebody who is close to me, I know if, you know, they haven't been using intravenous drugs and they haven't been doing these other risky things. So I know more but maybe it's not as HLA compatible, so which do I prefer, do I prefer to take somebody who's a better HLA match but there's some uncertainty and so forth? >>: So on that front how clear are the models these days for making predictions compatibility and trades ->> Tuomas Sandholm: >>: [inaudible]. >> Tuomas Sandholm: That's a fantastic question. So medical knowledge is incomplete. There are a certain number of things that people measure, the doctors measure out of -- the labs measure out of the blood type and tissue type, but I'm sure there are other parameters that we don't even know about. Just to give you a sense of that, if everything looks okay, it may still not be okay in the last minute cross match. So there's this very cool thing of actually mixing up the blood and see if they coagulate at the end which is beyond our ability to medically explain. But they do that. That's kind of a safety gap at the end. Even if that succeeds, sometimes you get rejection at the end. So the medical knowledge is progressing and there's two things that are happening. One is that notice of incompatibility gets better so some of the edges from the graph disappear, which makes our matching problem harder. On the other hand, the [inaudible] side is getting better so you can -- you can do matches of lower quality which increases the number of edges in the graph and makes the matching problem -- makes more likely that you can match more people. So it goes both ways. And different centers use different technologies for determining compatibility so that's actually one of the challenges in setting up a nationwide exchange is that we have to have some sort of minimal common denominator as to what is getting measured and the definition as to what's okay, what's not okay. Different transplant centers have different levels of match as their minimum criterion. So some transplant centers will do a worse compatibility match than others. >>: [inaudible] science when it comes to monitoring, given the tissue types and compatibility [inaudible]. >> Tuomas Sandholm: So that's -- that's my view of this is that I -- where do these -- well, our algorithm takes us input to edge weight. If you're saying how good is this match if we do it? So our algorithm that we have been talking about so far is agnostic to where those numbers come from. But currently they come from very ad hoc expert systems, kind of a scoring rules really. And I don't mean scoring rules in the game theoretic sense, I mean just doctors giving numbers to, you know, how important is this thing versus that thing. My view is exactly what you said, that we should really have machine learning in the loop, have patient attributes, donor attributes and then have a survival, possibly quality of life -- quality adjusted life years or maybe not quality adjusted but life years anyway and get that prediction going from first principles. >>: And if there's uncertainty and high variance, the idea of actually where there is not an obvious gain or loss [inaudible] assigning kidneys to learn. >> Tuomas Sandholm: Yes. That's -- that's -- that's this kind of system level thinking. I actually thought that maybe I should write an article about it, because when I go there, you know, the doctors don't like that. I'm not sure they understand it, but they certainly are not willing to experiment. >>: It's the idea of [inaudible] I think [inaudible]. >> Tuomas Sandholm: Yes. >>: By saying that we're going to the randomize in particular ways within a [inaudible] optimization within bounds. >> Tuomas Sandholm: Yeah. >>: Now, one might say that [inaudible] a kidney [inaudible]. >> Tuomas Sandholm: Yeah. >>: By randomizing the kidney and so on. But within the current [inaudible] it may be okay. >> Tuomas Sandholm: But even without -- that's the expiration point. Even without expiration, I think even if we took the constraint you can't explore, you have to somehow just take the best match always. Even there machine learning play a role. >>: [inaudible] absolutely. So today has been eclectic at least. >> Tuomas Sandholm: Yeah. [inaudible] different extent because there's no official follow-up on these things. So you don't really know. >>: [inaudible] this is down [inaudible]. >> Tuomas Sandholm. Yeah. I think that's actually some of the people working at UNOS in the same committee that I'm there, they realize that the follow-up is the main shortcoming. Another shortcoming is this histology testing. You got to get better and uniform testing. Anyways, you gonna incorporate compatible pairs into these exchanges with these algorithms and you could also program in the constraint that the compatible patient gets as good a match in the exchange as she would get from her own donor. Then list exchanges you can also integrate these with the diseased donor waiting list and actually I think in the long run would be the right thing to do is to the optimize the pair donation together with the list exchange so the cadaver kidneys are in play at the same time. And there's a little bit of list exchange stuff happening in New England but by and large for the nationwide pool, this is very far away. And there are some reasons why people want to keep those two separate. Yes? >>: [inaudible]. >> Tuomas Sandholm: Okay. I wasn't going to really go into this. This is -- you could think of it as a -- the waiting list where people are waiting for kidneys and there's -- UNOS sets these priorities as to who's going to get what, and it has to do with blood type, it has to do with waiting time. The longer you waited the higher your priority, et cetera, et cetera. The idea here is that if my wife needs a kidney, say, this is all hypothetical, by the way, nobody in my family has kidney disease, but say my wife need a kidney. So I could donate to the list and we could have a mechanism that therefore my wife jumps to the head of the queue. So that's kinds of a little bit -- that's kind of list exchange that they're doing at NEPKE, which is the New England Pair Kidney Exchange. You could even go further, you could just say it, you optimize the waiting list and the kidney exchange wholistically together. And that's where I think it should go in the long run, and that would be the best for everybody, but there are lots of reasons why that's not how it's done. One practical reason is that when you get the cadaver kidney, the clock is ticking. You don't really have time to organize massive coordination and testing and so on on the fly, you -- it has to be much [inaudible] policy. >>: Do you get a sense for the percentage of cadaver kidneys that come from trauma, unexpected deaths versus other kinds of deaths like more planned [inaudible] say there's a kidney ->> Tuomas Sandholm: That's a good question. I don't know. I don't know. The -- I would suspect, though, that that wouldn't help much because when you have a planned death, that means that you're either sick or you're old. Both are reasons why the kidney new is bad. So an old person's kidney isn't going to last a lifetime if put in a young person. So the kidneys have a certain duration. >>: If somebody dies of cancer ->> Tuomas Sandholm: And cancerous kidneys, that's also a very risky things. >>: [inaudible]. >> Tuomas Sandholm: Yes. There are certain hard things like HIV. So people won't transplant an HIV person's kidney. >>: [inaudible] their kidneys. >> Tuomas Sandholm: I'm not sure if there's somebody who wants it either. But there could be. Hypothetically if they can't get anything else. But that's not something that's done. >>: Kidneys been washed and dried, cleaned out so it's [inaudible]. >> Tuomas Sandholm: Yeah, refurbished. Okay. You can also have weighed edges and never ending altruistic-donor chains. So weighted edges just mean that not all donations are the same. So they could -- you could have degrees of compatible. So histological match could be of different degrees. And the better it is, the longer the kidney will survive. Or there could be life expectancy improvements. You could say okay if this person gets a kidney how long would he live, if he doesn't get a kidney how long would he live and that's a that's the all-time life expectancy. Oftentimes the younger the person, the bigger the delta. There are other reasons why the delta can change, but you might prefer people where they can make good use of the kidney for a long number of years. Or weight time. The [inaudible] I'm sorry [inaudible] this is donor waiting list. Prioritize people who waited -- who have waited a long time. Well, I'm not sure that's the right thing to do. That's a fairness notion, it's not an efficiency notion. Travel distance. We talked about that. I personally don't think that that should be taken into account, but some kidney exchanges do take that into account. And they don't take it into account -- well, let's leave it at that. Then another argument you could use is the hardness of matching the patient or the donor in the future. So if you have a blood type O donor, that's some very flexible donor, it could be matched to a lot of people. That would be a valuable donor for the future. So maybe even if we could match him today, maybe we should wait and get the better match, more matches in the future. Or a donor -- a patient that's hard to match. If you can match him today, let's match him today versus three others that are easy to match in the future. Then here's a really fun thing and this is the New England Journal of Medicine article that came out this month that Eric alluded to that we did. This is the idea of a never ending altruistic-donor chain. So now scratch a lot of what I've said so far and think that there's some nice person out there who is going to just come into the exchange and say okay, I only need one kidney, I'll be fine with one, I'll give a kidney to anybody and I don't need one in return. Just one person like that. Okay? What we can do, we could take that person and start a chain in the network instead of a cycle, and this is actually a real chain that we've done over the last two years of ten people so far. There are other chains that we've started. So here an altruistic donor came in in Arizona to give this person in Arizona. That person's -- that wife's husband gave to somebody in Ohio. That daughter-mother deal. Then the mother gave to somebody in Ohio, again a mother-daughter deal this time, and so forth. And you don't have to see the whole chain, you just have to see to some point in the chain. We didn't plan this whole chain up front. We didn't have visibility to these new patients and donors. We just saw a little bit of the chain, and then at the end of a chain in our currently batch is a leftover kidney from the pair who received but didn't donate yet. That becomes what we call the bridge donor. Just a second. Bridge donor. And then in the next batch we use that bridge donor as the altruistic donor. By badge I mean we run this algorithm maybe every six weeks. And this is the gift that keeps giving, this chain potentially never ends. The only way it would end if somebody says oh, yeah I'm the scumbag, my wife got a kidney, I have second thoughts, I'm not going to give. But that -- if you do the chain atomically within the current batch, then that risk of backing out only happens with the bridge donors and you can be careful about who you make the bridge donors in the optimizations, you can put weights on different people depending on for example blood type. I might want the bridge donor to be an O blood type because that's a very flexible bridge donor for the future. Or I might want to say okay, well, this person is kind of iffy patient in the psychological tests, let me do him now and save this more stable -- more reliable person for the future and so forth. Question? >>: You said before that all the transactions have to [inaudible]. >> Tuomas Sandholm: That's why I said [inaudible]. >>: [inaudible]. >> Tuomas Sandholm: Here it only happens atomically within a batch. And the bridge donor doesn't happen atomically. The next part of the batch happens atomically again. So, you're right, there is a risk that the bridge donor will back out. But it's not as bad as backing out of a cycle. Because if somebody backs out of the cycle, it means that some other pair has lost their bargaining chip, they've lost their kidney, and they're done. They didn't get anything [inaudible] the kidney. Here no pair has lost their bargaining chip. I mean, it's still a shame that the chain is done continue, but that's all it is. >>: [inaudible] the original [inaudible] donor? [inaudible] altruistic donor change everything. >> Tuomas Sandholm: So where ->>: [inaudible] by actually going back out saying I want this kind of altruistic donor. >> Tuomas Sandholm: Well, I -- the view here is that -- first of all there even are altruistic donors. They have to go through severe psychological tests just to make sure, you know, people don't have kind of a weird moment and they give out organs. So -- but when Mike Rees from the alliance for pair donation did nationwide TV shows on this chain, we got 200 people registering into the exchange as altruistic donors within like a couple of weeks. So there's a lot of willingness out there to become an altruistic donor. And we can put all of them in the optimization. So it's not like we pick one of them. We put all of them in the optimization and then said okay, find me the best set of cycles and chains because optimizer handles a chain just like a cycle except that there's a phony edge coming back. So optimization works directly. >>: So tell me again why you can't pay money for the altruistic donor [inaudible]. >> Tuomas Sandholm: You're not allowed to pay money legally in the US and most other countries for organs. >>: Why is that? >> Tuomas Sandholm: Well, it's -- why is that? That's a good question. I mean now you're getting like Iran for example, they allow that. So it's not an international thing. Every country has different laws. Most countries think that it's immoral. Because what ends up happening richer people buy poorer people's organs. And you might argue from an efficiency perspective that that's the right thing that should happen, but now you're talking about very ethically questionable issues. So most countries take the position that that's not morally right. >>: What do you think? >> Tuomas Sandholm: I need to be agnostic. I can't take sides on that. >>: [inaudible]. >> Tuomas Sandholm: What? >>: [inaudible] not as a presenter. >> Tuomas Sandholm: Yeah, I don't know. I really don't know all of the issues involved. >>: [inaudible] think about whether or not the decision [inaudible] might not be unethical, might be just fine, but the idea is actual worked out the details of kind of the downside of doing that. [inaudible]. >> Tuomas Sandholm: There are villages in India where every male has a scar in their back because everybody has sold a kidney. It becomes so prevalent. >>: Really. >> Tuomas Sandholm: That it becomes kind of almost a moral thing that there's peer pressure that you have to do it. >>: What do they [inaudible]. >> Tuomas Sandholm: I don't think it's even legal there. But people do it anyway. And this is the reason why Iran went this direction. There was so much of it happening illegally that they felt okay, well moral or not, it's better to make it legal, make it save and except make it more fair because when it's illegal, the brokers get even a bigger fraction than the donors and when you make it legal, it kind of tilts the table a little bit in the donor's favor. But still. >>: Do you know [inaudible] in this country? >> Tuomas Sandholm: I'm sure. I'm sure. I don't know of any cases directly, but I read in the New York Times it was actually a couple of years ago, New York -what's it called, the monthly -- New York Times magazine. There was an article about how Americans can go to Turkey to do this with the Israeli surgeons and stuff like that for about $100,000. So if you're desperate, that's what people do. And this is one of these approaches that we're trying to make it not happen, that you can actually doing do this legally. Okay. You can value in the algorithm definitely not using up altruistic donors. So for an old donor you might prefer to have them in the future and you can all take it all into account in the cycle weights. Similarly, valuing different leftover kidneys. So you might prefer bridge donors of type O, you might prefer As and Bs over ABs. You might prefer people who you think are not likely to pull out and so forth. But I talked -- in this slide I talked a lot about weight. And a lot of these weights have to do with of course just immediate quality of match. But others have to do about the future. Who do we make the bridge donor or how there's matching patients and donors in the future, even without the altruistic donors? And what I found unsatisfactory is that these numbers that we used in these optimizations were kind of ad hoc. The surgeons helped us put together some numbers, but there were ad hoc and they weren't really tied to any sort of direct objective. So let me in the final part of the talk talk about the online problem. Where we automatically think about this not as a batch problem but as this online problem, dominant problem where new donors and patients and altruistic donors are coming in over time and existing patients are dying at some death rate. And think about managing this pool so instead of us depleting the pools with the best possible matches today like most of the current kidney changes do, think about keeping the pool rich enough so it -- we don't get this oversensitized population of patients in the pool and also so that we don't have to put in weights but some other system would automatically figure out what's the value of the future compared to the present. And the first observation here is that there are no good prior free online algorithms for the problem. And the first proposition that we have says that no deterministic prior free algorithm can achieve a compatible ratio better than the cycle cap divided by two. And here's a simple example. So let's say that we have this AB cycle available today but this B pair is disappearing in the next step. And then we might get this long chain L or might not. So if we take this short pair, we get two, and worst case then is the adversary is going to give us L but now we've already used up A, we can't get it, so we get this ratio L over 2. If, on the other hand, we decide to wait and not take this B, let this this P disappear, the adversary won't give us L, and we're going to get an unbounded regret. Similarly, you can prove a bound for randomized algorithms as well. Now we're in a little bit better position and we can decide with some probability B -- P will take B and one with probability one minus P we don't. We said P just to keep the adversary indifferent between bringing in the new cycle L or not and that gives us bound of two minus two divided by L. So again, you can't really get a very good competitive ratio without using priors. The good news is we have priors. We have very good knowledge about the tissue type and the blood type in the population. UNOS has all of this data. So we can use this distributional data and what we do, this is a scale, we have several different instantiations which we'll talk about in a second. At each step of the algorithm or each time step, if you will, we draw sample directories from the distribution or what different features, then we leverage our offline algorithm to pick an action, just an action, the next action to take, not the whole pool into the future, just an immediate myopic action, and we'll set the actions or cycles, not combinations of cycles. The first algorithm like this in this family is an adaptation of the regrets algorithm by Bent and Von Hendrick and Mercier and Von Hendrick [phonetic]. Here we just initialize all the cycle scores to zero using the probabilistic model we generate the scenarios into the feature, some number of scenarios, N. For each scenario we then solve the offline problem for the scenario and for the cycles in the -- that are accepted in that solution we add to the cycle a score the value of the solution of the offline problem and for the other cycles we subtract the small delta from their value. Then at the end we run another integer problem to determine a set of disjoint cycles with the maximum score and return it again using our offline algorithm. So this while we pick just one action, it's not a myopic pick, it takes into account the possible features. We prove that algorithm one is not optimal, however, the improvement idea here is to optimize the scenarios for each action separately instead of optimizing each scenario separately. That gives us algorithm two. Again it starts the same, initialize to zero is the scores, draw the sample trajectories and then we instead of solving the actual trajectory we -- we solve for each trajectory with the cycles minus the cycle C and we set the score of C to B. Its original score plus the value of this. And we do that for each scenario and for each cycle. And then again using the integer program we determine a set of vertices to our cycles with maximum score. And the final algorithm that's a stochastic online algorithm like this is called AMSA, or is really adaptation of AMSA. There's some theory that's been built now for these online algorithms that are based on these trajectories and this is notion of global anticipatory gap. And roughly speaking it means that we have a high gag if no action is pretty good across all the scenarios. And it's likely that here that's going to be the case and this analogy applies to algorithms one and two. [Inaudible] designed to really deal with problems to the large gag, so we wanted to try that as well. And what it does, it again uses a model to draw the trajectories but then it reach the trajectory as a reality, builds the mark of decision problem and solves the mark of decision problem and goes about it that way. So the experiments on the online algorithms we use the really data set with 158 pairs and 11 altruistic donors and artificial data set to a little bit more scale using the side men generator again. These had 510 person, 25 altruistic donors. The death rate in all of these experiments was set so that 12 percent survived 10 years which is the reality. There were interesting parameters and tradeoffs between them. One is a number of sample trajectories, how many trajectories we draw, the other is how many steps to we draw in each sample? We can't go infinitely deep, we have to cap that somehow. And relate to that there's a batch size. So you could think about it how often do you run your algorithm? And if you have the large overhead depth then for a given number of samples you have all this sparse coverage of the sample space. If you have a big batch size, then for a fixed number of look ahead steps you can look deeper into the feature and so forth. So there's tradeoffs. And when we benchmark against offline algorithm, we tweak the batch size for the offline algorithm also, so now we actually get something to compete against that's better than the current practice where it's not optimized. Dummy action, algorithms one in the offline algorithm can decide to wait anyway, so they don't need a dummy action but for algorithms two and three we include the possibility of a dummy action which means that in this time stack I'm not doing any transplants, I'm just going to wait, and that improved performance a little bit so I know the rest of the experiments we include the dumb they actions. And here's the bottom line. All the online algorithms outperform the offline algorithm on both data sets, except that AMSA didn't scale to the really problem size. Algorithm two performed the best, surprisingly better than AMSA, and it scaled to both problems, and we get 16.6 percent or 13.6 percent in performance improvement over the online algorithm. And this is a stead state. We can also see that the advantage starts from the get go even before static state is reached. So let me conclude. We talked about the furthest algorithm that can clear kidney exchanges optimally on a national scale. Key points were incremental problem formulation so you can actually solve the problem optimally without ever writing it down completely. Key to that was the branch of price framework but exploiting problems specific upper bounds and other techniques in several ways. It supports generalizations like weights, never ending altruistic donors, compatible pairs, list exchange and so forth. The trajectory based online algorithms leverage distributional information and they also leverage our offline algorithm in the inner loop, and then they do better than the offline algorithm. We're working with real kidney exchanges. We started working with the first one about two and a half years ago. UNOS, United Network for Organ Sharing is setting up a US wide kidney exchange and they've decided to use our -- decided to use our algorithms to run it. I'm helping them to design the exchange on a committee. Future research. One issue is cross-match failures and testing. I mentioned this coagulation test. But right now how it's dealt with, the optimizer doesn't really understand it, basically optimizer is just looking at the problem before the test and then when the test shows incompatibility, what do you do then? Do you reoptimize the whole network? Well at least at a nationwide scale that's a huge nightmare logistically and so forth. So can we somehow make robust plans with a robust cross-match failures, a mention of the short cycles help that but can we more systematically take that into account? Or can we come up with testing plans so that we would actually test the cross-matches not just on the planned transplants but for a broader set of potential transplants so that we have good backup recovery in case of failure. And the other interesting thing is more of a game theoretic thing. So normally in exchanges game theory is a big issue. Buyers will overask -- underbid and sellers will overask and so forth. Here, because we're not asking the patients anything, we're measuring all of the private information with blood tests and tissue tests, there's no game theory problem there at level of patients and donors. But there is a problem of game theory with the transplant centers. So if you are a transplant center you'll have your own pool. Would you reveal the whole pool to the exchange? Maybe you want to run your own little exchange first internal and see which transplants you can do locally and get all of the money for the transplants and then put only the riffraff that you couldn't match into the nationwide pool. So can we somehow provide incentives to transplant centers to reveal everything? And one method, a practical approach is to say okay, we somehow gonna audit them, and if they get caught of doing that, this can be hefty penalties. You could also try to do something more game theoretic. There's a possibility of results about this, by the way, but you could try to do this in the optimizer and said, okay, we gonna look at optimize every transplant pool separately, see how many operations they would have gotten and then put that in as a constraint into the nationwide optimization that every transplant center gets at least as many operations as they would have gotten operating individually. So that's kind of a fairness issue in money sharing between transplant centers. Of course any constraints you put in the global optimization is gonna be worse for the patient. Thank you. [applause]. >> Tuomas Sandholm: Any other questions or comments? >>: [inaudible]. >> Tuomas Sandholm: So we've been off and on with being online, so there's no online systems, so the kidney exchanges they run off and on, and we've been helping them on that for the last two and a half years off and on. UNOS kidney exchange there's a pilot program that's supposed to go live in September, October, and then the nationwide kidney exchange is planned to start in March 2010. >>: [inaudible]. >> Tuomas Sandholm: Could you speak up a little bit? >>: Sorry. Are there any plans to do an international chain or ->> Tuomas Sandholm: Oh, that's a great question. So right now UNOS does not have any plans to my knowledge to do an international exchange. With these individual current kidney exchanges, I know that some of them have approached foreign countries to try to put together international pools. But to my knowledge, nothing like that is running yet. But that's a very interesting issue, because then you have different laws entirely to deal with then and different constraints. I mean, religion also plays a big role in this in different countries whether it's okay to be an organ donor upon death. There's big differences between countries in cadaver donation rates. But the pools for example in India, there's a huge pool for kidney exchange. So if we could integrate the US with India that would be at least in principle very helpful. The question is well would a US person want to get kidney from a third world? I mean, if the choice is that or death or that or dialysis, probably yes. But if the choice is that versus a US kidney, maybe they'll take US kidney again depending on the level of -- the HLA match and so forth. But there's very interesting matters in that. And I think in the long run, definitely that would be the best for the patient. But that's really in the long run. >>: If you do it internationally then doing it simultaneously is even harder, because you know, when it's day here, it's night over there. >> Tuomas Sandholm: Oh, yes, that's a good comment. There's something that's weird -- there was some reason why in the US they do it in the evenings anyway and maybe it was that there's more availability of operating rooms, but I think most of these are done in the evenings anyway so you could say, okay, 6 p.m. in the US and 6 a.m. in China. >>: [inaudible] in the US, I mean the three hours between coasts. >> Tuomas Sandholm: Well, that's a -- I'm not saying it always happens at 6 p.m., but I'm just saying at -- I've heard stories that they tend to happen in the evenings for some reason. And I think it was the reason was the operating room availability. But maybe not. The thing is that you need to cooperate operating rooms to be available simultaneously with different hospitals and each one of them has a local scheduling problem for the operating rooms and other resources, so you want to find a time when it's likely that you can get all operating rooms in all hospitals. And I think that was the reason why they waited for the evening time. >>: [inaudible] kind of weird question but are there other kinds of transplants that you could exchange, let's say you need a kidney, I know somebody that can give you ->> Tuomas Sandholm: Oh, you're saying not kidneys for kidneys but kidneys for liver lobes and kidneys for lungs and stuff like that? >>: Right. >> Tuomas Sandholm: It's not happening. But you could play around with the idea like there is liver lobe donation is becoming more popular. It's still liver lobes. So basically you could take -- cut out a part of your liver and it will grow back. And furthermore, the part that you take out and transplant into somebody else, that will grow the whole rest of the liver around it. So that's -- that's something that's happening. It's much riskier than kidney exchange right now. Kidney transplant is a relatively minor operation compared to any other ->>: [inaudible] bleeds or [inaudible]. >> Tuomas Sandholm: Kidneys generally -- I'm not a surgeon so now I'm really going out of my realm here, but it's basically just snap it out and cut a couple of tubes and take it out. Liver lobes you have to actually cut the liver in part. And that's a much bigger thing. And riskier. And of course a liver easily bleeds a lot. So liver lobes something that's happening. People are doing intestines but only cadaveric, of course. Whole intestines, combinations of intestines and lungs, hearts. So there's a lot of things. But those are cadaveric, of course you can't donate the heart. There's actually Al Roth has this, a new draft of a paper where he talks about repugnant markets where repugnancy's a constraint in market design where you know well it kind of starts from kidney exchanges well, some people don't like kidney exchange, somehow it just didn't feel right to exchange organs. But, you know, when you hear this talk and talks like this you said okay, well, lives are getting saved, everybody is better off and so on and so forth. Then you go the next level, well, let's say it -- you know, you're child is in a car accident and loses both of his eyes. Would you exchange one of your eyes so that you're child could get an eye from somebody else. Would that be right? Well, what if your child has a heart problem and he's going to die. Would you be allowed to give your heart to somebody else so your child can survive? So ramps up pretty quickly if you start to think about all of the possibilities. >>: So there's no -- there's no plan of doing a sort of inner ->> Tuomas Sandholm: There is no plan to do interorgan and to my knowledge there isn't a plan for exchange for any other organ than kidney. But that's the world as we stand today. Things may change in the future of course. Liver lopes is a particularly interesting thing if you could really make it safe because again that's one of those things where you can cut out the lobe and live fine with what you have. That's the nice -- if you think about the Hypocratic oath that the doctor says you know I'm not going to harm anybody, I'm not going to harm Eric even a little bit if I could help you a lot by doing so. So Hypocratic oath is completely against efficiency. Efficiency will say we're going to sacrifice whatever so as to maximize overall utility. So those are at worse. Here you could say maybe the doctors are violating a little bit a Hypocratic oath. Well, Eric really would be better off with two kidneys. If he had an accident and pierced one of his kidney, it would be really nice to have the other one as backup. And so that's already starting to push the boundary. >>: [inaudible] is just an ethical issue. >> Tuomas Sandholm: Yeah. There's been papers written just on the ethical issues and I would argue that things that have been published on that haven't really even touched some of the issues that we just talked about. So there's a whole ethical issue here and the practice is moving forward at a very rapid pace. This is going to be happening, these algorithms are going to be automatically striking these tradeoffs between different forms of efficiency and different forms of fairness and it's very exciting. We could say, okay, well, shouldn't we understand all of the ethics before we let algorithms loose on this problem? Well, the transplant surgeon who is manually making those matches today, he's already making those tradeoffs, he just doesn't know it. >>: And so whose going to be explaining the parameters? >> Tuomas Sandholm: Well, that's what -- I'm trying to get away from these ad hoc weights. So in several ways. One is to try to tie the value of a cycle to an actual survival and survival in years predicted based on donor and patient attributes. So that's kind of a machine learning box that I was alluding to instead of having a doctor put in ad hoc weights let's use some really data and machine learning to predict what the weights should be. Another example is that instead of having those weights on who we should match now versus keep for the future, we have these online algorithms that don't require any such weights. They just do these trajectories and based on these trajectories which are drawn off of the real distribution of blood type and tissue type and so forth, you can actually figure out what is the best balance of who to match now versus who to save for the future without having to have those ad hoc weights. So I'm all about trying to get away from ad hoc weights and trying to instead come up with answers algorithmically. >> Eric Horvitz: All right. Well, we'll stop there. >> Tuomas Sandholm: Yes. Thank you. [applause]