936 resultados para logic circuits


Relevância:

20.00% 20.00%

Publicador:

Resumo:

Introduction and motivation: A wide variety of organisms have developed in-ternal biomolecular clocks in order to adapt to cyclic changes of the environment. Clock operation involves genetic networks. These genetic networks have to be mod¬eled in order to understand the underlying mechanism of oscillations and to design new synthetic cellular clocks. This doctoral thesis has resulted in two contributions to the fields of genetic clocks and systems and synthetic biology, generally. The first contribution is a new genetic circuit model that exhibits an oscillatory behav¬ior through catalytic RNA molecules. The second and major contribution is a new genetic circuit model demonstrating that a repressor molecule acting on the positive feedback of a self-activating gene produces reliable oscillations. First contribution: A new model of a synthetic genetic oscillator based on a typical two-gene motif with one positive and one negative feedback loop is pre¬sented. The originality is that the repressor is a catalytic RNA molecule rather than a protein or a non-catalytic RNA molecule. This catalytic RNA is a ribozyme that acts post-transcriptionally by binding to and cleaving target mRNA molecules. This genetic clock involves just two genes, a mRNA and an activator protein, apart from the ribozyme. Parameter values that produce a circadian period in both determin¬istic and stochastic simulations have been chosen as an example of clock operation. The effects of the stochastic fluctuations are quantified by a period histogram and autocorrelation function. The conclusion is that catalytic RNA molecules can act as repressor proteins and simplify the design of genetic oscillators. Second and major contribution: It is demonstrated that a self-activating gene in conjunction with a simple negative interaction can easily produce robust matically validated. This model is comprised of two clearly distinct parts. The first is a positive feedback created by a protein that binds to the promoter of its own gene and activates the transcription. The second is a negative interaction in which a repressor molecule prevents this protein from binding to its promoter. A stochastic study shows that the system is robust to noise. A deterministic study identifies that the oscillator dynamics are mainly driven by two types of biomolecules: the protein, and the complex formed by the repressor and this protein. The main conclusion of this study is that a simple and usual negative interaction, such as degradation, se¬questration or inhibition, acting on the positive transcriptional feedback of a single gene is a sufficient condition to produce reliable oscillations. One gene is enough and the positive transcriptional feedback signal does not need to activate a second repressor gene. At the genetic level, this means that an explicit negative feedback loop is not necessary. Unlike many genetic oscillators, this model needs neither cooperative binding reactions nor the formation of protein multimers. Applications and future research directions: Recently, RNA molecules have been found to play many new catalytic roles. The first oscillatory genetic model proposed in this thesis uses ribozymes as repressor molecules. This could provide new synthetic biology design principles and a better understanding of cel¬lular clocks regulated by RNA molecules. The second genetic model proposed here involves only a repression acting on a self-activating gene and produces robust oscil¬lations. Unlike current two-gene oscillators, this model surprisingly does not require a second repressor gene. This result could help to clarify the design principles of cellular clocks and constitute a new efficient tool for engineering synthetic genetic oscillators. Possible follow-on research directions are: validate models in vivo and in vitro, research the potential of second model as a genetic memory, investigate new genetic oscillators regulated by non-coding RNAs and design a biosensor of positive feedbacks in genetic networks based on the operation of the second model Resumen Introduccion y motivacion: Una amplia variedad de organismos han desarro-llado relojes biomoleculares internos con el fin de adaptarse a los cambios ciclicos del entorno. El funcionamiento de estos relojes involucra redes geneticas. El mo delado de estas redes geneticas es esencial tanto para entender los mecanismos que producen las oscilaciones como para diseiiar nuevos circuitos sinteticos en celulas. Esta tesis doctoral ha dado lugar a dos contribuciones dentro de los campos de los circuitos geneticos en particular, y biologia de sistemas y sintetica en general. La primera contribucion es un nuevo modelo de circuito genetico que muestra un comportamiento oscilatorio usando moleculas de ARN cataliticas. La segunda y principal contribucion es un nuevo modelo de circuito genetico que demuestra que una molecula represora actuando sobre el lazo de un gen auto-activado produce oscilaciones robustas. Primera contribucion: Es un nuevo modelo de oscilador genetico sintetico basado en una tipica red genetica compuesta por dos genes con dos lazos de retroa-limentacion, uno positivo y otro negativo. La novedad de este modelo es que el represor es una molecula de ARN catalftica, en lugar de una protefna o una molecula de ARN no-catalitica. Este ARN catalitico es una ribozima que actua despues de la transcription genetica uniendose y cortando moleculas de ARN mensajero (ARNm). Este reloj genetico involucra solo dos genes, un ARNm y una proteina activadora, aparte de la ribozima. Como ejemplo de funcionamiento, se han escogido valores de los parametros que producen oscilaciones con periodo circadiano (24 horas) tanto en simulaciones deterministas como estocasticas. El efecto de las fluctuaciones es-tocasticas ha sido cuantificado mediante un histograma del periodo y la función de auto-correlacion. La conclusion es que las moleculas de ARN con propiedades cataliticas pueden jugar el misnio papel que las protemas represoras, y por lo tanto, simplificar el diseno de los osciladores geneticos. Segunda y principal contribucion: Es un nuevo modelo de oscilador genetico que demuestra que un gen auto-activado junto con una simple interaction negativa puede producir oscilaciones robustas. Este modelo ha sido estudiado y validado matematicamente. El modelo esta compuesto de dos partes bien diferenciadas. La primera parte es un lazo de retroalimentacion positiva creado por una proteina que se une al promotor de su propio gen activando la transcription. La segunda parte es una interaction negativa en la que una molecula represora evita la union de la proteina con el promotor. Un estudio estocastico muestra que el sistema es robusto al ruido. Un estudio determinista muestra que la dinamica del sistema es debida principalmente a dos tipos de biomoleculas: la proteina, y el complejo formado por el represor y esta proteina. La conclusion principal de este estudio es que una simple y usual interaction negativa, tal como una degradation, un secuestro o una inhibition, actuando sobre el lazo de retroalimentacion positiva de un solo gen es una condition suficiente para producir oscilaciones robustas. Un gen es suficiente y el lazo de retroalimentacion positiva no necesita activar a un segundo gen represor, tal y como ocurre en los relojes actuales con dos genes. Esto significa que a nivel genetico un lazo de retroalimentacion negativa no es necesario de forma explicita. Ademas, este modelo no necesita reacciones cooperativas ni la formation de multimeros proteicos, al contrario que en muchos osciladores geneticos. Aplicaciones y futuras lineas de investigacion: En los liltimos anos, se han descubierto muchas moleculas de ARN con capacidad catalitica. El primer modelo de oscilador genetico propuesto en esta tesis usa ribozimas como moleculas repre¬soras. Esto podria proporcionar nuevos principios de diseno en biologia sintetica y una mejor comprension de los relojes celulares regulados por moleculas de ARN. El segundo modelo de oscilador genetico propuesto aqui involucra solo una represion actuando sobre un gen auto-activado y produce oscilaciones robustas. Sorprendente-mente, un segundo gen represor no es necesario al contrario que en los bien conocidos osciladores con dos genes. Este resultado podria ayudar a clarificar los principios de diseno de los relojes celulares naturales y constituir una nueva y eficiente he-rramienta para crear osciladores geneticos sinteticos. Algunas de las futuras lineas de investigation abiertas tras esta tesis son: (1) la validation in vivo e in vitro de ambos modelos, (2) el estudio del potential del segundo modelo como circuito base para la construction de una memoria genetica, (3) el estudio de nuevos osciladores geneticos regulados por ARN no codificante y, por ultimo, (4) el rediseno del se¬gundo modelo de oscilador genetico para su uso como biosensor capaz de detectar genes auto-activados en redes geneticas.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Much work has been done in the áreas of and-parallelism and data parallelism in Logic Programs. Such work has proceeded to a certain extent in an independent fashion. Both types of parallelism offer advantages and disadvantages. Traditional (and-) parallel models offer generality, being able to exploit parallelism in a large class of programs (including that exploited by data parallelism techniques). Data parallelism techniques on the other hand offer increased performance for a restricted class of programs. The thesis of this paper is that these two forms of parallelism are not fundamentally different and that relating them opens the possibility of obtaining the advantages of both within the same system. Some relevant issues are discussed and solutions proposed. The discussion is illustrated through visualizations of actual parallel executions implementing the ideas proposed.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

This paper presents some fundamental properties of independent and-parallelism and extends its applicability by enlarging the class of goals eligible for parallel execution. A simple model of (independent) and-parallel execution is proposed and issues of correctness and efficiency discussed in the light of this model. Two conditions, "strict" and "non-strict" independence, are defined and then proved sufficient to ensure correctness and efñciency of parallel execution: if goals which meet these conditions are executed in parallel the solutions obtained are the same as those produced by standard sequential execution. Also, in absence of failure, the parallel proof procedure does not genérate any additional work (with respect to standard SLD-resolution) while the actual execution time is reduced. Finally, in case of failure of any of the goals no slow down will occur. For strict independence the results are shown to hold independently of whether the parallel goals execute in the same environment or in sepárate environments. In addition, a formal basis is given for the automatic compile-time generation of independent and-parallelism: compile-time conditions to efficiently check goal independence at run-time are proposed and proved sufficient. Also, rules are given for constructing simpler conditions if information regarding the binding context of the goals to be executed in parallel is available to the compiler.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

This paper proposes a diagnosis algorithm for locating a certain kind of errors in logic programs: variable binding errors that result in abstract symptoms during compile-time checking of assertions based on abstract interpretation. The diagnoser analyzes the graph generated by the abstract interpreter, which is a provably safe approximation of the program semantics. The proposed algorithm traverses this graph to find the point where the actual error originates (a reason of the symptom), leading to the point the error has been reported (the symptom). The procedure is fully automatic, not requiring any interaction with the user. A prototype diagnoser has been implemented and preliminary results are encouraging.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

We present two new algorithms which perform automatic parallelization via source-to-source transformations. The objective is to exploit goal-level, unrestricted independent and-parallelism. The proposed algorithms use as targets new parallel execution primitives which are simpler and more flexible than the well-known &/2 parallel operator. This makes it possible to genérate better parallel expressions by exposing more potential parallelism among the literals of a clause than is possible with &/2. The difference between the two algorithms stems from whether the order of the solutions obtained is preserved or not. We also report on a preliminary evaluation of an implementation of our approach. We compare the performance obtained to that of previous annotation algorithms and show that relevant improvements can be obtained.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

We present a static analysis that infers both upper and lower bounds on the usage that a logic program makes of a set of user-definable resources. The inferred bounds will in general be functions of input data sizes. A resource in our approach is a quite general, user-defined notion which associates a basic cost function with elementary operations. The analysis then derives the related (upper- and lower-bound) resource usage functions for all predicates in the program. We also present an assertion language which is used to define both such resources and resourcerelated properties that the system can then check based on the results of the analysis. We have performed some preliminary experiments with some concrete resources such as execution steps, bytes sent or received by an application, number of files left open, number of accesses to a datábase, number of calis to a procedure, number of asserts/retracts, etc. Applications of our analysis include resource consumption verification and debugging (including for mobile code), resource control in parallel/distributed computing, and resource-oriented specialization.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Predicting statically the running time of programs has many applications ranging from task scheduling in parallel execution to proving the ability of a program to meet strict time constraints. A starting point in order to attack this problem is to infer the computational complexity of such programs (or fragments thereof). This is one of the reasons why the development of static analysis techniques for inferring cost-related properties of programs (usually upper and/or lower bounds of actual costs) has received considerable attention.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

We propose an analysis for detecting procedures and goals that are deterministic (i.e. that produce at most one solution), or predicates whose clause tests are mutually exclusive (which implies that at most one of their clauses will succeed) even if they are not deterministic (because they cali other predicates that can produce more than one solution). Applications of such determinacy information include detecting programming errors, performing certain high-level program transformations for improving search efñciency, optimizing low level code generation and parallel execution, and estimating tighter upper bounds on the computational costs of goals and data sizes, which can be used for program debugging, resource consumption and granularity control, etc. We have implemented the analysis and integrated it in the CiaoPP system, which also infers automatically the mode and type information that our analysis takes as input. Experiments performed on this implementation show that the analysis is fairly accurate and efncient.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

A new formalism, called Hiord, for defining type-free higherorder logic programming languages with predicate abstraction is introduced. A model theory, based on partial combinatory algebras, is presented, with respect to which the formalism is shown sound. A programming language built on a subset of Hiord, and its implementation are discussed. A new proposal for defining modules in this framework is considered, along with several examples.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

We propose a general framework for assertion-based debugging of constraint logic programs. Assertions are linguistic constructions for expressing properties of programs. We define several assertion schemas for writing (partial) specifications for constraint logic programs using quite general properties, including user-defined programs. The framework is aimed at detecting deviations of the program behavior (symptoms) with respect to the given assertions, either at compile-time (i.e., statically) or run-time (i.e., dynamically). We provide techniques for using information from global analysis both to detect at compile-time assertions which do not hold in at least one of the possible executions (i.e., static symptoms) and assertions which hold for all possible executions (i.e., statically proved assertions). We also provide program transformations which introduce tests in the program for checking at run-time those assertions whose status cannot be determined at compile-time. Both the static and the dynamic checking are provably safe in the sense that all errors flagged are definite violations of the pecifications. Finally, we report briefly on the currently implemented instances of the generic framework.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

We propose a general framework for assertion-based debugging of constraint logic programs. Assertions are linguistic constructions which allow expressing properties of programs. We define assertion schemas which allow writing (partial) specifications for constraint logic programs using quite general properties, including user-defined programs. The framework is aimed at detecting deviations of the program behavior (symptoms) with respect to the given assertions, either at compile-time or run-time. We provide techniques for using information from global analysis both to detect at compile-time assertions which do not hold in at least one of the possible executions (i.e., static symptoms) and assertions which hold for all possible executions (i.e., statically proved assertions). We also provide program transformations which introduce tests in the program for checking at run-time those assertions whose status cannot be determined at compile-time. Both the static and the dynamic checking are provably safe in the sense that all errors flagged are definite violations of the specifications. Finally, we report on an implemented instance of the assertion language and framework.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

It is generally recognized that information about the runtime cost of computations can be useful for a variety of applications, including program transformation, granularity control during parallel execution, and query optimization in deductive databases. Most of the work to date on compile-time cost estimation of logic programs has focused on the estimation of upper bounds on costs. However, in many applications, such as parallel implementations on distributed-memory machines, one would prefer to work with lower bounds instead. The problem with estimating lower bounds is that in general, it is necessary to account for the possibility of failure of head unification, leading to a trivial lower bound of 0. In this paper, we show how, given type and mode information about procedures in a logic program, it is possible to (semi-automatically) derive nontrivial lower bounds on their computational costs. We also discuss the cost analysis for the special and frequent case of divide-and-conquer programs and show how —as a pragmatic short-term solution —it may be possible to obtain useful results simply by identifying and treating divide-and-conquer programs specially.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

We provide a method whereby, given mode and (upper approximation) type information, we can detect procedures and goals that can be guaranteed to not fail (i.e., to produce at least one solution or not termínate). The technique is based on an intuitively very simple notion, that of a (set of) tests "covering" the type of a set of variables. We show that the problem of determining a covering is undecidable in general, and give decidability and complexity results for the Herbrand and linear arithmetic constraint systems. We give sound algorithms for determining covering that are precise and efiicient in practice. Based on this information, we show how to identify goals and procedures that can be guaranteed to not fail at runtime. Applications of such non-failure information include programming error detection, program transiormations and parallel execution optimization, avoiding speculative parallelism and estimating lower bounds on the computational costs of goals, which can be used for granularity control. Finally, we report on an implementation of our method and show that better results are obtained than with previously proposed approaches.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Global analysis of logic programs can be performed effectively by the use of one of several existing efficient algorithms. However, the traditional global analysis scheme in which all the program code is known in advance and no previous analysis information is available is unsatisfactory in many situations. Incrementa! analysis of logic programs has been shown to be feasible and much more efficient in certain contexts than traditional (non-incremental) global analysis. However, incremental analysis poses additional requirements on the fixpoint algorithm used. In this work we identify these requirements, present an important class of strategies meeting the requirements, present sufficient a priori conditions for such strategies, and propose, implement, and evalúate experimentally a novel algorithm for incremental analysis based on these ideas. The experimental results show that the proposed algorithm performs very efficiently in the incremental case while being comparable to (and, in some cases, considerably better than) other state-of-the-art analysis algorithms even for the non-incremental case. We argüe that our discussions, results, and experiments also shed light on some of the many tradeoffs involved in the design of algorithms for logic program analysis.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Abstract is not available.