This paper was converted on www.awesomepapers.org from LaTeX by an anonymous user.
Want to know more? Visit the Converter page.

Robustness and Games Against Nature in Molecular Programming

Jack H. Lutz Department of Computer Science, Iowa State University Neil Lutz Department of Computer and Information Science, University of Pennsylvania Robyn R. Lutz Department of Computer Science, Iowa State University Matthew R. Riley Department of Computer Science, Iowa State University
Abstract

Matter, especially DNA, is now programmed to carry out useful processes at the nanoscale. As these programs and processes become more complex and their envisioned safety-critical applications approach deployment, it is essential to develop methods for engineering trustworthiness into molecular programs. Some of this can be achieved by adapting existing software engineering methods, but molecular programming also presents new challenges that will require new methods. This paper presents a method for dealing with one such challenge, namely, the difficulty of ascertaining how robust a molecular program is to perturbations of the relative “clock speeds” of its various reactions. The method proposed here is game-theoretic. The robustness of a molecular program is quantified in terms of its ability to win (achieve its original objective) in games against other molecular programs that manipulate its relative clock speeds. This game-theoretic approach is general enough to quantify the security of a molecular program against malicious manipulations of its relative clock speeds. However, this preliminary report focuses on games against nature, games in which the molecular program’s opponent perturbs clock speeds randomly (indifferently) according to the probabilities inherent in chemical kinetics.

1 Introduction

Molecular programming is, at its simplest, computation with DNA. A programmed molecular system is a nanosystem that will execute the algorithmic behavior encoded into it. Examples of programmed DNA systems include neural net simulation, probabilistic switching circuits, nano-robotic walkers, and oscillators [21, 27, 7, 24]. That is, we are programming matter itself when we create a programmed molecular system.

Many of the intended uses of molecular programming are safety-critical, such as biosensors to detect pollutants, diagnostic devices to identify diseases, and nano-robotic walkers to perform targeted drug delivery [9]. Software engineering techniques including goal-oriented requirements modeling [26], risk analyses [14], and probabilistic model checking [15] have recently been extended to the emerging field of molecular programming, in order to aid the development of safe programmed molecular systems [16, 15, 10].

Assuring the robustness of a molecular program needs to occur before such a system is deployed. However, what robustness means for such a system is not well-defined. This, in turn, hinders efforts to determine how robust a particular system is.

The problem addressed by this paper is the difficulty of answering the question, “how robust is this molecular program?” The contribution of the paper is to propose a game-theoretic method by which we can quantitatively evaluate how robust a molecular program is to an opponent’s perturbing the relative clock speeds of its constituent processes (reactions). This sort of robustness is especially important, because the “rate constants” that govern the rates of chemical reactions are notoriously approximate and non-constant in actual laboratory experiments. We formulate this as a game against nature [17, 19], in which nature manipulates clock speeds at random, disinterested in the outcome. Although this approach is general enough to evaluate robustness in the face of a game against a malicious opponent, we focus here on the random perturbations inflicted by an indifferent nature. We illustrate our method on an important consensus algorithm, approximate majority [5]. We thus develop a games-against-nature formalism of robustness and then evaluate it on a small molecular program that computes the approximate majority.

2 Molecular Programs

Molecular programs are typically specified as chemical reaction networks (CRNs) [1, 6], which are roughly equivalent to stochastic Petri nets [8]. These CRNs can then be automatically compiled into DNA strand displacement systems that can be implemented in laboratory experiments [23, 4, 2].

Syntax

We now review the definition of CRNs. We fix a countably infinite set 𝐒\mathbf{S} whose elements are called species. We informally regard each species as an abstract type of molecule.

A reaction over a finite set S𝐒S\subseteq\mathbf{S} is an ordered triple

ρ=(𝐫,𝐩,k)S×S×(0,),\rho=(\mathbf{r},\mathbf{p},k)\in\mathbb{N}^{S}\times\mathbb{N}^{S}\times(0,\infty),

where 𝐫𝐩\mathbf{r}\neq\mathbf{p} and S\mathbb{N}^{S} is the set of functions from SS into \mathbb{N}. Given such a reaction ρ\rho, we call 𝐫(ρ)=𝐫\mathbf{r}(\rho)=\mathbf{r} the reactant vector of ρ\rho, 𝐩(ρ)=𝐩\mathbf{p}(\rho)=\mathbf{p} the product vector of ρ\rho, and k(ρ)=kk(\rho)=k the rate constant of ρ\rho. (Since SS is finite, it is natural to regard elements of S\mathbb{N}^{S} as vectors.) The species in the support supp(𝐫)={XS𝐫(X)>0}\operatorname{supp}(\mathbf{r})=\{X\in S\mid\mathbf{r}(X)>0\} are the reactants of ρ\rho, and the species in supp(𝐩)\operatorname{supp}(\mathbf{p}) are the products of ρ\rho.

We usually write reactions in a more chemistry-like notation. For example, if S={X,Y,C}S=\{X,Y,C\}, then we write

X+C𝑘2Y+CX+C\overset{k}{\to}2Y+C

for the reaction (𝐫,𝐩,k)(\mathbf{r},\mathbf{p},k), where 𝐫(X)=1\mathbf{r}(X)=1, 𝐫(Y)=0\mathbf{r}(Y)=0, 𝐫(C)=1\mathbf{r}(C)=1, 𝐩(X)=0\mathbf{p}(X)=0, 𝐩(Y)=2\mathbf{p}(Y)=2, and 𝐩(C)=1\mathbf{p}(C)=1. A species CC satisfying 𝐫(ρ)(C)=𝐩(ρ)(C)>0\mathbf{r}(\rho)(C)=\mathbf{p}(\rho)(C)>0, as in this example, is called a catalyst of the reaction ρ\rho. The net effect of a reaction ρ\rho is the vector Δρ=𝐩(ρ)𝐫(ρ)S\Delta\rho=\mathbf{p}(\rho)-\mathbf{r}(\rho)\in\mathbb{Z}^{S}. The arity of a reaction ρ\rho is

arity(ρ)=YS𝐫(ρ)(Y),\operatorname{arity}(\rho)=\sum_{Y\in S}\mathbf{r}(\rho)(Y),

i.e., its total number of reactants. A chemical reaction network (CRN) is an ordered pair N=(S,R)N=(S,R), where S𝐒S\subseteq\mathbf{S} is finite and RR is a finite set of reactions over SS.

Semantics

In this paper we assign each CRN N=(S,R)N=(S,R) the operational meaning given by the stochastic mass action semantics (also called the stochastic mass action kinetics) introduced by Gillespie [13]. In this semantics a state of NN is a vector 𝐱S\mathbf{x}\in\mathbb{N}^{S}. For each YSY\in S, the component 𝐱(Y)\mathbf{x}(Y) of 𝐱\mathbf{x} is the count of species YY in the state 𝐱\mathbf{x}. A reaction ρ\rho is applicable to state 𝐱\mathbf{x} if 𝐫(ρ)𝐱\mathbf{r}(\rho)\leq\mathbf{x}, i.e., all the reactants of ρ\rho are present in 𝐱\mathbf{x}. If ρ\rho is applicable to 𝐱\mathbf{x}, then the result of applying ρ\rho to 𝐱\mathbf{x} is the state ρ(𝐱)=𝐱+ΔρS\rho(\mathbf{x})=\mathbf{x}+\Delta\rho\in\mathbb{N}^{S}.

The (stochastic mass action) rate of a reaction ρ\rho in a state 𝐱S\mathbf{x}\in\mathbb{N}^{S} and volume V>0V>0 of solution, which we denote by rate𝐱(ρ)\operatorname{rate}_{\mathbf{x}}(\rho), was defined and justified by Gillespie [13]. Here we give a single example. Let ρ\rho be a reaction

3Y+ZRHS.3Y+Z\to\textrm{RHS}.

(The right-hand side RHS does not affect the rate of a reaction.) For brevity, write y=𝐱(Y)y=\mathbf{x}(Y) and z=𝐱(Z)z=\mathbf{x}(Z). If ρ\rho is applicable to 𝐱\mathbf{x} (i.e., if y3y\geq 3 and z1z\geq 1), then

rate𝐱(ρ)\displaystyle\operatorname{rate}_{\mathbf{x}}(\rho) =kV1arity(ρ)y(y1)(y2)z\displaystyle=k\cdot V^{1-\operatorname{arity}(\rho)}\cdot y\cdot(y-1)\cdot(y-2)\cdot z
=ky(y1)(y2)z/V3.\displaystyle=ky(y-1)(y-2)z/V^{3}.

Under stochastic mass-action semantics, a CRN N=(S,R)N=(S,R) functions as a continuous-time Markov chain [22] with state space S\mathbb{N}^{S} and, for each 𝐱,𝐲S\mathbf{x},\mathbf{y}\in\mathbb{N}^{S}, transition rate

rate(𝐱,𝐲)=ρ(𝐱)=𝐲rate𝐱(ρ).\operatorname{rate}(\mathbf{x},\mathbf{y})=\sum_{\rho(\mathbf{x})=\mathbf{y}}\operatorname{rate}_{\mathbf{x}}(\rho).

The CRN NN is initialized to some state or distribution over states. When it enters a state 𝐱\mathbf{x}, it stays there for a random, real-valued sojourn time t(0,]t\in(0,\infty] before instantaneously executing some reaction ρ\rho and jumping to the state ρ(𝐱)\rho(\mathbf{x}). A trajectory of NN is thus a sequence τ=((𝐱0,t0),(𝐱1,t1),)\tau=((\mathbf{x}_{0},t_{0}),(\mathbf{x}_{1},t_{1}),\ldots) of ordered pairs (𝐱i,ti)(\mathbf{x}_{i},t_{i}), where 𝐱i\mathbf{x}_{i} is a state of NN and tit_{i} is the associated sojourn time. The trajectory τ\tau is finite if it reaches a state to which no reaction is applicable. Otherwise, the trajectory is infinite.

3 CRN Games

To quantify the robustness of a CRN, we consider how its performance might be affected by other CRNs that are present in the same solution. Clearly, this evaluation will depend both on how performance is defined and on what kinds of other CRNs are present. We begin by describing a general game-theoretic framework that allows for any scalar quantification of performance (by defining appropriate utility functions) and arbitrary constraints placed on the other CRNs (by restricting the other players’ strategy spaces). We then discuss the special case where interactions between CRNs are mediated only by catalysts.

An nn-player CRN game with players 1,2,,n1,2,\ldots,n is a pair 𝒢=(𝒩,𝐮)\mathcal{G}=(\mathcal{N},\mathbf{u}) with the following components.

  1. 1.

    𝒩=𝐍1×𝐍2××𝐍n\mathcal{N}=\mathbf{N}_{1}\times\mathbf{N}_{2}\times\ldots\times\mathbf{N}_{n} is the strategy profile space. To play the game, each player ii selects a strategy: a CRN Ni=(Si,Ri)N_{i}=(S_{i},R_{i}) from its strategy space 𝐍i\mathbf{N}_{i}, which is a set of CRNs. For convenience we require that (,)𝐍i(\emptyset,\emptyset)\in\mathbf{N}_{i}. The nn players’ selected strategies collectively define a strategy profile σ𝒩\sigma\in\mathcal{N} and a CRN Nσ=(Sσ,Rσ)N_{\sigma}=(S_{\sigma},R_{\sigma}), where Sσ=iSiS_{\sigma}=\bigcup_{i}S_{i} and Rσ=iRiR_{\sigma}=\bigcup_{i}R_{i}. A state of the game comprises counts of all species in SσS_{\sigma}. As in a CRN, a trajectory in this game is a (finite or infinite) sequence of states paired with sojourn times. The space of all trajectories for the game 𝒢\mathcal{G} is 𝕋𝒢\mathbb{T}_{\mathcal{G}}.

  2. 2.

    𝐮=(u1,u2,,un)\mathbf{u}=(u_{1},u_{2},\ldots,u_{n}) is a profile of utility functions ui:𝕋𝒢u_{i}:\mathbb{T}_{\mathcal{G}}\to\mathbb{R}, where ui(τ)u_{i}(\tau) is the utility player ii gets from trajectory τ\tau. In our example below, this utility function is simply a binary indicator for “success,” meaning that the player gets utility 1 from any trajectory that performs a given task correctly and gets utility 0 from all other trajectories. A player representing “nature” is totally indifferent to the game’s outcome and hence gets utility 0 from all trajectories.

Let ξ=(ξ1,ξ2,,ξn)\xi=(\xi_{1},\xi_{2},\ldots,\xi_{n}) where ξiSi\xi_{i}\in\mathbb{N}^{S_{i}} is the random vector for NiN_{i}’s initial state, and let ξ^i\hat{\xi}_{i} be the embedding of ξi\xi_{i} in Sσ\mathbb{N}^{S_{\sigma}}. Then the initial state of NσN_{\sigma} is the random vector iξ^i\sum_{i}\hat{\xi}_{i}. Given this initial distribution, the theory of continuous-time Markov chains specifies a probability measure on the set 𝕋Nσ\mathbb{T}_{N_{\sigma}} of all trajectories of the CRN NσN_{\sigma} [22], which also immediately yields a probability measure μσ,ξ\mu_{\sigma,\xi} on 𝕋𝒢\mathbb{T}_{\mathcal{G}}. This allows us to define the function

Ui(σ,ξ)=𝕋𝒢ui(τ)μσ,ξ(τ),U_{i}(\sigma,\xi)=\int_{\mathbb{T}_{\mathcal{G}}}u_{i}(\tau)\mu_{\sigma,\xi}(\tau),

which is the expected value of player ii’s utility when the strategy profile σ\sigma is played.

Robustness

We measure the robustness of a CRN N1N_{1} to a profile (N2,N3,,Nn)(N_{2},N_{3},\ldots,N_{n}) of other players’ CRNs by comparing player 1’s expected utility playing N1N_{1} against those CRNs to its expected utility playing N1N_{1} against trivial CRNs. Formally, for any α[0,1]\alpha\in[0,1], a CRN N1𝐍1N_{1}\in\mathbf{N}_{1} is α\alpha-robust to (N2,N3,,Nn)(N_{2},N_{3},\ldots,N_{n}) in game 𝒢\mathcal{G} under ξ\xi if

U1((N1,N2,,Nn),ξ)αU1((N1,(,),,(,)),ξ),U_{1}((N_{1},N_{2},\ldots,N_{n}),\xi)\geq\alpha U_{1}((N_{1},(\emptyset,\emptyset),\ldots,(\emptyset,\emptyset)),\xi^{\prime}),

where ξ=(ξ1,ϵ,ϵ,,ϵ)\xi^{\prime}=(\xi_{1},\epsilon,\epsilon,\ldots,\epsilon) and ϵ\epsilon is the trivial distribution that assigns probability 1 to the empty vector. This means that the participation of other players using these strategies can decrease player 1’s expected utility by at most a factor of α\alpha.

Catalytic Games

The very general CRN games that we have defined allow essentially unrestricted interactions among the players’ CRNs. For many purposes, including those of this paper, it is more appropriate to restrict these interactions to those mediated by catalysts.

A catalytic game is one in which each player’s set of species can be written as 𝐒i=𝐀i𝐂i\mathbf{S}_{i}=\mathbf{A}_{i}\cup\mathbf{C}_{i} such that

  1. 1.

    𝐀i\mathbf{A}_{i} and 𝐀j\mathbf{A}_{j} are disjoint for all jij\neq i, and

  2. 2.

    for all C𝐂iC\in\mathbf{C}_{i} and ρ𝐑i\rho\in\mathbf{R}_{i}, we have Δρ(C)=0\Delta\rho(C)=0.

In such a game, each player can affect other players only by altering the counts of their catalysts, and hence only by altering the rates of their reactions.

4 Example

Approximate Majority

In this preliminary report, we use a game against nature to investigate the robustness of a simple chemical reaction network that computes approximate majority.

The task in approximate majority is to design a chemical reaction network NN with two designated species XX and YY and the following objective. Let x(t)x(t) and y(t)y(t) be the counts of XX and YY, respectively, at time tt. First, the total population x(t)+y(t)x(t)+y(t) should be constant as tt varies. Moreover, if x(0)x(0) and y(0)y(0) differ by a non-negligible amount, then whichever is larger should eventually “take over.” That is, if x(0)y(0)x(0)\gg y(0), then we should with high probability have x(t)=x(0)+y(0)x(t)=x(0)+y(0) (and hence y(t)=0y(t)=0) for all sufficiently large tt. Similarly, if y(0)x(0)y(0)\gg x(0), then we should with high probability have y(t)=x(0)+y(0)y(t)=x(0)+y(0) for all sufficiently large tt. If x(0)x(0) is very close to y(0)y(0), then we want one of these “takeovers” to occur with high probability, but it may be either species that takes over.

We investigate the robustness of the approximate majority CRN

R:2X+Y13XX+2Y13YR:\begin{array}[]{l}2X+Y\overset{1}{\to}3X\\ X+2Y\overset{1}{\to}3Y\end{array}

of Condon, Hajiaghayi, Kirkpatrick and Manuch [5]. In order to do this in a catalytic game, we replace RR with the catalyzed CRN

R:2X+Y+A13X+AX+2Y+B13Y+B.R^{\prime}:\begin{array}[]{l}2X+Y+A\overset{1}{\to}3X+A\\ X+2Y+B\overset{1}{\to}3Y+B.\end{array}

The crucial thing to note here is that, if xx, yy, aa, and bb are the counts of XX, YY, AA, and BB at some time, then the rates (“clock speeds”) of the reactions in RR at this time are x(x1)yx(x-1)y and xy(y1)xy(y-1), respectively, while the rates of the reactions in RR^{\prime} are ax(x1)yax(x-1)y and bxy(y1)bxy(y-1), respectively. If aa and bb are equal and constant, then RR^{\prime} is merely a uniformly sped-up version of RR. However, if aa and bb vary randomly, then the relative rates of the reactions in RR^{\prime} also vary randomly (i.e., the ratio of these rates varies randomly).

In order to test the robustness of RR to random perturbations of the relative rates of their reactions we thus play the CRN RR^{\prime} against a random “nature” that varies the initially equal counts aa and bb randomly. We model this behavior by the simple CRN

Nk:A𝑘BB𝑘A,N_{k}:\begin{array}[]{l}A\overset{k}{\to}B\\ B\overset{k}{\to}A\end{array},

which is “calibrated” by the rate constant k(0,)k\in(0,\infty).

Simulation

We assessed the robustness of the approximate majority CRN RR by comparing the performance of the catalyzed CRN RR^{\prime} in isolation with its performance in the presence of the CRN NkN_{k} representing nature randomly perturbing rate constants. We frame this as a game where the utility of the approximate majority player is given by its success frequency.

We first created models in MATLAB using SimBiology software tools for the catalyzed approximate majority CRN RR^{\prime} and the nature CRN NkN_{k} described above. With initial populations a(0)=b(0)=100a(0)=b(0)=100 and combined initial population x+y=10,000x+y=10,000, we varied the difference x(0)y(0)x(0)-y(0) from 0 to 1,000 by intervals of 10. With these initial conditions, we ran RR^{\prime} in the presence of NkN_{k} with k=109k=10^{9}. We ran 10,000 trials for each set of initial conditions. Each trial converged within 10810^{-8} time units, meaning that either x(108)x(10^{-8}) or y(108)y(10^{-8}) was 0. The design of the CRN RR^{\prime} guarantees that, once one population has taken over, no further reactions can occur.

As Fig. 1 shows, the random perturbations of aa and bb did reduce the success probability of the approximate majority algorithm for some values of x(0)y(0)x(0)-y(0). For example, when x(0)=5,120x(0)=5,120 and y(0)=4,880y(0)=4,880, RR^{\prime} was 99%99\% successful in a vacuum but only 76%76\% successful in the presence of nature. However, even with the random perturbations, the success frequency in the presence of nature was always greater than 70%70\% of the success frequency in the absence of nature. This suggests that the CRN RR^{\prime} is at least 0.70.7-robust to N109N_{10^{9}} in this game under arbitrary distributions of initial states with a=b=100a=b=100 and x+y=10,000x+y=10,000.

Refer to caption
Figure 1: Success frequency of the approximate majority CRN RR^{\prime} with combined initial populations x(0)+y(0)=10,000x(0)+y(0)=10,000 and initial catalyst populations a(0)=b(0)=100a(0)=b(0)=100, both in isolation and in a game against the nature CRN N109N_{10^{9}}, for varying values of x(0)y(0)x(0)-y(0).

5 Conclusion

Software engineering for molecular programming is a new research direction with open problems that can benefit from the attention of the software engineering research community. Many planned molecular systems will be deployed for use in vivo within a few years, and certification for safety-critical scenarios such as biosensors and drug delivery devices will require improved evidence of robustness. Molecular program developers similarly will be called upon to prevent system design vulnerabilities to malicious adversaries. Software engineering has an essential role to play in what scientists are already labeling as the century of life sciences [12].

The preliminary work described in this paper uses a game-theoretic approach to (1) formulate the robustness of a molecular program’s CRN model in terms of a game against nature and (2) provide a method to quantitatively evaluate its robustness. The example we present concerns random perturbations of the program’s clock speed by nature; however, the approach is general enough to also enable evaluation of security against an adversarial molecular program who maliciously perturbs the relative clock speeds. Future work on this will entail challenging issues involving strategic equilibria [18]. Our approach provides a foundation from which to pursue improved development and deployment of verifiably robust programmed molecular systems. More broadly, robustness in the presence of probabilistic behavior also is required for many non-molecular programmed systems [25, 11, 3, 20], and the advances described here may enhance our understanding of how to design in and verify robustness for other asynchronous systems operating in stochastic environments.

Acknowledgments

This research was supported in part by National Science Foundation grant 1545028. We thank Jim Lathrop for tool assistance.

References

  • [1] David F. Anderson and Thomas G. Kurtz, editors. Stochastic Analysis of Biochemical Systems, volume 1.2 of Stochastics in Biological Systems. Springer International Publishing, 2015.
  • [2] Stefan Badelt, Seung Woo Shin, Robert F. Johnson, Qing Dong, Chris Thachuk, and Erik Winfree. A general-purpose CRN-to-DSD compiler with formal verification, optimization, and simulation capabilities. In Proceedings of the 23rd International Conference on DNA Computing and Molecular Programming, Lecture Notes in Computer Science, pages 232–248, 2017.
  • [3] Radu Calinescu, Carlo Ghezzi, Marta Z. Kwiatkowska, and Raffaela Mirandola. Self-adaptive software needs quantitative verification at runtime. Communications of the ACM, 55(9):69–77, 2012.
  • [4] Yuan-Jyue Chen, Neil Dalchau, Niranjan Srinivas, Andrew Phillips, Luca Cardelli, David Soloveichik, and Georg Seelig. Programmable chemical controllers made from DNA. Nature Nanotechnology, 8(10):755–762, 2013.
  • [5] Anne Condon, Monir Hajiaghayi, David G. Kirkpatrick, and Ján Manuch. Simplifying analyses of chemical reaction networks for approximate majority. In DNA Computing and Molecular Programming - 23rd International Conference, DNA 23, Austin, TX, USA, September 24-28, 2017, Proceedings, pages 188–209, 2017.
  • [6] Matthew Cook, David Soloveichik, Erik Winfree, and Jehoshua Bruck. Programmability of chemical reaction networks. In Anne Condon, David Harel, Joost N. Kok, Arto Salomaa, and Erik Winfree, editors, Algorithmic Bioprocesses, Natural Computing Series, pages 543–584. Springer, 2009.
  • [7] Frits Dannenberg, Marta Kwiatkowska, Chris Thachuk, and Andrew J. Turberfield. DNA walker circuits: Computational potential, design, and verification. In Proceedings of the 19th International Conference on DNA Computing and Molecular Programming, volume 8141 of Lecture Notes in Computer Science, pages 31–45. Springer, 2013.
  • [8] René David and Hassane Alla. Discrete, Continuous, and Hybrid Petri Nets. Springer, 2010.
  • [9] Shawn M. Douglas, Ido Bachelet, and George M. Church. A logic-gated nanorobot for targeted transport of molecular payloads. Science, 335(6070):831–834, 2012.
  • [10] Samuel J. Ellis, Titus H. Klinge, James I. Lathrop, Jack H. Lutz, Robyn R. Lutz, Andrew S. Miner, and Hugh D. Potter. Runtime fault detection in programmed molecular systems. ACM Transactions on Software Engineering and Methodology, to appear.
  • [11] Antonio Filieri, Carlo Ghezzi, and Giordano Tamburrelli. Run-time efficient probabilistic model checking. In Proceedings of the 33rd International Conference on Software Engineering, pages 341–350. ACM, 2011.
  • [12] Jasmin Fisher, David Harel, and Thomas A. Henzinger. Biology as reactivity. Communications of the ACM, 54(10):72–82, 2011.
  • [13] Daniel T. Gillespie. Exact stochastic simulation of coupled chemical reactions. The Journal of Physical Chemistry, 81(25):2340–2361, 1977.
  • [14] John Knight. Fundamentals of Dependable Computing for Software Engineers. CRC Press, 2012.
  • [15] Marta Kwiatkowska and Chris Thachuk. Probabilistic model checking for biology. Software Systems Safety, 36:165–189, 2014.
  • [16] Robyn Lutz, Jack Lutz, James Lathrop, Titus Klinge, Eric Henderson, Divita Mathur, and Dalia Abo Sheasha. Engineering and verifying requirements for programmable self-assembling nanomachines. In Proceedings of the 34th International Conference on Software Engineering, pages 1361–1364. IEEE, 2012.
  • [17] John Milnor. Games against nature. Technical report, Rand Corporation, 1951.
  • [18] Abraham Neyman. Continuous-time stochastic games. Games and Economic Behavior, 104:92–130, 2017.
  • [19] Christos H. Papadimitriou. Games against nature. J. Comput. Syst. Sci., 31(2):288–301, 1985.
  • [20] Esteban Pavese, Víctor Braberman, and Sebastián Uchitel. Less is more: Estimating probabilistic rewards over partial system explorations. ACM Transactions on Software Engineering and Methodology, 25(2):16:1–16:47, 2016.
  • [21] Lulu Qian, Erik Winfree, and Jehoshua Bruck. Neural network computation with DNA strand displacement cascades. Nature, 475(7356):368–372, 2011.
  • [22] Y.A. Rozanov. Probability Theory: A Concise Course. Dover Publications, 1969.
  • [23] David Soloveichik, Georg Seelig, and Erik Winfree. DNA as a universal substrate for chemical kinetics. Proceedings of the National Academy of Sciences, 107(12):5393–5398, 2010.
  • [24] Niranjan Srinivas, James Parkin, Georg Seelig, Erik Winfree, and David Soloveichik. Enzyme-free nucleic acid dynamical systems. Science, 358(6369), 2017.
  • [25] Guoxin Su, Taolue Chen, Yuan Feng, and David S. Rosenblum. ProEva: runtime proactive performance evaluation based on continuous-time markov chains. In Proceedings of the 39th International Conference on Software Engineering, ICSE 2017, Buenos Aires, Argentina, May 20-28, 2017, pages 484–495, 2017.
  • [26] Axel van Lamsweerde. Requirements Engineering - From System Goals to UML Models to Software Specifications. Wiley, 2009.
  • [27] Daniel Wilhelm, Jehoshua Bruck, and Lulu Qian. Probabilistic switching circuits in DNA. Proceedings of the National Academy of Sciences, 2018.