Efficient and secure authenticated key exchange using weak passwords Abstract. Mutual authentication and authenticated key exchange are fundamental techniques for enabling secure communication over public, insecure networks. It is well known how to design secure protocols for achieving these goals when parties share high-entropy cryptographic keys in advance of the authentication stage. Unfortunately, it is much more common for users to share weak, low-entropy passwords which furthermore may be chosen from a known space of possibilities (say, a dictionary of English words). In this case, the problem becomes much more difficult as one must ensure that protocols are immune to off-line dictionary attacks in which an adversary exhaustively enumerates all possible passwords in an attempt to determine the correct one.We propose a 3-round protocol for password-only authenticated key exchange, and provide a rigorous proof of security for our protocol based on the decisional Diffie-Hellman assumption. The protocol assumes only public parameters-specifically, a "common reference string"-which can be "hardcoded" into an implementation of the protocol; in particular, and in contrast to some previous work, our protocol does not require either party to pre-share a public key. The protocol is also remarkably The Work of J. Katz was done in part while at Columbia University and Telcordia Technologies. The work of R. Ostrovsky was done in part while at Telcordia Technologies. J. Katz was supported in part by NSF grant #0627306. R. Ostrovsky was supported in part by a gift from Teradata, an Intel equipment grant, NSF grant #0430254, an OKAWA research award, the B. John Garrick Foundation, and a Xerox Innovation Group award. Author's address: J. Katz, Department of Computer Science, University of Maryland, College Park, MD 20742, e-mail: jkatz@umd.edu; R. Ostrovsky, Department of Computer Science, UCLA, Los Angeles, CA 90095-1596, e-mail: rafail@cs.ucla.edu; M. Yung, Department of Computer Science, Columbia University and Google, Inc., 76 Ninth Avenue, 4th Floor, New York, NY 10011; e-mail: moti@cs.columbia.edu. Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies show this notice on the first page or initial screen of a display along with the full citation. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers, to redistribute to lists, or to use any component of this work in other works requires prior specific permission and/or a fee. Permissions may be requested from Publications Dept., ACM, Inc., 2 Penn Plaza, Suite 701, New York, NY 10121-0701 USA, fax +1 ( efficient, requiring computation only (roughly) 4 times greater than "classical" Diffie-Hellman key exchange that provides no authentication at all. Ours is the first protocol for password-only authentication that is both practical and provably-secure using standard cryptographic assumptions. Categories and Subject Protocols for mutual authentication of two parties and generation of a cryptographically-strong shared key between them (authenticated key exchange) are fundamental for achieving secure communication over public, insecure networks. Protocols for mutual authentication are necessary because one needs to know "with whom one is communicating", while key-exchange protocols are required because private-key encryption schemes and message authentication codes rely on shared cryptographic keys that must be refreshed periodically. Higher-level protocols are frequently developed and analyzed assuming the existence of "secure channels" between all parties, yet this assumption cannot be realized without a secure mechanism for implementing such channels using previously-shared information.. The importance of secure key exchange was recognized as early as the seminal work of Diffie and Hellman [1976] , which shows how two parties can share a cryptographically-strong key that remains hidden from any passive eavesdropper. The Diffie-Hellman protocol, however, does not provide any form of authentication (i.e., a guarantee that the intended partners are sharing the key with each other), and in particular it does not protect against an active adversary who may inject messages, impersonate one (or both) of the parties, or otherwise control the communication in the network. Achieving any form of authentication inherently requires some information to be shared between the communicating parties in advance of the authentication stage. Historically, authentication protocols were designed under the assumption that the shared information takes the form of high-entropy cryptographic keys: either a secret key that can be used for symmetric-key encryption or message authentication, or public keys (exchanged by the parties, while the corresponding private keys are kept secret) which can be used for public-key encryption or digital signatures. Extensive attention has been given to the problem of designing two-party authentication and authenticated key-exchange protocols under such assumptions, and a number of provably-secure protocols relying on shared cryptographic keys are known [Bird et al. 1993; Diffie et al. 1992; Bellare and Rogaway 1994; Bellare et al. 1998; Shoup 1999; Krawczyk 2001, 2002] .. Protocols that assume cryptographically strong pre-shared information simply do not apply-or are trivially seen to be insecure-when the parties share a "short", low-entropy password instead. As one trivial example to indicate the difficulties that arise, consider the simple (unidirectional) authentication protocol in which one party sends a random nonce r and the other party replies with y = H ( pw, r ), where pw represents the shared password and H is a cryptographic hash function. While this protocol can be proven secure (if H is modeled as a random oracle) when pw has high entropy, it is completely insecure when the entropy of pw is small. Indeed, in the latter case a passive adversary who obtains a single transcript (r, y) can recover the password by mounting an off-line dictionary attack, trying all values of pw until one satisfying y = H ( pw , r ) is found. Other naïve attempts at "bootstrapping" a cryptographic key from a weak password can also be shown to be insecure; as an example, using pw as a "seed" to generate a public key VK for a secure signature scheme also enables an off-line dictionary attack if VK is sent in the clear, or even if a signature is sent in the clear (as an adversary can enumerate all potential public keys and attempt to verify the signature with respect to each of them). Note that "scrambling" pw by, say, hashing it will also be of no help, as the entropy of the hashed output cannot be greater than the entropy of its input.. The above represents a serious problem in practice, as it is well known that most users choose passwords poorly [Morris and Thompson 1979; Klein 1990; Spafford 1992; Wu 1999] . Unfortunately, it has proven difficult to design passwordbased protocols offering rigorous security guarantees, and there is a long history of protocols for this setting being proposed and subsequently broken (cf. the attacks shown in Bellovin and Merritt [1992] , Patel [1997] , and MacKenzie et al. [2000] ). Theoretical progress toward developing provably-secure solutions for the passwordbased setting has been slow, with the first formal models and proofs of security appearing only recently (see below). The problem is difficult in part because, as we have mentioned above, it requires "bootstrapping" from a weak shared secret to a strong one; furthermore, due to the strong adversarial model considered (cf. Sections 2.1 and 2.2), it is not even a priori clear that a solution is possible.. Initial consideration of password-based authentication assumed a "hybrid" model in which the client stores the server's public key in addition to sharing a password with the server. In this setting, Lomas et al. [1989] and Gong et al. [1993] were the first to present authentication protocols with heuristic resistance to off-line dictionary attacks. Formal definitions and rigorous proofs of security in this setting were first given by Halevi and Krawczyk [1999] ; see also Boyarsky [1999] .. The above-described "hybrid" setting suffers from the disadvantage that the client must store the server's public key (and if the client will need to authenticate to multiple servers, the client must store multiple public keys). In some sense, this obviates the reason for considering password-based protocols in the first place: namely, that human users cannot remember or securely store long, high-entropy keys. This drawback has motivated research on password-only protocols in which the client needs to remember only a (short) password. Bellovin and Merritt [1992] were the first to consider this, more challenging, setting: they show a number of attacks that can arise, and introduce a set of protocols for so-called "encrypted key exchange" (EKE) that have formed the basis for much future work in this area [Bellovin and Merritt 1993; Gong 1995; Steiner et al. 1995; Jablon 1997; Lucks 1997; Wu 1998 ]. Each of the works just mentioned, however, provides only informal security arguments for the protocols they propose; in fact, attacks against many of these protocols have been shown [Patel 1997; MacKenzie et al. 2000] , emphasizing the need for rigorous proofs of security in a formal, well-defined model.. Formal models of security for the password-only setting were given independently by Bellare et al. [2000] (building on Rogaway [1994, 1995] and Lucks [1997] ) and Boyko, et al. [2000] and MacKenzie et al. [2000] (building on Bellare et al. [1998] and Shoup [1999] ). Bellare et al. [2000] also present a proof of security for the two-flow protocol at the "core" of Diffie-Hellman-based EKE in the ideal cipher model, 1 while Boyko et al. [2000] introduce new RSA-and DiffieHellman-based protocols, and prove their security in the random oracle model. 2 Subsequently, Goldreich and Lindell [2006] introduced a different model of security for this setting and showed the first far, only -protocol for password-only key exchange which is provably secure under standard cryptographic assumptions (and no ideal ciphers/random oracles); their protocol does not require any additional setup beyond the passwords shared by the parties. This work is remarkable in that it shows that password-based authentication is possible under very weak assumptions. On the other hand, their protocol does not lead to a practical solution as it requires techniques from generic two-party secure computation (making their protocol computationally inefficient) and concurrent zero-knowledge (making the round-complexity of their protocol prohibitive). Thus, their protocol should best be viewed as a feasibility result that does not settle the question of whether an efficient and practical solution is possible. Note that efficiency is particularly important in this setting, which is motivated by inherently practical considerations: that is, human users' inability to remember long keys. We also remark that the GoldreichLindell protocol, unlike the protocol presented here, does not tolerate concurrent executions of the protocol by the same party.. 1.1. OUR CONTRIBUTIONS. As the above discussion indicates, previous protocols for password-only key exchange can be classified as either (1) having no rigorous proof of security; (2) having a rigorous proof of security based on standard cryptographic assumptions, but impractical; or (3) having a rigorous proof of security in an idealized model (such as the ideal cipher or random oracle models). We have already discussed why proofs of security are crucial in this setting, and why developing practical solutions to the problem of password-only key exchange is of great importance. As for the third class of solutions, it is widely recognized (see, e.g., Bellare and Rogaway [1993] , Canetti et al. [2004] , and Katz and Lindell [2007] ) that proofs of security in the various idealized models discussed earlier are useful as a "sanity check" insofar as they lend a measure of confidence to protocols whose security would otherwise only be heuristic, however, they do not provide an "iron-clad" guarantee of security in the real world. As an example [Canetti et al. 2004 ], a signature scheme is known which can be proven secure in these idealized models but for which any instantiation of the scheme in the real world (i.e., where the random oracle is instantiated by a cryptographic hash function) is insecure. Thus, proofs of security in idealized models are at best unsatisfying.. We present here the first protocol for password-only key exchange which is both practical and provably-secure under standard cryptographic assumptions. Security is proven in the model of Bellare et al. [2000] based on the decisional DiffieHellman assumption [Diffie and Hellman 1976] , a well-studied cryptographic assumption used in constructing and analyzing previous protocols for authenticated key-exchange (in the password-based setting and otherwise). Our protocol is remarkably efficient even when compared to the original key-exchange protocol of Diffie and Hellman-which, as we have noted, provides no authentication at all. Our protocol uses only three rounds of communication, and requires computation only (roughly) four times that of the Diffie-Hellman scheme.. Our protocol assumes public parameters available to all parties in the network. These parameters are assumed to be generated in a trusted manner by, say, the same entity who writes and deploys the software implementing the protocol. (This entity is anyway being trusted to implement the protocol correctly, and not to embed any malware or covert channels into the implementation.) The assumption of public parameters is significantly weaker-in both a theoretical and practical sense-than the "hybrid" model discussed earlier in which clients are required to store a public key for each server with whom they wish to communicate or, alternatively, to store the public key of a certificate authority (CA) who certifies servers' public keys. Advantages of using public parameters as opposed to public keys include: -The parameters required by our protocol can be generated in such a way that there is no "trapdoor" information associated with them. This, in turn, implies that there is no "master" secret key whose compromise would render the entire system insecure. -Avoiding the use of public keys avoids the need to handle revocation, and also eliminates the need to transmit certificates and verify certificate chains. -Once the public parameters are established, any client and server who share a password can use the protocol without having to obtain a certificate from a CA.. As an additional contribution, we propose a formal definition of forward secrecy for password-only key-exchange protocols that simplifies and unifies previous definitional work in this area. Roughly speaking, forward secrecy guarantees that a protocol remains secure even against an adversary who may obtain some clients' passwords and who may also change the passwords stored at various servers. It also guarantees protection against malicious clients (who may choose "bad" passwords in an attempt to learn other users' passwords). As an indication of what can go wrong in this stronger adversarial model, we show that a seemingly innocuous change to our protocol allows for an explicit attack by such an adversary. We then prove, however, that our protocol as specified does indeed achieve forward secrecy.. 1.2. SUBSEQUENT PROGRESS. Due in large part to the practical significance and importance of password-based authentication, active research continues in this area. We only highlight those results most related to what is shown here. Perhaps most interesting in this regard is the work of Gennaro and Lindell [2006] , who make explicit the intuition underlying the core ideas of our construction and also present and prove secure an abstraction (as well as a generalization) of the framework we use; as corollaries of their work they obtain efficient protocols based on alternative number-theoretic assumptions. Nguyen and Vadhan [2008] show a simpler version of the Goldreich-Lindell protocol which achieves a weaker level of security than that considered in either [Goldreich and Lindell 2006] or here. Though their protocol is somewhat more efficient than that of Goldreich and Lindell [2006] , it relies on generic two-party secure computation and is therefore still not nearly efficient enough to be used in practice. Jiang and Gong [2004] show an efficient protocol for password-based key exchange based on the decisional Diffie-Hellman assumption; the main advantage of their protocol in comparison to the one presented here is that their protocol achieves explicit mutual authentication in three rounds (whereas the protocol shown here would require an additional, fourth round). A stronger definition of security for password-based key exchange has been proposed [Canetti et al. 2005 ]; a protocol satisfying that stronger definition, building on the work here and in Gennaro and Lindell [2006] , is shown there as well. The above (in addition to Goldreich and Lindell [2006] and the present work) are the only schemes currently known with proofs of security under standard cryptographic assumptions.. More efficient variants of our protocol are suggested in Canetti et al. [2005] , Katz et al. [2005] , and Gennaro [2008] . Threshold variants of our protocol (in which the password is shared across multiple servers to defend against server compromise) have also been suggested [Di Raimondo and Gennaro 2003; Katz et al. 2005 ].

O O O O O O O O B O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O B O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O B O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O B O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O B O O O O O O O O O O O O O O O B O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Automated detection of persistent kernel control-flow attacks This paper presents a new approach to dynamically monitoring operating system kernel integrity, based on a property called state-based control-flow integrity (SBCFI). Violations of SBCFI signal a persistent, unexpected modification of the kernel's control-flow graph. We performed a thorough analysis of 25 Linux rootkits and found that 24 (96%) employ persistent control-flow modifications; an informal study of Windows rootkits yielded similar results. We have implemented SBCFI enforcement as part of the Xen and VMware virtual machine monitors. Our implementation detected all the control-flow modifying rootkits we could install, while imposing unnoticeable overhead for both a typical web server workload and CPU-intensive workloads when operating at 10 second intervals. This paper has presented a new approach to dynamically monitoring operating system kernel integrity based on a property called state-based control-flow integrity (SBCFI), an approximation of Abadi et al.'s Control-Flow Integrity property. Violations of SBCFI indicate a persistent, unauthorized modification of the kernel's control-flow graph, which we have shown to be common in kernel attacks. We have implemented a virtual machine monitor-based SBCFI monitor for the Linux kernel. We demonstrated experimentally that our monitor can successfully detect a substantial number of real kernel attacks (17 of the 18 we injected in our test platform) with no false positives and low overhead, on average as compared to the VMM. We believe our SBCFI monitor is the most effective kernel integrity monitor to appear in the literature to date. In future research, we plan to explore other properties that consider attacker incentives, to target rootkits that SBCFI would fail to detect. Our experiments show that the overhead of SBCFI on its own is quite small, and that the primary cause of overhead is due to the VMM itself. We do not believe this reflects poorly on SBCFI itself for two reasons.. First, the VMM overhead is a function of the VMM we used, not of VMM technology in general. As described previously, we chose VMMs and configurations in our test platform to maximize threat testing rather than performance. We ran Xen in its fully virtualized (as opposed to paravirtualized) mode to support an unmodified kernel on which we could use unmodified attacks. Xen can achieve much better performance for fully virtualized hosts with the use of special drivers (around 2% of native on average [37] ), and there is nothing that precludes SBCFI monitoring of either paravirtualized or fully virtualized hosts using these drivers. Indeed, experiments with our VMware workstation platform show much-reduced overheads compared to Xen for the web benchmark, with similar SBCFI overheads. Our VMware implementation performance could be improved yet further by using VMware's high-performance ESX Server (if provided with the appropriate APIs). The increasing deployment of high-performance virtualization solutions [4] provides further evidence that VMMs can have reasonable performance when compared to raw hardware.. Second, SBCFI could be implemented without a VMM, e.g., as a separate card that accesses memory directly (in which case, however, the monitor would not have access to the machine's registers). Petroni et al.'s Copilot system [23] performs integrity monitoring in this way, and for comparable monitoring rates they induce similarly low overheads on the target kernel.. In short, our experiments show that SBCFI is effective and practical, detecting all of the kernel attacks we could install on our platform while imposing minimal impact on top of the VMM. From these results we make two observations. First, the overhead incurred by running the VMM is significant, almost 40% for this test. Second, SBCFI adds no overhead in all configurations; performance actually improves. At this time, we cannot account for the improvement, but given the complexity of modern machines and the susceptibility of performance to change drastically following minor changes, we are not surprised. Possible contributing factors include the interaction of multiple schedulers (VMM and guest kernel) and the system's complex memory hierarchy. Table 4 shows the results of the SPECCPU2006 tests. Note that our SPECCPU2006 results were performed using a newer version of Xen, to which we ported our monitor after performing the networking benchmarks. All other aspects of the system were unchanged. The results listed in the table are organized by workload. Within each workload, the left column indicates which configuration was under test. The second column shows the median time in seconds for three runs of the workload in that configuration. The third and fourth columns show overhead relative to the raw hardware and VMM-only configurations respectively.. While performing our Xen CPU experiments, we encountered unexpected performance degradation midway through all of our tests (both with and without SBCFI). SPEC-CPU2006 executes each workload sequentially (i.e., workload1, workload2, ... workload12). This sequence is repeated three times and the median time for each workload is used for comparison. We found that the performance of later iterations degraded, sometimes dramatically. Af- There is a growing body of work in the area of kernel integrity monitoring related to monitoring mechanisms, detection algorithms, and advanced threats. Garfinkel et al. first proposed using a virtual machine monitor to implement a protected system integrity monitor, including invariantbased kernel protection [14] . Their Livewire system is capable of verifying the kernel's text regions, looking for specific types of data attacks that can be detected by querying the system at different levels, and verifying static function pointer tables (e.g., the system call table). Our implementation borrows their VMM-based mechanism but enforces a far more comprehensive kernel integrity policy with SBCFI.. Zhang et al. [38] , followed by Petroni et al. [23] propose to deploy a kernel monitor on a trusted piece of hardware, such as a PCI add-in card. While add-in hardware does not generally have full access to the CPU's state (most notably its registers), it enjoys much-improved performance over VMMbased monitoring and can be deployed in nearly any system. While we have not done so, SBCFI could be implemented using trusted hardware.. Seshadri et al. propose Pioneer, a technique for running trusted software on an untrusted system in a verifiable way ("verifiable code execution") [29] . Unlike attestation-based techniques [18, 13, 30, 27, 28, 31] , which measure code and data at load time, Pioneer is capable of running arbitrary procedures in a trusted manner. The authors demonstrated this capability by implementing a runtime kernel integrity monitor and proving that it could detect real-world attacks by verifying immutable text and data. While currently impractical for operational systems (e.g., it requires disabling interrupts while running the verification procedure) verifiable code execution could be a viable future platform for enforcing SBCFI.. Grizzard proposes to use a VMM to monitor the kernel's execution and validate its control flow [15] . The system works by rewriting the target kernel to trap all dynamic branches into the VMM before they are performed. The control-flow monitor then verifies that the branch is consistent with the kernel's CFG, determined through prior training runs. Though he does not specifically describe CFI, Grizzard's implementation effectively enforces CFI for the OS kernel. The clear advantage is that, by enforcing true CFI, all violations of the CFG, even those that are transient, can be detected. The primary disadvantage of this approach is the incurred overhead and the challenges facing the reduction of that overhead. For the lmbench synthetic benchmark, Grizzard reports an average of 30% performance penalty (worst case 74%) on top of the VMM's existing overhead. Another challenge is how to handle new kernel modules, particularly since the CFG is obtained via training.. Litty and Lie also propose a VMM-based system, called Manitou, for validating the executing code of both user applications and the kernel within a guest VM [20] . The VMM maintains a list of cryptographic hashes of the in-memory representations of application and kernel-level code pages that may be run within the VM. By default, the VMM sets all guest VM pages as non-executable, using hardware support only recently available on the x86. Attempts to execute such pages fault into the VMM, which will set the execute bit and permit execution if the offending page matches one in its trusted list (further logic is used to prevent subsequent modifications).. Manitou's use of execute bits prevents unauthorized code from ever executing-a stronger guarantee than SBCFI. On the other hand, the approach, as proposed, only enforces that valid code pages are executed, not that execution proceeds according to a valid CFG; this is similar to the first validation option presented in Section 3.2.4, and will miss at least some "jump-to-libc"-style attacks, even persistent ones. Manitou's reliance on page faulting requires a VMM-based implementation; SBCFI can be implemented using a PCI card or other external device for greater tamper-resistance of the monitor. As a possible inhibitor to practical deployment, Manitou's use of execute bits prevent its operating in an "audit only" mode in which execution may proceed despite monitor warnings. This facilitates a trivial denial of service by an attacker that is able to modify on-disk executables. Finally, overhead is incurred on every change to executable content, such as during normal OS demand-paging. Indeed, the approach has yet to be thoroughly studied on real systems, and so the details of a practical implementation and its overhead are as yet unknown.. The commercial and applied security communities are also interested in kernel integrity and rootkit detection (examples include [19, 8, 12, 26] ). Existing tools look for specific signs of compromise within the system by verifying invariants of low-level data structures, by observing system API behavior for inconsistencies, or both. Some tools enforce control-flow properties for a small subset of kernel text and data. SBCFI can be viewed as a generalization of these techniques that provides far more complete protection. For example, a number of recent tools verify specific kernel function pointers, such as those found in well-known jump tables and kernel subsystems (e.g., the virtual file system) [19] . As a result, improvising attackers have turned to making modifications deeper within the system, finding function pointers and code not verified by current tools [2] . SBCFI removes this avenue from the attacker by checking a much larger, systematically-determined set of function pointers. We conclude that SBCFI is the most effective kernel integrity monitor to date: it is practical and efficient enough to use on real systems, but detects far more attacks without a priori knowledge of the specific changes an attacker might make.. As an alternative or complement to dynamic monitoring, the kernel's vulnerability to attack can be reduced by using static analysis and special compilation. Deputy [9, 39] is a compiler and annotation system for C with which programmers can enforce partial memory safety (a garbage collector is required for complete protection), thereby ensuring attackers cannot overrun buffers or perform similar attacks to inject illicit functionality into the kernel in the first place. Related systems include Cyclone [17] and CCured [22] , but both of these require representation-modifying compilation (e.g., to introduce so-called "fat" pointers). All three systems have been used to write kernel components [39, 10, 34] , but to date none has proven practical for a complete kernel. We observe that some of Deputy's annotations would be useful in our SBCFI implementation, though we do not require annotations on or within functions, and would not require special compilation.. While the above systems operate at the source level, the program's binary can be rewritten to insert integrity-protecting checks that occur during execution. Abadi et al. implement CFI enforcement in this way [1] . Their implementation is an instance of a general technique called in-line reference monitoring (IRM) that can be used to enforce a range of policies [11, 36] . IRMs typically rely on control-flow and other restrictions to guarantee that their checks are not circumvented (e.g., jumping to code that executes immediately after the check). These restrictions can be difficult to enforce within the kernel, as described in Section 2.1. To evaluate the usefulness of our approach, we implemented a state-based CFI monitor for the Linux kernel. To protect it from tampering, the kernel monitor operates separately from the target kernel being monitored, using a virtual machine monitor (VMM) [14] . We have developed monitors based on both the Xen [5] and VMware [35] VMMs. Figure 1 illustrates the Xen implementation. In this configuration, the VMM runs on top of the bare metal and supports two virtual machines, one for the monitor and one for the target. A process in the monitor VM performs the SBCFI checking of the target, calling into the VMM to access to the target VM's memory and registers. The VMware implementation runs a single VM containing the target kernel, with the VMM itself running as a process within a host operating system. The SBCFI monitoring process likewise

O O O O B O O O O O O O O O O O O O B B O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B B O O O O O O O B O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O B O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O O O O O B O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O B O O O B O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B B O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O B O O O O B O O O O O O B O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O


Multi-objective and multi-constrained non-additive shortest path problems Shortest path problems appear as subproblems in numerous optimization problems. In most papers concerning multiple objective shortest path problems, additivity of the objective is a de-facto assumption, but in many real-life situations objectives and criteria, can be non-additive. The purpose of this paper is to give a general framework for dominance tests for problems involving a number of non-additive criteria. These dominance tests can help eliminate paths in a dynamic programming framework when using multiple objectives. Results on real-life multi-objective problems containing non-additive criteria are reported. We show that in many cases the framework can be used to efficiently reduce the number of generated paths. The shortest path problem can be formulated on a directed graph G = (V, E) where V is a finite set of vertices and E is a finite set of edges. The problem is to find a shortest path between a source s ∈ V and a destination t ∈ V . In the multi-objective shortest path problem there are r criteria. An edge e ij ∈ E from vertex i ∈ V to vertex j ∈ V has associated values c k ij , k ∈ {1, ..., r} for each criterion k = 1, . . . , r. In order to have a well-defined problem it is assumed that there are no negative cycles for the criteria being minimized, or positive cycles for the criteria being maximized.. The general additive multi-objective shortest path problem with positive costs c ij on the edges, and an additive objective function for each criterion, can be described by the following integer model (Martins [18] . e ij ∈ {0, 1} ∀(i, j) ∈ E. Constraint (2) states that there must be exactly one edge leaving s that is not part of a cycle. Constraint (3) states that there must be exactly one edge entering t that is not on a cycle. Constraint (4) is the ordinary flow conservation constraint. The solution z is an r vector which contains the values of the r objective functions for the path.. In real-life problems the objective functions may be non-additive and they may be functions of several criteria. In general the objective function has the following form: minimize : z = C 1 (P), . . . , C r (P) (6) where P is a path {s, . . . , t} and C 1 , . . . , C r are cost functions which for a given path P return a real number. We call this the value vector. A solution to the above problem is a set of all Pareto optimal paths. A path P is Pareto optimal if there is no other path P ′ between the same two vertices which is better or equal on all entries of the value vector and where at least one entry is better. The solution set where there is exactly one path for each Pareto optimal value vector is called the minimal complete set of Pareto optimal solutions. Shortest path problems are among the most well-studied problems [1] , however, results concerning multi-criteria problems are rare. This may be due to the fact that the monotonicity assumption of dynamic programming seldom holds for these problems. In [4] Carraway et al. describe monotonicity as the property of objectives preserving preferences for partial solutions in the dynamic programming recursion. This is not to be confused with non-decreasing or nonincreasing functions. In shortest path problems the monotonicity criterion means that if P is a shortest path then the subpaths of P must also be shortest paths. For real life multi-criteria problems monotonicity only holds for special cases.. One of the reasons for the recent interest in multi-objective optimization is that optimization is being applied in public services and business applications. Therefore research in multi-objective shortest paths and attempts to circumvent the monotonicity assumption is of immediate interest.. Hansen [10] presented solution methods to monotone bicriteria and biobjective path problems using a label setting algorithm. Martins [18] generalized the label setting algorithm to an arbitrary number of objectives, however, monotonicity was still assumed. Brumbaugh-Smith and Shier [3] presented a label correcting algorithm to the multi-objective problem under the monotonicity assumption. As Ehrgott and Gandibleux mention [8] , these problems were not extensively researched before the nineties. Several recent papers discuss approximation algorithms such as the FPTAS outlined by Tsaggouris and Zaroliagis [25] . For the exact solution methods Tsaggouris and Zaroliagis studied nonadditive paths with a single objective [24] . The objective is the sum of several criteria weighted by linear or non-linear coefficients. An early paper by Lengauer and Theune [17] mentions the problem of non-monotone cost structures with two criteria and shows that by changing the domination criteria the problems can be solved by using a standard shortest path algorithm such as Dijkstra's. Another paper considering a non-additive weighted objective is Carraway et al. [4] where the distance is minimized, and the probability of successfully reaching the destination is maximized. We will later show that both the probability and the distance criteria are monotone even though the sum of the two is not. It is shown in Carraway et al. [4] that it can be difficult to determine whether a multicriteria objective function is monotone. To circumvent the problem of not satisfying the monotonicity assumption Carraway et al. [4] introduced the concept of generalized dynamic programming, and presented a framework for solving multi-criteria shortest path problems. The framework, however, leaves it to the concrete application to define a local preference relation, that can be used to remove dominated states in the dynamic programming recursion. In this paper we present a number of such preference relations for the listed criteria functions. Moreover we give a general framework for how to define a local preference relation for non-additive objectives with certain general properties.. The contribution of this paper is to present a number of different criteria functions motivated by real-life applications and to develop an algorithm which finds all Pareto optimal solutions for a multi-objective shortest path problem. We present a general framework for dominance tests with all the presented criteria functions f and report computational experiments on a reallife instance with multiple criteria (addition, maximization, multiplication). Finding all Paretooptimal solutions to a multi-objective shortest path problem has several similarities with the solution of multi-constrained shortest-path problems [6, 9, 13, 14, 15, 21, 26] . The techniques developed in this paper can therefore be applied to several variants of multi-constrained shortestpath problems with non-additive constraints.. The paper differs from previous work as follows: Müller-Hannemann and Schnee [19] solve the nonadditive price problem by generally relaxing the Pareto optimality. The algorithm by Carraway et al. [4] only determines the minimal complete set of the Pareto optimal paths, and therefore does not find all Pareto optimal paths. Carraway uses a function u which maps all criteria to a real number and thereby only has one objective function. His framework does not specify how the dominance function should be implemented, but leaves it open to the concrete application. Irnich and Villeneuve [15] presented an algorithm for finding all Pareto-optimal solutions to a resource constrained shortest path problem with k-cycle eliminations. The considered (constrained and unconstrained) resources are all additive.. In the following Section 6.1, we present a number of multi-objective shortest path problems encountered in practice. Next, in Section 3, we formally define the set of Pareto optimal solutions and the corresponding dominance criterion. In Section 4, we present the fundamental dynamic programming algorithm used to solve the multi-objective shortest path problem for various cost functions. Section 5 provides a number of dominance rules for various cost functions that can be used to prune labels in a dynamic programming algorithm. Various monotone as well as nonmonotone cost functions are considered. In Section 6, we return to the problems considered in Section 6.1 and discuss how the framework developed can be used to determine all Paretooptimal solutions. Finally, Section 7 reports on computational experiments on real-life data from a shipping company. The paper concludes in Section 8. This paper has presented some general techniques to restrict the subpaths that need to be investigated in a dynamic programming algorithm, when solving shortest path problems with several non-additive functions. The dynamic programming method for the shortest path problem is simple and easy to adjust when the complicated cost functions that arise in real-life applications are encountered. The domination criteria presented in the theorems can, as shown in Section 6, be used on different real-life applications. However it should be noted that there are still many non-additive criteria and objectives not covered by the theorems presented in this article.. Based on the experimental results we may conclude that the tightened domination method significantly lowers the number of labels generated for each problem. Using better data structures which make it possible to quickly test for domination may further improve the running times.. Being able to handle non-additive objectives, the shortest path algorithms can more widely be applied to real-life problems. We believe that the tightened domination criteria given in this paper can be a tool box for others when defining such criteria for other real-life problems. Our method is a contribution in the process of optimizing more and more real-life problems and thereby using our resources optimally and minimizing waste both in the literal and metaphorical sense.. Shortest path problems appear as subproblems in numerous optimization problems. In most papers concerning multiple objective shortest path problems, additivity of the objective is a de-facto assumption, but in many real-life situations objectives and criteria, can be non-additive. The purpose of this paper is to give a general framework for dominance tests for problems involving a number of non-additive criteria. These dominance tests can help eliminate paths in a dynamic programming framework when using multiple objectives. Results on real-life multi-objective problems containing non-additive criteria are reported. We show that in many cases the framework can be used to effi ciently reduce the number of generated paths.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O B I O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


A decision support system for managing combinatorial problems in container terminals A container terminal is a facility where cargo containers are transshipped between different transport vehicles. We focus our attention on the transshipment between vessels and land vehicles, in which case the terminal is described as a maritime container terminal. In these container terminals, many combinatorial related problems appear and the solution of one of the problems may affect to the solution of other related problems. For instance, the berth allocation problem can affect to the crane assignment problem and both could also affect to the container stacking problem. Thus, terminal operators normally demand all containers to be loaded into an incoming vessel should be ready and easily accessible in the yard before vessel's arrival. Similarly, customers (i.e., vessel owners) expect prompt berthing of their vessels upon arrival. However the efficiency of the loading/unloading tasks of containers in a vessel depends on the number of assigned cranes and the efficiency of the container yard logistic. In this paper, we present a decision support system to guide the operators in the development of these typical tasks. Due to some of these problems are combinatorial, some analytical formulas are presented to estimate the behavior of the container terminal. Container terminals generally serve as a transshipment between ships and land vehicles (trains or trucks). Henesey shows in [17] how this transshipment market is growing fast. Between 1990 and 2008, container traffic has grown from 28.7 million to 152.0 million of movements. This corresponds to an average annual compound growth of 9.5%. In the same period, container throughput went from 88 million to 530 million of containers, which represents an increase of 500%. The surge of both container traffic and throughput is linked with the growth of international trade in addition to the adoption of containerization as privileged vector for maritime shipping and inland transportation [1] .. The efficient management of containers in port requires more analysis and development to ensure reliability, delivery dates or handling times in order to improve productivity and container throughput from quay to landside and vice versa. Extensive surveys are provided about operations at seaport container terminals and methods for their optimization [32, 30] . Moreover, other problems are faced on planning the routes for liner shipping services to obtain the maximal profit [7] . Another important issue for the success at any container terminal is to forecast container throughput accurately [5] . Thus, they could develop better operational strategies and investment plans.. The main research on optimization methods in container terminals is related to reduce the berthing time of vessels. This objective generates a set of interrelated problems such as berth allocation, yard-side operation, storage operation and gatehouse operation. Usually, each one of these problems is managed independently of others due to their exponential complexity. However, these problems are clearly interrelated so that an optimized solution of one of them restrings the possibility of obtaining a good solution in another.. The overall goal collaboration between our group at the Technical University of Valencia (UPV), Valencia Port Foundation, and the maritime container terminal MSC (Mediterranean Shipping Company S.A) is to offer assistance to help in planning and scheduling tasks such as the allocation of spaces to outbound containers, to identify bottlenecks, to determine the consequences of changes, to provide support in the resolution of incidents, to provide alternative berthing plans, etc.. In this paper, we focus our attention on three important and interrelated problems: the Berth Allocation Problem (BAP), the Quay Crane Assignment Problem (QCAP) and the Container Stacking Problem (CStackP) (see Figure 1) . Briefly, the BAP and QCAP consist of the allocation of docks and quay cranes to incoming vessels under several constraints and priorities (length and depth of vessels, number of containers, etc.). On the other hand, when a vessel berths, export containers stacked to be loaded in the vessel should be on top of the stacks of the container yard. Therefore, the CStackP consists of relocating the containers so that the yard crane does not need to do rehandling work at the time of loading. These two problems are clearly related: an optimal berth allocation plan may generate a large amount of relocations for export containers; meanwhile a suboptimal berth allocation plan could require fewer rearrangements. Terminal operators should decide which solution is the most appropriate in each scenario.. In order to provide a computer-based decision support system, we integrate a set of intelligent techniques for solving these problems concurrently in order to achieve a mixed-solution that combines optimization of BAP, QCAP and CStackP. To this end, we developed a heuristically-guided planner for generating a rehandling-free intrablock remarshaling plan for container yards (CStackP problem). Due to the fact that this is a time consuming task, we present in this paper an analytic formula to estimate the number of reshuffles needed to solve this problem. Then, we present a metaheuristic approach for solving the BAP+QCAP as an independent problem. Afterwards, we integrate solutions obtained from BAP+QCAP and StackP systems, so that terminal operators should ultimately decide which solution is the most appropriate in relation to a multi-objective function: to minimize the waiting times of vessels and to minimize the amount of relocations of containers. The Container Stacking Problem, the Berth Allocation Problem and the Quay Crane Assignment Problem are three important and related problems in maritime container terminals. In this paper, we have presented a decision support system to manage these problems in a coordinated way. To this end, we have developed a domain-oriented heuristic planner for calculating the number of reshuffles needed to allocate the containers in the appropriate place. Furthermore, we have estimated this number in order to avoid the planning phase in unnecessary instances. Then, we have developed a GRASP metaheuristic for the Berth Allocation Problem and the Quay Crane Assignment Problem which generates an optimized order of vessels to be served according to existing berth constraints. By combining these optimized solutions in our integrated system, terminal operators can be assisted to decide the most appropriated solution in each particular case.. As future work, we are working on improving the function to estimate the number of reshuffles by adding some more specific parameters. Furthermore we plan to improve the GRASP method and to adequate the parameters (α, β and γ) to practical decisions and expert knowledge. Then, the developed system, as a computer-based aid system, could assist container terminal's operator to simulate, evaluate and compare different feasible alternatives.

O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O B I I I O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O B I I O O B I I I O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O B I I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Detecting parametric objects in large scenes by Monte Carlo sampling Abstract Point processes constitute a natural extension of Markov random fields (MRF), designed to handle parametric objects. They have shown efficiency and competitiveness for tackling object extraction problems in vision. Simulating these stochastic models is however a difficult task. The performances of the existing samplers are limited in terms of computation time and convergence stability, especially on large scenes. We propose a new sampling procedure based on a Monte Carlo formalism. Our algorithm exploits the Markovian property of point processes to perform the sampling in parallel. This procedure is embedded into a datadriven mechanism so that the points are distributed in the scene in function of spatial information extracted from the input data. The performances of the sampler are analyzed through a set of experiments on various object detection problems from large scenes, including comparisons to the existing algorithms. The sampler is also tested as optimization algorithm for MRF-based labeling problems. Markov point processes are probabilistic models introduced by Baddeley and Lieshout (1993) to extend the traditional Markov random fields (MRF) by using an object-based for-Y. Verdié · F. Lafarge (B) INRIA, Sophia Antipolis, France e-mail: Florent.Lafarge@inria.fr malism. Indeed, Markov point processes can address object recognition problems by directly manipulating parametric entities in dynamic graphs, whereas MRFs are restricted to labeling problems in static graphs.. These mathematical tools exploit random variables whose realizations are configurations of parametric objects, each object being assigned to a point positioned in the scene. The number of objects is itself a random variable, and thus must not be estimated or specified by a user. Another strength of Markov point processes is their ability to take into account complex spatial interactions between the objects and to impose global regularization constraints in a scene. A point process is usually specified by three key elements: Some parametric objects. They can be defined in discrete and/or continuous domains. They usually correspond to geometric entities, e.g. segments, rectangles, circles or planes, but can more generally be any type of multi-dimensional function. The complexity of the objects directly impacts on the size of the configuration space. An energy. It is used to measure the quality of a configuration of objects. The energy is typically defined as a combination of a term assessing the consistency of objects to the data, and a term taking into account spatial interactions between objects in a Markovian context. A sampler. It allows the search for the object configuration minimizing the energy. As the configuration space is of variable dimension and the energy is usually nonconvex, Monte Carlo based samplers capable of exploring the whole configuration space are required, in most cases a Markov Chain Monte Carlo (MCMC) algorithm (Hastings 1970; Green 1995; Liu 2001 ). We propose a new algorithm to sample point processes whose strengths lean on the exploitation of Markovian properties to enable the sampling to be performed in parallel, and the integration of a data-driven mechanism allowing efficient distributions of the points in the scene. Our algorithm improves the performances of the existing samplers in terms of computation times and stability, especially on large scenes where the gain is very important. It can be used without particular restrictions, contrary to most samplers, and even appears as an interesting alternative to the standard optimization techniques for MRF labeling problems. In particular, one can envisage using the model proposed in Sect. 7 to extract any type of parametric objects from large 3D-point clouds. This new algorithm has two limitations. First the performances are not significant when dealing with small input data, as a result of a partitioning of the space K restricted in terms of number of cells. Second, the performance of the algorithm depends on the potential of the graphics card of the computer.. In future works, it would be interesting to extend the algorithm to point processes in 4D for addressing spatio-temporal problems in which 3D-objects evolve during time. Also, one could improve the algorithm to optimize MRF-based energies and develop a more competitive solution by modeling a data-driven proposition kernel whose density map is of lower intensity in homogeneous regions. Fig. 19 Objects and their parameters for the various presented models. (left) Ellipses and (middle) line-segments are defined by a 2D-point p ∈ K (center of mass of the object) and some marks. These additional parameters are the semi-major axis b, the semi-minor axis a, and the angle θ for an ellipse, and the semi-length b, the semi-width a, the orientation θ, and the anchor length c for a line-segment. The inside (respectively bordering) volume of the object is denoted by S in (respectively S out ). The anchors are denoted by A 1 and A 2 . (right) 3D-trees are defined by a 3D-point p ∈ K (center of mass of the object), a type t ∈ {conoidal, ellipsoidal, semi-ellipsoidal} illustrated on Fig. 20 , and 3 additional parameters which are the canopy height a, the trunk height b and the canopy diameter c. The cylindrical volume Cx i represents the attraction space of object x i in which the input points are used to measure the quality of this object is based on the Bhattacharyya distance: the unitary data term D(x i ) of the energy is given by Eq. 20. The potential V (x i , x j ) penalizes strong object overlaps (see Eq. 21), but also takes into account a connection interaction in order to favor the linking of the line-segments. The potential term is thus given by:. where. • β 1 and β 2 are two coefficients weighing respectively the non-overlapping and connection constraints with respect to the data term.. • ∼ nc is the non-connection relationship between two objects. x i ∼ nc x j if the anchor areas of x i and x j (see Fig. 19 ) do not overlap.. • 1 condition is the indicative function returning one when condition is valid, and zero otherwise.. • f (x i , x j ) is a symmetric function weighting the penalization of two non-connected objects x i and x j with respect to their average fitting quality. The function f is introduced to slightly relax the connection constraint when the two objects are of very good quality.. As for the bird counting problem, a basic mathematical dilatation has been used to roughly extract the class of interest from the aerial image shown on Fig. 14. Indeed the pixels corresponding to the class road in this image are relatively bright compared to the background. The segmented result Fig. 20 Library of tree models-the objects are specified by a 3D point (center of mass illustrated by a red dot) and additional parameters (blue arrows) including the canopy type whose shape can be conoidal (e.g. pine or fir), ellipsoidal (e.g. poplar or tilia) or semi-ellipsoidal (e.g. oak or maple). is obviously not optimal, but sufficient to create an efficient space-partitioning tree. The growing interest in these probabilistic models is motivated by the need to manipulate parametric objects interacting in complex scenes. Many works relying on point processes have been recently proposed to address the variety of image and vision problems listed below. Descombes et al. (2009) propose a point process for counting populations from aerial images, each entity being captured by an ellipse. Ge and Collins (2009) present a point process for a similar application, but dedicated to crowd detection from ground-based photos, for which objects are defined as a set of body shape templates learned from training data. Multi-view images are used by Utasi and Benedek (2011) to detect people by a point process in 3D where the objects are specified by cylinders. Sun et al. (2007) and Lacoste et al (2005) propose point processes for extracting line-networks from images by taking into account spatial interactions between lines to favor the object connection and also certain types of line junctions more likely to appear in real networks. Stoica et al. (2007) extend these line-network models in third dimension for recovering the cosmic filament network from point clouds representing the map of the Universe. The junction point processes developed by Chai et al. (2013) allow the extraction of line-networks using a graph-based representation. Junction points are not associated to geometric shapes, but are instead marked by some angles indicating the directions of the adjacent points so that a junction-point configuration is equivalent to a planar graph. Ortner et al. (2008) and Chai et al. (2012) detect buildings by displacing and connecting rectangles from aerial images. The latter use an auxiliary point process of line-segments to reinforce the rectangle extraction, whereas the former embed the point process into a MRF model to provide a structure-driven segmentation of images. Nguyen et al. (2010) develop a model for texture recognition in which the spatial distribution of visual keypoints discriminates the textures. Zhu et al. (2005) describe natural textures by a layout of textons, which can be seen as a realization of a point process specified by a texton library. Lafarge et al. (2010) present a general model for extracting different types of geometric features from images, including lines, rectangles and disks. A mixture of object interactions are considered such that the process can reconstruct a large variety of textures. Lieshout (2008) develops a point process for tracking rectangular colored objects from video. A monodimensional point process is proposed by Mallet et al. (2010) for modeling 1D-signals by mixtures of parametric functions while imposing physical constraints between the signal modes. The proposed sampler, detailed in Algorithm 2, can be seen as a parallelized extension of the traditional RJM-CMC with data-driven proposition kernel. As illustrated on Fig. 6 , each perturbation is completely independent of the other perturbations simultaneously proposed in the cells of the considered mic-set.. Note that the temperature parameter is updated after each series of simultaneous perturbations such that the temperature decrease is equivalent to a cooling schedule by plateau in a standard sequential MCMC sampling. Note also that the space-partitioning tree protects the sample from mosaic effects. In practice, the sampling is stopped when no perturbation has been accepted during a certain number of iterations. The algorithm has been implemented on GPU using CUDA. A thread is dedicated to each simultaneous perturbation so that operations are performed in parallel for each cell of a mic-set. The sampler is thus all the more efficient as the mic-set contains many cells, and generally speaking, as the scene supported by K is large. Moreover, the code has been programmed to avoid time-consuming operations. In particular, the threads do not communicate between each other, and memory coalescing permits fast memory access. The memory transfer between CPU and GPU has also been min-

O O O O B I O B I I O B I O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O B I O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Automatic recognition of vector and parallel operations in a higher level language A compiler for recognizing statements of a FORTRAN program which are suited for fas t execution on a parallel or pipelin e machine such as ILLIAC-IV, STAR or ASC i s described . The technique employs "interval analysis" to provide flow informatio n to the vector/parallel recognizer . Wher e profitable the compiler changes scala r variables to subscripted variables . Th e output of the compiler is an extension t o FORTRAN which shows parallel and vecto r operations explicitly .

O B O O O B O O O O O B O B O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O B B O O B O O O O O O O O O O O B O O O O O O O O O O O O O B O O O O O O O O B O O O O O O


On the numerical solution of Kronecker-based infinite level-dependent QBD processes Infinite level-dependent quasi-birth-and-death (LDQBD) processes can be used to model Markovian systems with countably infinite multidimensional state spaces. Recently it has been shown that sums of Kronecker products can be used to represent the nonzero blocks of the transition rate matrix underlying an LDQBD process for models from stochastic chemical kinetics. This paper extends the form of the transition rates used recently so that a larger class of models including those of call centers can be analyzed for their steadystate. The challenge in the matrix analytic solution then is to compute conditional expected sojourn time matrices of the LDQBD model under low memory and time requirements after truncating its countably infinite state space judiciously. Results of numerical experiments are presented using a Kronecker-based matrix-analytic solution on models with two or more countably infinite dimensions and rules of thumb regarding better implementations are derived. In doing this, a more recent approach that reduces memory requirements further by enabling the computation of steady-state expectations without having to obtain the steady-state distribution is also considered. Continuous-time infinite level-dependent quasi-birth-and-death (LDQBD) processes [1] [2] [3] when their states are appropriately ordered. This study is about their numerical steady-state analyses, and hereafter, we shall be omitting the terms continuous-time and infinite in designating the LDQBD models we consider since they are all continuous-time and infinite.. In the following, all vectors are column vectors as in linear algebra, except state vectors, consistent with the conventional definition of state probability vectors as row vectors. e represents a column vector of 1's. e i represents the ith column of the identity matrix. diag(a) denotes a diagonal matrix with the entries of vector a along its diagonal. The lengths of the vectors are determined by the context in which they are used, T denotes transposition, × when used with sets denotes Cartesian product, ⊗ denotes Kronecker product [4] , 1 denotes the indicator function, Z and R stand respectively for the sets of integers and real numbers, whereas Z + and R ≥0 denote their nonnegative subsets. Now, let S denote the irreducible state space of the LDQBD process under consideration, the state of the LDQBD process at time t be given by X (t) = (X 1 (t), . . . , X n (t)) ∈ S, and {X(t) ∈ S, t ≥ 0} be the associated n-dimensional CTMC process. Furthermore, let the probability of the LDQBD process being in state x = (x 1 , . . . , x n ) ∈ S at time t be expressed as Pr{X (t) = x} = Pr{X 1 (t) = x 1 , . . . , X n (t) = x n }. Levels define a partition of S; that is, S =  = ∅ for l ̸ = m and l, m ∈ Z + , where S (l) is the subset of states corresponding to level l. Therefore, the nonzero blocks at level l satisfy. with the exception that there are only two boundary blocks at level 0.. We consider ergodic LDQBD processes and investigate the numerical computation [5, 6] of their steady-state probability measures. The steady-state probability distribution row vector of an ergodic LDQBD process is defined as π = lim t→∞ Pr{X (t)}, and it satisfies. In particular, the steady-state vector of an ergodic LDQBD process can be accordingly partitioned and expressed as π = (π (0) , π (1) , . . .),. and its subvector at level (l + 1) can be obtained from the matrix analytic equation , and R l ∈ R |S (l) |×|S (l+1) | ≥0. . LDQBD processes are a generalization of QBD processes originally proposed in [7, 8] and improved over the years [2, 9] with two quadratically convergent algorithms for their steady-state analyses. These algorithms are logarithmic reduction [10] and cyclic reduction [11] . In the level dependent context, the situation is more complicated since the conditional expected sojourn time matrix is not constant and changes from level to level.. In many cases, the ergodicity of an LDQBD process can be established by relatively easy to check conditions on the 1-dimensional CTMC defined over its levels [12] . For computational purposes however, it is preferable to consider Lyapunov function methods as discussed in [13, 14] , so that lower and higher level numbers (called Low and High, respectively) can be computed as in [15] [16] [17] between which a specified percentage of the steady-state probability mass lies when the LDQBD is ergodic. It is the latter approach we follow here. In this way, steady-state measures can be computed exactly up to machine precision by choosing (High-Low) sufficiently large as discussed in [17] .. Systems of stochastic chemical kinetics [18] [19] [20] [21] and queueing networks [2, 5, [22] [23] [24] are two classes of problems that can be modeled as LDQBD processes using the described n-dimensional state representation with some countably infinite variables. For the former class of problems, countably infinite variables represent numbers of molecules of each chemical species existing in the system. The remaining variables, if any, are finite. Up until recently, stochastic simulation [25, 26] seemed to be the only viable approach that would yield relatively accurate results for this class of problems. However, it has been shown in [17] that systems of stochastic chemical kinetics can be modeled as LDQBD processes with the level number determined by the maximum value among the countably infinite variables. Inspired by hierarchical Markovian models (HMMs) introduced in [22] , the result in [17] has been taken one step further in [16] by providing a Kronecker-based representation for the nonzero blocks Q l,l−1 , Q l,l , Q l,l+1 at each level to cope with the multidimensionality of the product state space of variables and its reachability. As suggested in [27] and as observed to be the best overall choice in [17] , again R High is set to 0 to initiate the computational procedure associated with the matrices of conditional expected sojourn times. Therein, a comparative study between stochastic simulation and the matrix analytic approach has also been undertaken. Naturally, the matrix analytic approach yields an accuracy measure obtained by computing the residual norm of the solution which is not possible with simulation.. It is the latter class of problems on which we concentrate in this paper by considering various queueing network models of call centers with multiple types of customers. In this context, the countably infinite variables represent occupancies of queues with unbounded waiting space and finite variables represent occupancies of server pools. The interplay between finite variables and countably infinite variables in these models is more intricate than that of models of stochastic chemical kinetics systems. This requires us to extend the form of the transition rates used in [16] . To that end, we resort to generalized functional transitions of stochastic automata networks (SANs) [28] [29] [30] , and let the form of the dependency of the transition rate on the values of the variables be more general. As we shall see, the use of such transition rates does not pose a computational efficiency problem, since a direct method in which each nonzero block is processed once is employed in the matrix analytic solution. In other words, each function is evaluated once for each state in the truncated state space  High l=Low S (l) during analysis. An implication of this extension is that not only do we need to compute partitions of state spaces of countably infinite variables as in [16] , but now we also need to compute subpartitions of these partitions and partitions of state spaces of finite variables to obtain a Kronecker-based representation for the nonzero blocks of Q .. We also consider the more recent approach in [31] that reduces memory requirements further by enabling the computation of steady-state expectations without having to obtain the steady-state distribution. The approach is inspired by a Horner-like computational scheme in which only the conditional expected sojourn time matrix at level l needs to be allocated in step l; otherwise, there are no time savings. In other words, not all R l matrices need to be stored simultaneously. With this memory efficient approach, a tandem queueing network of two single server queues with infinite waiting spaces and customers departing from the first queue leaving the system with a probability depending on the length of the second queue is analyzed. The steady-state measures computed are those that are based on average costs or rewards, moments, and cumulants. However, there is one drawback; it is the loss of the accuracy measure because the steady-state distribution is no longer available. Ongoing work is concerned with obtaining accuracy measures for this approach as well, but they are not yet available.. Taking into account the experience gained from the Matlab implementation used in [16] , we provide an implementation in C based on the Nsolve package of the Abstract Petri Net Notation (APNN) Toolbox [32] . Our objective in doing so is to have more control over memory usage and timings. Since the number of states within each level increases with increasing level number in the models we consider, we conduct numerical experiments with timing results to see how and when memory should be allocated and deallocated, and whether the conditional sojourn time matrices should be stored as full or sparse matrices. With the existing continuous improvement in computer technology, we believe we have reason to invest in numerical analysis approaches for multidimensional Markovian models as those discussed here to obtain more accurate results at a finer level of detail.. In the next section, we extend the specification for the class of models considered to build a Kronecker representation of the nonzero blocks in Q and introduce a running example. Due to space limitations, we refrain from discussing the models of stochastic chemical kinetics systems used before and refer to [33] . We also introduce two other models of call centers at the end of Section 2. In Section 3, we discuss implementation issues including the choice of Lyapunov functions and provide results regarding memory usage for different implementations after giving the algorithm for the computation of the steady-state distribution of LDQBD processes. In Section 4, we report on the results of numerical experiments with the matrix analytic approach on the models introduced earlier to identify better implementations. In Section 5, we conclude. We have considered the Kronecker representation of nonzero blocks of transition matrices underlying level-dependent QBD processes. A representation proposed recently for models from systems of stochastic chemical kinetics has been extended so that queueing network models of call centers can also be analyzed for their steady-state. The improved representation requires the partitions of state spaces of countably infinite state variables obtained recently and the state spaces of the finite state variables to be partitioned to eliminate unreachable states from the product state space of the model.. An analysis regarding peak memory usage has suggested that it is better to allocate memory for the matrix of conditional expected sojourn times and the coefficient matrix of the linear system to be solved at each level before the computation at that level commences rather than at the outset. Having decided on when to allocate memory for the matrices used in the matrix analytic solution, an extensive numerical study is undertaken in which full versus sparse storages of the matrices of conditional expected sojourn times and sparse versus Kronecker representations of the subdiagonal nonzero blocks are considered for implementation. Results indicate that it is better to opt for full storage of the matrices of conditional expected sojourn times when they are relatively dense, whereas either of sparse and Kronecker representations of the subdiagonal nonzero blocks can be used. Besides, a more recent approach that enables the computation of steady-state expectations without computing the steady-state distribution has been shown to perform stably and can be utilized to improve memory usage at the expense of losing the accuracy measure associated with the solution. Ongoing work is concerned with obtaining accuracy measures for this approach as well, but they are not yet available. Both the more recent approach and the original matrix analytic solution have room for improvement regarding their scalability for models with a large number of countably infinite state variables. Hence, C is also finite.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O