## 5 Conclusions  
There are some well-known generalizations of network flows where stability is an interesting property. Luckily, some of these can be handled with the help of the construction we used to prove Theorem 2. If our \"network\" has unoriented edges, then the usual trick helps: one substitutes each edge by two oppositely oriented arcs, each having the capacity of the corresponding edge. If some vertex, \(v\), of the network has a certain throughput capacity, \(c(v)\), then we can handle this by reducing the capacity of both vertices, \(v^{out}\) and \(v^{in}\), from \(q(v)\) to \(c(v)\). The third usual generalization is where the network has several source and sink nodes. The usual trick with a supersource and supersink works in this case, as well, but there is an alternative approach. Namely, the problem with several terminals can be regarded as a problem where there exist more than two vertices that do not obey [PERSON]'s law. As we have seen in the proof of Theorem 2, such vertices, \(v\), can be modeled in such a way that in the graph, \(G_{D}\), edges \(v^{out}v^{in}\) and \(v^{in}v^{out}\) are not present. Any stable allocation of this sparser, \(G_{D}\), determines a stable flow with more terminals. However, with this approach, it is possible that we have a flow from some \"source\" node to another \"source\" node. This weirdness can actually happen in our basic flow model, as well: a stable flow might go from \(t\) to \(s\) and have a negative value. Can we avoid this? The answer is yes (up to some extent): one has to introduce an edge, \(s^{in}s^{out}\), for each \"source\" node, \(s\), and an edge, \(t^{out}t^{in}\), for each \"sink\" node, \(t\). By this, we can make sure that each source node sends more (or an equal amount of) flow as the amount it receives and no target node receives less flow than the amount it sends. Summarizing the last observations, we can say that if both edges, \(v^{out}v^{in}\) and \(v^{in}v^{out}\), are present, then vertex \(v\) obeys [PERSON]'s law; if no edge is present, then [PERSON]'s law is not required for \(v\). If there is exactly one of these edges belonging to \(G_{D}\), then depending on which edge is the one, \(v\) becomes a net sender or a net receiver of flow. Circulation is a well-known notion closely related to flows. Roughly speaking, it is a flow without terminals; that is, beyond the capacity constraint, [PERSON]'s law has to hold for each vertex. Obviously, our approach can handle the stable circulation problem, if we have both parallel edges between \(v^{out}\) and \(v^{in}\) for each vertex, \(v\), of \(D\). However, it turns out that zero is a stable circulation, and this is somehow disturbing. It makes more sense to look for a completely stable circulation that has no blocking walk and no blocking cycle. However, just like for flows, a completely stable circulation might not exist. A natural problem is to find an efficient algorithm for constructing a completely stable circulation (or flow) in a network. Another direction of possible generalizations of stable flows is that we allow more complex preferences, e.g., ties in the preference lists. As the stable flow model is a genuine generalization of stable allocations that generalize stable matchings, each negative complexity result is valid for flows, as well. However, it is interesting to observe that the special exchange economy of housing markets can be formulated in our flow model by allowing indifferences. If each vertex of \(D\) represents a player, each arc and each vertex has unit capacity, and arc \(uv\) means that player \(u\) prefers the house of player \(v\) to her own one. Then, we have preferences only on the arcs leaving \(v\), and \(v\) is indifferent to the arcs entering \(v\). With these settings, core allocations of the housing market correspond bijectively to completely stable circulations. This indicates that the top trading cycles algorithm of [PERSON] might be useful to handle some stable flow problems where indifferences are present.