A SOFTWARE ENVIRONMENT FOR VERIFIABLE MODELING AND SIMULATION. Amanda Grace Rapsang Arjun Saha Kannan M. Moudgalya G. Sivakumar

Size: px
Start display at page:

Download "A SOFTWARE ENVIRONMENT FOR VERIFIABLE MODELING AND SIMULATION. Amanda Grace Rapsang Arjun Saha Kannan M. Moudgalya G. Sivakumar"

Transcription

1 A SOFTWARE ENVIRONMENT FOR VERIFIABLE MODELING AND SIMULATION Amanda Grace Rapsang Arjun Saha Kannan M. Moudgalya G. Sivakumar Department of Chemical Engineering Department of Computer Science and Engineering Indian Institute of Technology, Bombay, Mumbai Abstract: We report the progress in development of a software that can simulate and verify applications from various types of engineering domains. In this work, complex circuits are broken down into connected constituent blocks. We model each block by a Block Definition Language (BDL). An application can be modeled by a Model Definition Language in which BDLs are interconnected. Declarative features used give the facility to express properties and constraints. This approach is also Object Oriented. Keywords: Software Environment, Modeling, Simulation, Process Control, Verification 1. INTRODUCTION Simulation is an important activity in the modern industry: it is used in process design, optimization, controller design, controller implementation, what if analysis and debottlenecking studies, to name a few. These are time consuming activities. Finally, these can be done only by highly skilled and trained manpower (Rao 1998). It is clear that we need a simulator to support these activities. The simulator should allow reuse of models, group effort and existing pieces of code, such as, state of the art solvers. Finally, it should allow us to verify that the results given by the simulator are correct. With these in mind, we have been developing a simulator at IIT Bombay, with the following interesting features. The Block Definition Language (BDL) can be both static and dynamic depending on the domain. Each input to a block can have one or more parameter, i.e., an input can be a multivalued input. Each basic block can be combined together to form a super block, which can be used as a basic block. The application builder has the capability to enable user to add components of the design by a click and drag of the mouse as well as adding a number of similar block at once by specifying the parameters needed, such as block type, number of blocks needed, spacing between them, etc. Some of the variables in the dynamic BDL, such as enthalpy of the input stream to the block, will need domain knowledge. This information can be obtained from the domain database. This interaction with the database

2 and also constant updation of the database for unknown components and their properties entered by the user, helps the system work at the domain level. Verification or checking of system correctness of an application system can be done by interfacing the tool with some already existing verification tool. Object oriented approach is used for designing the tool. 2. FLOWSHEET DESIGN OF THE TOOL The flowsheet of the tool design is given in Fig. 1. Each block is modeled by a BDL. The BDL can be both static and dynamic depending on the domain. For example, in the hardware domain, static BDLs are mostly used, whereas in the chemical engineering domain, the BDLs need to be dynamic as equations are structured which depend on some conditions which are known only at run time (e.g., number of components). Dynamic BDLs are written in structured loop forms which are expanded when runtime conditions are known. The BDL generator sends the corresponding block equations at the time of flowsheet generation. The GUI for building blocks enables the user to define basic blocks (both static and dynamic). It can take existing BDLs from the Block Class Library and the user can then modify or combine them. These new BDLs can then be added to the Block Class Library for re-use at a later time. The Application Builder is the front end where the user designs his application. The graphical application is then converted to Model Definition Language (MDL) which is composed of BDLs interconnected together. For building an application, the user can click on a button for a particular block desired or can specify the type and number of blocks needed and how they are to be interconnected together. This parameterized way of drawing blocks to a GUI is a new method which helps simplify the task. The Parser generates from the MDL executable code along with the necessary domain equations. The executable code is generated to perform the function of each block needed during simulation. The equations which compose of Block Equations i.e. equations of each BDL and connectivity equations, when the blocks are interconnected together. In some cases such as the Distillation Column System, where the connectivity equations are structured, MDL Templates are written. Whenever the user wishes to simulate for different number of components, the system would generate the static MDL from the MDL template. The MDL Generator uses these MDL templates and BDLs to give the final MDL. In the Post-Processing, Simulation and Animation phase, the user can provide inputs for simulation such as, timer delay and initial values. As explained in Sec. 2.3, a solvable set of equations are obtained. These equations are sent to a solver for solution and the results are displayed. We will next present examples for the use of BDL and MDL. We will also discuss some of the postprocessing steps. 2.1 BDL In this section we will see how a block is modeled using BDL. The standard types are available: I is type Integer for an input or output and R is real. We can also have types, such as, type V, for voltage and C for current. We can define such domain dependent types. Each function of a block is specified in the FUNCTION. We also have the facility to call domain dependent functions, for example, we can call the VLE function in case of chemical engineering. For a condenser, the BDL is as follows: BEGIN BASIC BEGIN DEFINE NAME Condenser SHAPE R END DEFINE BEGIN PROPERTY n : I i : I M[n]: Dat1 P[n]: R T[n]: R END PROPERTY BEGIN INPUT NAME A TYPE MULTI NAME V[n] TYPE Dat1 END INPUT BEGIN OUTPUT NAME B TYPE MULTI NAME LO[n] TYPE Dat1 NAME D[n] TYPE Dat1 END OUTPUT FUNCTION chemical subroutines BEGIN HV[n] = HV finder() HLO[n] = HLO finder() END

3 Domain Knowledge (Access to domain database) Parser MDL Block Equations Connectivity Equations ExecutableCode (for blocks functions) Application Builder MDL Generator Post-Processor Simulation Simulation/ Animation Interface Static BDLs Dynamic BDLs BDL Generator GUI for building blocks User Solver Fig. 1. Tool Design BEGIN EQUATIONS <Sum; i : 1, total components> Sum(M[n].m[i])*d(HLO[n],t)=Sum(V[n].m[i])*HV[n]- (Sum(LO[n].m[i])+Sum(D[n].m[i]))*HLO[n]; </Sum> <for; i: 1,total components> d(m[n].m[i],t)=v[n].m[i]-(lo[n].m[i]+d[n].m[i]); <Sum; i: 1, total components> (LO[n].m[i])/Sum(LO[n].m[i])= (D[n].m[i])/Sum(D[n].m[i]); (LO[n].m[i])/Sum(LO[n].m[i])= (M[n].m[i])/Sum(M[n].m[i]); </sum> </for> END EQUATIONS The BDLs for the tray and reboiler are also the same as for condenser with a difference in equations. Their equations are given below: Equations for Tray: Sum(M[n].m[i]) * d(hlo[n],t) = Sum(F[n].m[i]) * HF[n] + Sum(L[n].m[i]) * HL[n] + Sum(V[n].m[i])*HV[n] - (Sum(LO[n].m[i]) * HLO[n] + Sum(VO[n].m[i]) * HVO[n]); <for; i: 1,total components> d(m[n].m[i],t)=f[n].m[i]+l[n].m[i]+v[n].m[i]- (LO[n].m[i]+VO[n].m[i]); <Sum; i: 1, total components> (LO[n].m[i])/Sum(LO[n].m[i])= (M[n].m[i])/Sum(M[n].m[i]); (VO[n].m[i])/Sum(VO[n].m[i])= K[n][i]*(M[n].m[i])/Sum(M[n].m[i]); </sum> </for> Equations for Re-Boiler: Sum(M[n].m[i])*d(HLO[n],t) = Sum(L[n].m[i])* HL[n] - (Sum(VO[n].m[i]) + Sum(B[n].m[i])) * HVO[n]; <for; i: 1,total components> Lo[n] M[n] V[n] D[n] Fig. 2. Block Diagram of a Condenser d(m[n].m[i],t)=l[n].m[i]-(vo[n].m[i]+b[n].m[i]); <Sum; i: 1, total components> (VO[n].m[i])/Sum(VO[n].m[i])=(B[n].m[i])/Sum(B[n].m[i]); (VO[n].m[i])/Sum(VO[n].m[i])= K[n][i] * (M[n].m[i])/Sum(M[n].m[i]); </sum> </for> P[n] and T[n] stand for Pressure and Temperature of the block respectively. M[n] stands for the liquid holdup of the block (Vapor holdup is neglected) L[n] stands for the input Liquid Stream into the block. L[n] stands for the input Liquid Stream into the block. Similarly, V[n] stands for the input Vapor Stream into the block and VO[n] stands for the output Vapor Stream of the block. In the tray BDL, F[n] stands for the input Feed to the block. In the condenser BDL, D[n] stands for the output Liquid Stream that flows out of the system. In the reboiler BDL, B[n] stands for the output Vapor Stream that flows out of the system. Class Dat1 is a special class used for the chemical engineering domain and is used as follows: If LO[n] be of type Dat1, then LO[n].m[1] is the flowrate of

4 the 1st component of the output Liquid Stream. Similarly LO[n].m[2] is the flowrate of the 2nd component and so on till total components which is the total number of components of the system. For the Condenser Block Equations: All the Equations inside the for loop is expanded at runtime when the number of components total components are known. The 1st Equation is an Enthalpy Balance. HLO[n] stands for the enthalpy of the output Liquid Stream and is calculated by an external subroutine called HLO finder.java. An example of how the Enthalpy for a particular block can be calculated is: H[n][i] = R[A[i](T [n] T ref ) + B[i] 2 (T [n]2 T 2 ref ) + C[i] 3 (T [n]3 T 3 ref )] where A[i], B[i], C[i] are the Enthalpy constants for component i. T ref is the reference temperature specified by domain conditions. Combining all such component enthalpies for any stage we get: H[n] = components i=1 H[n][i] HV[n] and HVO[n] are calculated similarly but are for vapor components (here we add the latent heat of vaporization to H[n]). HL[n] and HLO[n] are calculated for the liquid components. The Sum notation means that an internal loop is formed to calculate recursively the sum of what is present inside the Sum parentheses. E.g. Sum(M[n].m[i]) is equivalent to, for a 2 component system, (M[n].m[1] + M[n].m[2]). The notation d(hlo[n],t) denotes the derivative of the Enthalpy of the Output Liquid Stream with respect to time. Similarly, all the other stream enthalpies are calculated. The 2nd Equation is a component mass balance equation, where the notation The 3rd Equations basically states that since both LO[n] and D[n] have the same composition, their individual component mole fractions can be equated. The 4th Equation does the same for M[n] and LO[n]. For the Tray Block Equations: The 1st Equation is again an Enthalpy Balance, which here also incorporates the Feed Enthalpy since there is Feed to the Tray. The 2nd and 3rd Equation are similar to the ones in the Condenser BDL. The 4th Equation is the VLE equation which relates the mole fraction of each component in the output vapor phase to the mole fraction of the same component in the output liquid phase. The proportionality constant is K[n][i] which is again calculated through an external subroutine called K finder.java. An example of how these K values can be calculated is as follows: K[n][i] = Pc[i] P [n] 14.7 exp[a a 1[i] 2[i] 1.8T [n] 460+a ] 3[i] where, P c [i], a 1 [i], a 2 [i], a 3 [i] are constants for component i. 2.2 MDL When a number of these BDLs modeling different or same type of blocks, are interconnected we get an MDL,i.e., an MDL is a a number of BDLs, connection between them and the equations. An MDL is similar to a BDL in properties, input and output specification. Apart from these, it has the connection specification and also the component blocks. Example for a 3 block, 2 component system is given below: BEGIN MDL /*properties specification*/ /*input specification*/ /*output specification*/ BLOCK reboiler NAME first reboiler END BLOCK BLOCK tray NAME first tray END BLOCK BLOCK condenser NAME first condenser END BLOCK END MDL BEGIN CONNECTION CONNECT connect one FROM V[2] TO VO[1] TYPE FF END CONNECT /*other connections*/ END CONNECTION This lists the connectivity equations of the connected blocks. E.g since the vapor output of block 1 (re-boiler) is equal to the input vapor of block 2 (tray), a sample equation is, V[2] = VO[1]. The final set of equations is shown below: (M[1].m[1] + M[1].m[2]) * d(hlo[1],t)=(l[1].m[1] + L[1].m[2]) * HL[1] - (VO[1].m[1] + VO[1].m[2]) + (B[1].m[1] + B[1].m[2]) * HVO[1]; d(m[1].m[1],t) = L[1].m[1] - (VO[1].m[1] + B[1].m[1]); d(m[1].m[2],t) = L[1].m[2] - (VO[1].m[2] + B[1].m[2]); (VO[1].m[1])/(VO[1].m[1] + VO[1].m[2]) = (B[1].m[1])/(B[1].m[1] + B[1].m[2]); (VO[1].m[2])/(VO[1].m[1] + VO[1].m[2]) = (B[1].m[2])/(B[1].m[1] + B[1].m[2]); (VO[1].m[1])/(VO[1].m[1] + VO[2].m[2]) = K[1][1] * (M[1].m[1])/(M[1].m[1] + M[1].m[2]);

5 (VO[1].m[2])/(VO[1].m[1] + VO[2].m[2]) = K[1][2] * (M[1].m[2])/(M[1].m[1] + M[1].m[2]); (M[2].m[1] + M[2].m[2]) * d(hlo[2],t) = (F[2].m[1] + F[2].m[2]) * HF[2] + (L[1].m[1] + L[1].m[2]) * HL[2] + (V[1].m[1] + V[1].m[2]) * HV[n] - ((LO[1].m[1] + LO[1].m[2]) * HLO[2] + (VO[1].m[1] + VO[1].m[2]) * HVO[2]); d(m[2].m[1],t) = F[2].m[1] + L[2].m[1] + V[2].m[1] - (LO[2].m[1] + VO[2].m[1]); d(m[2].m[2],t) = F[2].m[2] + L[2].m[2] + V[2].m[2] - (LO[2].m[2] + VO[2].m[2]); (LO[2].m[1])/(LO[2].m[1] + LO[2].m[2]) = (M[2].m[1])/(M[2].m[1] + M[2].m[2]); (LO[2].m[2])/(LO[2].m[1] + LO[2].m[2]) = (M[2].m[2])/(M[2].m[1] + M[2].m[2]); (VO[2].m[1])/(VO[2].m[1] + VO[2].m[2]) = K[2][1] * (M[2].m[1])/(M[2].m[1] + M[2].m[2]); (VO[2].m[2])/(VO[2].m[1] + VO[2].m[2]) = K[2][2] * (M[2].m[2])/(M[2].m[1] + M[2].m[2]); (M[3].m[1] + M[3].m[2]) * d(hlo[3],t) = (V[3].m[1] + V[3].m[2]) * HV[3] - (LO[3].m[1] + LO[3].m[2] + D[3].m[1] + D[3].m[2]) * HLO[3]; d(m[3].m[1],t) = V[3].m[1] - (LO[3].m[1] + D[3].m[1]); d(m[3].m[2],t) = V[3].m[2] - (LO[3].m[2] + D[3].m[2]); (LO[3].m[1])/(LO[3].m[1] + LO[3].m[2]) = (D[3].m[1])/(D[3].m[1] + D[3].m[2]); (LO[3].m[2])/(LO[3].m[1] + LO[3].m[2]) = (D[3].m[2])/(D[3].m[1] + D[3].m[2]); (LO[3].m[1])/(LO[3].m[1] + LO[3].m[2]) = (M[3].m[1])/(M[3].m[1] + M[3].m[2]); (LO[3].m[2])/(LO[3].m[1] + LO[3].m[2]) = (M[3].m[2])/(M[3].m[1] + M[3].m[2]); V[2]=VO[1]; V[3]=VO[2]; L[1]=LO[2]; L[2]=LO[3]; 2.3 Post-Processing Steps After the equations are created, values have to be assigned to some variables so that the equations become solvable. The following guidelines are to be used while taking user input: (1) There should be at least one unknown in each equation. (2) Every variable should come in at least one equation. (3) Finally, number of variables should be equal to the number of equations. In the next section, verification part will be dealt with. 3. VERIFYING CORRECTNESS The correct behavior of a system depends on results of computation and on the time on which reactions are performed. In order to verify the correctness of an application, verification tools are needed. While simulation allows the user to exercise their design before implementation, verification ensures that a system correctly implements a specific function (Clarke and Wing 1996). This helps avoid any illogical results and runtime errors that the final simulation might generate. In addition to facilities like design, graphical simulation and code generation, the tool also provide a hook in which verification can be done. For the purpose of verification, a model of the application will be generated. Along with the model, properties of the system to be verified will also be generated. This model along with the properties are then given to a verification tool. The figure below shows the design of the tool with verification facility incorporated into it. The parser in addition to generation of code and equations needed for simulation also generate a model and properties of the application for verification. Currently we are trying to generate a model for HOL(theorem proving program) but we have provide facility in which models in promella for SPIN, spl for STeP, etc can also be generated at a later stage. We will illustrate this by a hardware verification (Kern and Greenstreet 1999) example. Consider the fragment of an adder circuit given below. We wish to verify that o = (i1 + i2 + cin MOD 2) There are three steps involve in doing this: cin i1 i2 Fig. 4. Fragment of an adder circuit (1) write a specification of the circuit in logic (2) formulate the correctness of the circuit (3) prove the correctness of the circuit 3.1 Specify the circuit p Specification of an XOR gate: Xor(i1, i2, o) = (o = (i1 = i2)) Specification of the adder circuit: Add(cin, i1, i2, o) = p.xor(cin, i1, p) Xor(p, i2, o) ML source text: val Xor = Define Xor(i1, i2, o) = (o = (i1 : bool = i2)) ; valadd = Define Add(cin, i1, i2, o) = p. Xor(cin, i1, p) Xor(i2, p, o) ; o

6 Parser User Implementation Properties... OO Simulation environment System Properties Specification Verification Tool Promella Spin SPL STeP... HOL PVS... Domain Verification Model Checking Theorem Proving Fig. 3. Verification facility incorporated into the tool Proof or Counter Example 3.2 Formulate Correctness Abstraction function from bool to num: Bv(b) = if b then 1 else 0 Logical formulation of correctness: cin i1 i2 o. Add(cin, i1, i2, o) Bv o = (Bv i1 + Bv i2 + Bv cin) MOD 2 ML source text: val Bv = Define Bv b = if b then 1 else 0 ; g cin i1 i2 o. Add(cin, i1, i2, o) (Bv o = (Bv i1 + Bv i2 + Bv cin) MOD 2) ; The g function establishes a formula as a goal that we wish to prove The next step is to develop the proof interactively. For this the user has to know HOL. The above example is verification for a hardware circuit. We have to come up with techniques for verifying engineering processes. For example, each conservation equation (e.g. mass balance) has to be checked and validated for the entire flowsheet. This involves collection of the conservation equation in question from all the building blocks of the flowsheet. 4. CONCLUSION In this paper, we have described the design of our tool - flowsheet design, BDL/MDL and verification part. The simulation part have been implemented and the work on verification part of the tool is still being carried on. The tool will generate a model of an application for a particular verification tool, but the user has to know how to use the verification tool. At present, the work for each domain is carried out independently, and integration of all these parts, which will be our next step of work, will give us the complete tool. That the tool is able to simulate applications from different domains is accredited to the parser, which has the capability of interfacing the system with solvers, domain databases and verification tools and the structure of the BDL and MDL, which is able to represent blocks from different domain using the same structure. REFERENCES Clarke, E. and J. Wing (1996). Formal methods: State of the art and future directions. Technical Report CMU-CS CMU Computer Science. Kern, C. and M. Greenstreet (1999). Formal verification in hardware design: A survey. ACM Transactions on Design Automation of E. Systems 4, Rao, S. Hanumantha (1998). A Software Architecture for Modelling and Simulation ofcontinuous Engineering Systems. PhD thesis. IIT Bombay.

You will be prompted to start video or register now, exit out of this pop up to continue to the program

You will be prompted to start video or register now, exit out of this pop up to continue to the program Aspen Plus Tutorial Start Menu -> All Programs -> Aspen Plus -> Aspen Plus V9 You will be prompted to start video or register now, exit out of this pop up to continue to the program If you want to start

More information

COPYRIGHTED MATERIAL INTRODUCTION TO ASPEN PLUS CHAPTER ONE

COPYRIGHTED MATERIAL INTRODUCTION TO ASPEN PLUS CHAPTER ONE CHAPTER ONE INTRODUCTION TO ASPEN PLUS Aspen Plus is based on techniques for solving flowsheets that were employed by chemical engineers many years ago. Computer programs were just beginning to be used,

More information

This tutorial walks you through the process of using CC BATCH to simulate a batch distillation column.

This tutorial walks you through the process of using CC BATCH to simulate a batch distillation column. CC-BATCH Tutorial This tutorial walks you through the process of using CC BATCH to simulate a batch distillation column. Description of the Problem The simulation you will create is a five step batch distillation

More information

Tips and FAQ Revised: Nov 13, Aspen Plus Tips. Tips and Frequently Asked Questions

Tips and FAQ Revised: Nov 13, Aspen Plus Tips. Tips and Frequently Asked Questions Aspen Plus Tips Tips and Frequently Asked Questions This quick start guide is intended to supply first time Aspen Plus users with helpful tips and advice to accelerate the learning curve associated with

More information

Distl A Shortcut Distillation Model in Aspen Plus V8.0

Distl A Shortcut Distillation Model in Aspen Plus V8.0 Distl A Shortcut Distillation Model in Aspen Plus V8.0 1. Lesson Objectives Become familiar with the Distl model Learn the limitations of shortcut methods Learn how to move from Distl to RadFrac Design

More information

VERSION RELEASE NOTES... 2 VERSION RELEASE NOTES... 3 VERSION RELEASE NOTES... 5

VERSION RELEASE NOTES... 2 VERSION RELEASE NOTES... 3 VERSION RELEASE NOTES... 5 Contents VERSION 6.3.3.4657 RELEASE NOTES... 2... 2... 2... 2 CC-BATCH... 2 VERSION 6.3.2.4389 RELEASE NOTES... 3... 3... 3... 3 CC-DYNAMICS... 4 CC-BATCH... 4 VERSION 6.3.1.4112 RELEASE NOTES... 5...

More information

Getting started with BatchColumn

Getting started with BatchColumn Getting started with BatchColumn Example: Simulation of solvents mixture separation Introduction 2 This document presents the different steps to follow in order to simulate a batch distillation using BatchColumn

More information

Adequacy Testing of Some Algorithms for Feedforward Control of a Propane-propylene Distillation Process

Adequacy Testing of Some Algorithms for Feedforward Control of a Propane-propylene Distillation Process Adequacy Testing of Some Algorithms for Feedforward Control of a Propane-propylene Distillation Process NICOLAE PARASCHIV*, EMIL PRICOP* Petroleum Gas University of Ploiesti,, Control Engineering, Computers

More information

An Overview of the DE Hardware Description Language and Its Application in Formal Verification of the FM9001 Microprocessor

An Overview of the DE Hardware Description Language and Its Application in Formal Verification of the FM9001 Microprocessor An Overview of the DE Hardware Description Language and Its Application in Formal Verification of the FM9001 Microprocessor Cuong Chau ckcuong@cs.utexas.edu Department of Computer Science The University

More information

Type Checking. Outline. General properties of type systems. Types in programming languages. Notation for type rules.

Type Checking. Outline. General properties of type systems. Types in programming languages. Notation for type rules. Outline Type Checking General properties of type systems Types in programming languages Notation for type rules Logical rules of inference Common type rules 2 Static Checking Refers to the compile-time

More information

Outline. General properties of type systems. Types in programming languages. Notation for type rules. Common type rules. Logical rules of inference

Outline. General properties of type systems. Types in programming languages. Notation for type rules. Common type rules. Logical rules of inference Type Checking Outline General properties of type systems Types in programming languages Notation for type rules Logical rules of inference Common type rules 2 Static Checking Refers to the compile-time

More information

Water and Acid will be added to a Mixer so that a specified concentration of Acid will be achieved in the product, stream 3.

Water and Acid will be added to a Mixer so that a specified concentration of Acid will be achieved in the product, stream 3. PROBLEM DESCRIPTION This example will be used to illustrate the mass balance capabilities of METSIM. Water and Acid will be added to a Mixer so that a specified concentration of Acid will be achieved in

More information

SEQUENCES, MATHEMATICAL INDUCTION, AND RECURSION

SEQUENCES, MATHEMATICAL INDUCTION, AND RECURSION CHAPTER 5 SEQUENCES, MATHEMATICAL INDUCTION, AND RECURSION Alessandro Artale UniBZ - http://www.inf.unibz.it/ artale/ SECTION 5.5 Application: Correctness of Algorithms Copyright Cengage Learning. All

More information

Propositional Calculus. Math Foundations of Computer Science

Propositional Calculus. Math Foundations of Computer Science Propositional Calculus Math Foundations of Computer Science Propositional Calculus Objective: To provide students with the concepts and techniques from propositional calculus so that they can use it to

More information

Getting started with ProSimPlus

Getting started with ProSimPlus Getting started with ProSimPlus Part 1: Main features overview Introduction 2 This document presents a general overview of ProSimPlus, ProSim s general steady state simulation software. Although this document

More information

Programa EngIQ- EPS. Programa doutoral em Engenharia da Refinação, Petroquímica e Química. Engenharia de Processos e Sistemas. Process Simulators

Programa EngIQ- EPS. Programa doutoral em Engenharia da Refinação, Petroquímica e Química. Engenharia de Processos e Sistemas. Process Simulators Programa doutoral em Engenharia da Refinação, Petroquímica e Química Engenharia de Processos e Sistemas Process Simulators Fernando G. Martins Departamento de Engenharia Química Faculdade de Engenharia

More information

CMPS 2200 Fall Dynamic Programming. Carola Wenk. Slides courtesy of Charles Leiserson with changes and additions by Carola Wenk

CMPS 2200 Fall Dynamic Programming. Carola Wenk. Slides courtesy of Charles Leiserson with changes and additions by Carola Wenk CMPS 00 Fall 04 Dynamic Programming Carola Wenk Slides courtesy of Charles Leiserson with changes and additions by Carola Wenk 9/30/4 CMPS 00 Intro. to Algorithms Dynamic programming Algorithm design technique

More information

ASSIGNMENT 4 SOLUTIONS

ASSIGNMENT 4 SOLUTIONS MATH 71 ASSIGNMENT SOLUTIONS 1. If F : X X is a function, define f (x) to be (f f)(x), and inductively define f k (x) (f f k 1 )(x) for each integer k. (So f (x) (f f )(x) f(f(f(x))) for instance.) We

More information

Lesson 19: The Graph of a Linear Equation in Two Variables Is a Line

Lesson 19: The Graph of a Linear Equation in Two Variables Is a Line The Graph of a Linear Equation in Two Variables Is a Line Classwork Exercises THEOREM: The graph of a linear equation yy = mmmm + bb is a non-vertical line with slope mm and passing through (0, bb), where

More information

Chapter 1: Number and Operations

Chapter 1: Number and Operations Chapter 1: Number and Operations 1.1 Order of operations When simplifying algebraic expressions we use the following order: 1. Perform operations within a parenthesis. 2. Evaluate exponents. 3. Multiply

More information

ECE468 Computer Organization & Architecture. The Design Process & ALU Design

ECE468 Computer Organization & Architecture. The Design Process & ALU Design ECE6 Computer Organization & Architecture The Design Process & Design The Design Process "To Design Is To Represent" Design activity yields description/representation of an object -- Traditional craftsman

More information

Least Squares; Sequence Alignment

Least Squares; Sequence Alignment Least Squares; Sequence Alignment 1 Segmented Least Squares multi-way choices applying dynamic programming 2 Sequence Alignment matching similar words applying dynamic programming analysis of the algorithm

More information

A simple syntax-directed

A simple syntax-directed Syntax-directed is a grammaroriented compiling technique Programming languages: Syntax: what its programs look like? Semantic: what its programs mean? 1 A simple syntax-directed Lexical Syntax Character

More information

NEW FEATURES IN CHEMCAD VERSION 6: VERSION RELEASE NOTES. CHEMCAD New Features and Enhancements. CHEMCAD Maintenance

NEW FEATURES IN CHEMCAD VERSION 6: VERSION RELEASE NOTES. CHEMCAD New Features and Enhancements. CHEMCAD Maintenance NEW FEATURES IN CHEMCAD VERSION 6: Uses a single mode for flowsheet drawing, specification, calculation, and PFD creation Creates single-file simulations that are easy to work with and share Easy cloning

More information

Abi Farsoni, Department of Nuclear Engineering and Radiation Health Physics, Oregon State University

Abi Farsoni, Department of Nuclear Engineering and Radiation Health Physics, Oregon State University Hardware description language (HDL) Intended to describe circuits textually, for a computer to read Evolved starting in the 1970s and 1980s Popular languages today include: VHDL Defined in 1980s by U.S.

More information

Hardware Description Language VHDL (1) Introduction

Hardware Description Language VHDL (1) Introduction Hardware Description Language VHDL (1) Introduction Digital Radiation Measurement and Spectroscopy NE/RHP 537 Introduction Hardware description language (HDL) Intended to describe circuits textually, for

More information

1.3. Conditional expressions To express case distinctions like

1.3. Conditional expressions To express case distinctions like Introduction Much of the theory developed in the underlying course Logic II can be implemented in a proof assistant. In the present setting this is interesting, since we can then machine extract from a

More information

5 Chemicals Tutorial. Before proceeding, you should have read Chapter 1 - Introduction which precedes the Tutorials in this manual.

5 Chemicals Tutorial. Before proceeding, you should have read Chapter 1 - Introduction which precedes the Tutorials in this manual. Chemicals Tutorial 5-1 5 Chemicals Tutorial The complete case for this tutorial has been pre-built and is located in the file TUTOR3.HSC in your HYSYS\SAMPLES directory. In this Tutorial, a flowsheet for

More information

Modeling Asynchronous Circuits in ACL2 Using the Link-Joint Interface

Modeling Asynchronous Circuits in ACL2 Using the Link-Joint Interface Modeling Asynchronous Circuits in ACL2 Using the Link-Joint Interface Cuong Chau ckcuong@cs.utexas.edu Department of Computer Science The University of Texas at Austin April 19, 2016 Cuong Chau (UT Austin)

More information

NEW FEATURES IN CHEMCAD VERSION 6: VERSION RELEASE NOTES. CHEMCAD New Features and Enhancements. CHEMCAD Maintenance

NEW FEATURES IN CHEMCAD VERSION 6: VERSION RELEASE NOTES. CHEMCAD New Features and Enhancements. CHEMCAD Maintenance NEW FEATURES IN CHEMCAD VERSION 6: Uses a single mode for flowsheet drawing, specification, calculation, and PFD creation Creates single-file simulations that are easy to work with and share Easy cloning

More information

VHDL Structural Modeling II

VHDL Structural Modeling II VHDL Structural Modeling II ECE-331, Digital Design Prof. Hintz Electrical and Computer Engineering 5/7/2001 331_13 1 Ports and Their Usage Port Modes in reads a signal out writes a signal inout reads

More information

Com S 541. Programming Languages I

Com S 541. Programming Languages I Programming Languages I Lecturer: TA: Markus Lumpe Department of Computer Science 113 Atanasoff Hall http://www.cs.iastate.edu/~lumpe/coms541.html TR 12:40-2, W 5 Pramod Bhanu Rama Rao Office hours: TR

More information

Graph Algorithms. Chromatic Polynomials. Graph Algorithms

Graph Algorithms. Chromatic Polynomials. Graph Algorithms Graph Algorithms Chromatic Polynomials Graph Algorithms Chromatic Polynomials Definition G a simple labelled graph with n vertices and m edges. k a positive integer. P G (k) number of different ways of

More information

Propositional Calculus. Math Foundations of Computer Science

Propositional Calculus. Math Foundations of Computer Science Propositional Calculus Math Foundations of Computer Science Propositional Calculus Objective: To provide students with the concepts and techniques from propositional calculus so that they can use it to

More information

Chapter 3 Part 2 Combinational Logic Design

Chapter 3 Part 2 Combinational Logic Design University of Wisconsin - Madison ECE/Comp Sci 352 Digital Systems Fundamentals Kewal K. Saluja and Yu Hen Hu Spring 2002 Chapter 3 Part 2 Combinational Logic Design Originals by: Charles R. Kime and Tom

More information

Binary Search. Roland Backhouse February 5th, 2001

Binary Search. Roland Backhouse February 5th, 2001 1 Binary Search Roland Backhouse February 5th, 2001 Outline 2 An implementation in Java of the card-searching algorithm is presented. Issues concerning the correctness of the implementation are raised

More information

SEQUENCES, MATHEMATICAL INDUCTION, AND RECURSION

SEQUENCES, MATHEMATICAL INDUCTION, AND RECURSION CHAPTER 5 SEQUENCES, MATHEMATICAL INDUCTION, AND RECURSION Copyright Cengage Learning. All rights reserved. SECTION 5.5 Application: Correctness of Algorithms Copyright Cengage Learning. All rights reserved.

More information

Automating Model Composition for Design Verification

Automating Model Composition for Design Verification Automating Model Composition for Design Verification Wladimir Schamai (Airbus Group Innovations) Lena Buffoni (Linköping University) Peter Fritzson (Linköping University) Daniel Bouskela (EDF) MODPROD

More information

I can fluently multiply within 100 using strategies and properties. (i.e., associative property of multiplication; basic facts) I/E R R

I can fluently multiply within 100 using strategies and properties. (i.e., associative property of multiplication; basic facts) I/E R R FOURTH GRADE BROKEN ARROW MATH 1 2 3 Operations and Algebraic Thinking: Use the four operations with whole numbers to solve problems *BA 1 I can explain how a multiplication equation can be used to compare.

More information

Guidelines for Writing Mathematical Proofs

Guidelines for Writing Mathematical Proofs Appendix A Guidelines for Writing Mathematical Proofs One of the most important forms of mathematical writing is writing mathematical proofs. The writing of mathematical proofs is an acquired skill and

More information

UNIT-III REGISTER TRANSFER LANGUAGE AND DESIGN OF CONTROL UNIT

UNIT-III REGISTER TRANSFER LANGUAGE AND DESIGN OF CONTROL UNIT UNIT-III 1 KNREDDY UNIT-III REGISTER TRANSFER LANGUAGE AND DESIGN OF CONTROL UNIT Register Transfer: Register Transfer Language Register Transfer Bus and Memory Transfers Arithmetic Micro operations Logic

More information

Sunoj B S *, Mathew Varkey T K Department of Mathematics, Government Polytechnic College, Attingal, Kerala, India

Sunoj B S *, Mathew Varkey T K Department of Mathematics, Government Polytechnic College, Attingal, Kerala, India International Journal of Scientific Research in Computer Science, Engineering and Information Technology 2018 IJSRCSEIT Volume 3 Issue 1 ISSN : 256-3307 Mean Sum Square Prime Labeling of Some Snake Graphs

More information

IS BINARY ENCODING APPROPRIATE FOR THE PROBLEM-LANGUAGE RELATIONSHIP?

IS BINARY ENCODING APPROPRIATE FOR THE PROBLEM-LANGUAGE RELATIONSHIP? Theoretical Computer Science 19 (1982) 337-341 North-Holland Publishing Company NOTE IS BINARY ENCODING APPROPRIATE FOR THE PROBLEM-LANGUAGE RELATIONSHIP? Nimrod MEGIDDO Statistics Department, Tel Aviv

More information

Lesson 19: The Graph of a Linear Equation in Two Variables is a Line

Lesson 19: The Graph of a Linear Equation in Two Variables is a Line Lesson 19: The Graph of a Linear Equation in Two Variables is a Line Classwork Exercises Theorem: The graph of a linear equation y = mx + b is a non-vertical line with slope m and passing through (0, b),

More information

A Simple Syntax-Directed Translator

A Simple Syntax-Directed Translator Chapter 2 A Simple Syntax-Directed Translator 1-1 Introduction The analysis phase of a compiler breaks up a source program into constituent pieces and produces an internal representation for it, called

More information

COCO and. Flowsheeting with. Nice Logo Please. Flowsheeting with COCO and ChemSep

COCO and. Flowsheeting with. Nice Logo Please. Flowsheeting with COCO and ChemSep Slide 1 Flowsheeting with Nice Logo Please COCO and Ross Taylor, Clarkson University Jasper van Baten, AmsterCHEM Rev5 Apr 14 2010 Flowsheeting with COCO and ChemSep 1 Slide 2 Outline Introduction to COCO

More information

Hardware Assisted Virtualization

Hardware Assisted Virtualization Hardware Assisted Virtualization G. Lettieri 21 Oct. 2015 1 Introduction In the hardware-assisted virtualization technique we try to execute the instructions of the target machine directly on the host

More information

CSE 20 DISCRETE MATH WINTER

CSE 20 DISCRETE MATH WINTER CSE 20 DISCRETE MATH WINTER 2016 http://cseweb.ucsd.edu/classes/wi16/cse20-ab/ Today's learning goals Explain the steps in a proof by (strong) mathematical induction Use (strong) mathematical induction

More information

Research Collection. Formal background and algorithms. Other Conference Item. ETH Library. Author(s): Biere, Armin. Publication Date: 2001

Research Collection. Formal background and algorithms. Other Conference Item. ETH Library. Author(s): Biere, Armin. Publication Date: 2001 Research Collection Other Conference Item Formal background and algorithms Author(s): Biere, Armin Publication Date: 2001 Permanent Link: https://doi.org/10.3929/ethz-a-004239730 Rights / License: In Copyright

More information

CMSC 330: Organization of Programming Languages. Formal Semantics of a Prog. Lang. Specifying Syntax, Semantics

CMSC 330: Organization of Programming Languages. Formal Semantics of a Prog. Lang. Specifying Syntax, Semantics Recall Architecture of Compilers, Interpreters CMSC 330: Organization of Programming Languages Source Scanner Parser Static Analyzer Operational Semantics Intermediate Representation Front End Back End

More information

Chapter Summary. Mathematical Induction Recursive Definitions Structural Induction Recursive Algorithms

Chapter Summary. Mathematical Induction Recursive Definitions Structural Induction Recursive Algorithms Chapter Summary Mathematical Induction Recursive Definitions Structural Induction Recursive Algorithms Section 5.1 Sec.on Summary Mathematical Induction Examples of Proof by Mathematical Induction Mistaken

More information

memoization or iteration over subproblems the direct iterative algorithm a basic outline of dynamic programming

memoization or iteration over subproblems the direct iterative algorithm a basic outline of dynamic programming Dynamic Programming 1 Introduction to Dynamic Programming weighted interval scheduling the design of a recursive solution memoizing the recursion 2 Principles of Dynamic Programming memoization or iteration

More information

Course Topics - Outline

Course Topics - Outline Course Topics - Outline Lecture 1 - Introduction Lecture 2 - Lexical conventions Lecture 3 - Data types Lecture 4 - Operators Lecture 5 - Behavioral modeling A Lecture 6 Behavioral modeling B Lecture 7

More information

Synchronous Specification

Synchronous Specification Translation Validation for Synchronous Specification in the Signal Compiler Van-Chan Ngo Jean-Pierre Talpin Thierry Gautier INRIA Rennes, France FORTE 2015 Construct a modular translation validationbased

More information

Chapter 4 Triangles: Congruency & Similarity

Chapter 4 Triangles: Congruency & Similarity 1 Chapter 4 Triangles: Congruency & Similarity Concepts & Skills Quilting is a great American pastime especially in the heartland of the United States. Quilts can be simple in nature or as in the photo

More information

EOS Mixing Rule Parameters

EOS Mixing Rule Parameters EOS Mixing Rule Parameters GENPAR Fitting of Equation of State Mixing Rule Parameters for Flash and VLE Calculation DDBSP Dortmund Data Bank Software Package DDBST Dortmund Data Bank Software & Separation

More information

Concurrent Signal Assignment Statements (CSAs)

Concurrent Signal Assignment Statements (CSAs) Concurrent Signal Assignment Statements (CSAs) Digital systems operate with concurrent signals Signals are assigned values at a specific point in time. VHDL uses signal assignment statements Specify value

More information

Fall Lecture 3 September 4. Stephen Brookes

Fall Lecture 3 September 4. Stephen Brookes 15-150 Fall 2018 Lecture 3 September 4 Stephen Brookes Today A brief remark about equality types Using patterns Specifying what a function does equality in ML e1 = e2 Only for expressions whose type is

More information

ECE G205 Fundamentals of Computer Engineering Fall Exercises in Preparation to the Midterm

ECE G205 Fundamentals of Computer Engineering Fall Exercises in Preparation to the Midterm ECE G205 Fundamentals of Computer Engineering Fall 2003 Exercises in Preparation to the Midterm The following problems can be solved by either providing the pseudo-codes of the required algorithms or the

More information

DLD VIDYA SAGAR P. potharajuvidyasagar.wordpress.com. Vignana Bharathi Institute of Technology UNIT 3 DLD P VIDYA SAGAR

DLD VIDYA SAGAR P. potharajuvidyasagar.wordpress.com. Vignana Bharathi Institute of Technology UNIT 3 DLD P VIDYA SAGAR DLD UNIT III Combinational Circuits (CC), Analysis procedure, Design Procedure, Combinational circuit for different code converters and other problems, Binary Adder- Subtractor, Decimal Adder, Binary Multiplier,

More information

Appendix Introduction

Appendix Introduction Appendix Introduction This section describes features of the OLI Studio. The chapter starts with an overview of the OLI Studio Interface, including some calculation objects discussed previously. A.1 Creating

More information

Let s put together a Manual Processor

Let s put together a Manual Processor Lecture 14 Let s put together a Manual Processor Hardware Lecture 14 Slide 1 The processor Inside every computer there is at least one processor which can take an instruction, some operands and produce

More information

Handout 9: Imperative Programs and State

Handout 9: Imperative Programs and State 06-02552 Princ. of Progr. Languages (and Extended ) The University of Birmingham Spring Semester 2016-17 School of Computer Science c Uday Reddy2016-17 Handout 9: Imperative Programs and State Imperative

More information

Complexity, Induction, and Recurrence Relations. CSE 373 Help Session 4/7/2016

Complexity, Induction, and Recurrence Relations. CSE 373 Help Session 4/7/2016 Complexity, Induction, and Recurrence Relations CSE 373 Help Session 4/7/2016 Big-O Definition Definition: g(n) is in O( f(n) ) if there exist positive constants c and n0 such that g(n) c f(n) for all

More information

CSC313 High Integrity Systems/CSCM13 Critical Systems. CSC313/CSCM13 Chapter 2 1/ 221

CSC313 High Integrity Systems/CSCM13 Critical Systems. CSC313/CSCM13 Chapter 2 1/ 221 CSC313 High Integrity Systems/CSCM13 Critical Systems CSC313/CSCM13 Chapter 2 1/ 221 CSC313 High Integrity Systems/ CSCM13 Critical Systems Course Notes Chapter 2: SPARK Ada Sect. 2 (f) Anton Setzer Dept.

More information

A First Look at ML. Chapter Five Modern Programming Languages, 2nd ed. 1

A First Look at ML. Chapter Five Modern Programming Languages, 2nd ed. 1 A First Look at ML Chapter Five Modern Programming Languages, 2nd ed. 1 ML Meta Language One of the more popular functional languages (which, admittedly, isn t saying much) Edinburgh, 1974, Robin Milner

More information

1 Elementary number theory

1 Elementary number theory Math 215 - Introduction to Advanced Mathematics Spring 2019 1 Elementary number theory We assume the existence of the natural numbers and the integers N = {1, 2, 3,...} Z = {..., 3, 2, 1, 0, 1, 2, 3,...},

More information

11.1. Unit 11. Adders & Arithmetic Circuits

11.1. Unit 11. Adders & Arithmetic Circuits . Unit s & Arithmetic Circuits .2 Learning Outcomes I understand what gates are used to design half and full adders I can build larger arithmetic circuits from smaller building blocks ADDER.3 (+) Register.4

More information

USER MANUAL PITOPS-TFI VER. 6.1

USER MANUAL PITOPS-TFI VER. 6.1 USER MANUAL PITOPS-TFI VER. 6.1 (PROCESS IDENTIFICATION & CONTROLLER TUNING OPTIMIZER SIMULATOR) TFI TRANSFER FUNCTION IDENTIFICATION INDUSTRIAL PROCESS CONTROL SOFTWARE FOR DCS/PLC PID TUNING AND ADVANCED

More information

Date Performed: Marks Obtained: /10. Group Members (ID):. Experiment # 09 MULTIPLEXERS

Date Performed: Marks Obtained: /10. Group Members (ID):. Experiment # 09 MULTIPLEXERS Name: Instructor: Engr. Date Performed: Marks Obtained: /10 Group Members (ID):. Checked By: Date: Experiment # 09 MULTIPLEXERS OBJECTIVES: To experimentally verify the proper operation of a multiplexer.

More information

Computer Systems. Binary Representation. Binary Representation. Logical Computation: Boolean Algebra

Computer Systems. Binary Representation. Binary Representation. Logical Computation: Boolean Algebra Binary Representation Computer Systems Information is represented as a sequence of binary digits: Bits What the actual bits represent depends on the context: Seminar 3 Numerical value (integer, floating

More information

P1 Engineering Computation

P1 Engineering Computation 1EC 2001 1 / 1 P1 Engineering Computation David Murray david.murray@eng.ox.ac.uk www.robots.ox.ac.uk/ dwm/courses/1ec Hilary 2001 1EC 2001 2 / 1 Algorithms: Design, Constructs and Correctness 1EC 2001

More information

Analysis of Algorithms Part I: Analyzing a pseudo-code

Analysis of Algorithms Part I: Analyzing a pseudo-code Analysis of Algorithms Part I: Analyzing a pseudo-code Introduction Pseudo-code representation of an algorithm Analyzing algorithms Measuring the running time and memory size of an algorithm Calculating

More information

Online algorithms for clustering problems

Online algorithms for clustering problems University of Szeged Department of Computer Algorithms and Artificial Intelligence Online algorithms for clustering problems Summary of the Ph.D. thesis by Gabriella Divéki Supervisor Dr. Csanád Imreh

More information

o Counter and sentinel controlled loops o Formatting output o Type casting o Top-down, stepwise refinement

o Counter and sentinel controlled loops o Formatting output o Type casting o Top-down, stepwise refinement Last Time Let s all Repeat Together 10/3/05 CS150 Introduction to Computer Science 1 1 We covered o Counter and sentinel controlled loops o Formatting output Today we will o Type casting o Top-down, stepwise

More information

PDF-based simulations of turbulent spray combustion in a constant-volume chamber under diesel-engine-like conditions

PDF-based simulations of turbulent spray combustion in a constant-volume chamber under diesel-engine-like conditions International Multidimensional Engine Modeling User s Group Meeting at the SAE Congress Detroit, MI 23 April 2012 PDF-based simulations of turbulent spray combustion in a constant-volume chamber under

More information

I/A Series Software Spreadsheet

I/A Series Software Spreadsheet I/A Series Software Spreadsheet The I/A Series Spreadsheet is an interactive, easy-to-use tool, that allows process operators, engineers, and managers to manipulate data in a row/column format and graph

More information

Square Difference Prime Labeling for Some Snake Graphs

Square Difference Prime Labeling for Some Snake Graphs Global Journal of Pure and Applied Mathematics. ISSN 0973-1768 Volume 13, Number 3 (017), pp. 1083-1089 Research India Publications http://www.ripublication.com Square Difference Prime Labeling for Some

More information

Introduction to Algorithms

Introduction to Algorithms Introduction to Algorithms 6.046J/18.401J LECTURE 12 Dynamic programming Longest common subsequence Optimal substructure Overlapping subproblems Prof. Charles E. Leiserson Dynamic programming Design technique,

More information

CMSC351 - Fall 2014, Homework #4

CMSC351 - Fall 2014, Homework #4 CMSC351 - Fall 2014, Homework #4 Due: November 14th at the start of class PRINT Name: Grades depend on neatness and clarity. Write your answers with enough detail about your approach and concepts used,

More information

Analysis and Design Optimisation of Electronic Circuits using Oscad and OpenModelica

Analysis and Design Optimisation of Electronic Circuits using Oscad and OpenModelica Analysis and Design Optimisation of Electronic Circuits using Oscad and OpenModelica OpenModelica Annual Workshop 2015 Rakhi R and Kannan M. Moudgalya Indian Institute of Technology Bombay, India February

More information

Verifying Safety Property of Lustre Programs: Temporal Induction

Verifying Safety Property of Lustre Programs: Temporal Induction 22c181: Formal Methods in Software Engineering The University of Iowa Spring 2008 Verifying Safety Property of Lustre Programs: Temporal Induction Copyright 2008 Cesare Tinelli. These notes are copyrighted

More information

Writing Circuit Descriptions 8

Writing Circuit Descriptions 8 8 Writing Circuit Descriptions 8 You can write many logically equivalent descriptions in Verilog to describe a circuit design. However, some descriptions are more efficient than others in terms of the

More information

Extending ACL2 with SMT solvers

Extending ACL2 with SMT solvers Extending ACL2 with SMT solvers Yan Peng & Mark Greenstreet University of British Columbia October 2nd, 2015 Smtlink handles tedious details of proofs so you can focus on the interesting parts. 1 / 24

More information

A lexical analyzer generator for Standard ML. Version 1.6.0, October 1994

A lexical analyzer generator for Standard ML. Version 1.6.0, October 1994 A lexical analyzer generator for Standard ML. Version 1.6.0, October 1994 Andrew W. Appel 1 James S. Mattson David R. Tarditi 2 1 Department of Computer Science, Princeton University 2 School of Computer

More information

Isothermal Batch Reactor Modeling

Isothermal Batch Reactor Modeling Instructions for use of the tutorial: Download the compressed file Example1.zip and store it on a folder of your choice on your desktop, or in a location where you have rights to read and write. Open the

More information

COMPUTER SCIENCE TRIPOS

COMPUTER SCIENCE TRIPOS CST.2001.1.1 COMPUTER SCIENCE TRIPOS Part IA Monday 4 June 2001 1.30 to 4.30 Paper 1 Answer two questions from Section A, and one question from each of Sections B, C, D and E. Submit the answers in six

More information

Introduction to Multithreaded Algorithms

Introduction to Multithreaded Algorithms Introduction to Multithreaded Algorithms CCOM5050: Design and Analysis of Algorithms Chapter VII Selected Topics T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein. Introduction to algorithms, 3 rd

More information

Arrays in Lustre. P. Caspi, N. Halbwachs, F. Maraninchi, L. Morel, P. Raymond. Verimag/CNRS Grenoble

Arrays in Lustre. P. Caspi, N. Halbwachs, F. Maraninchi, L. Morel, P. Raymond. Verimag/CNRS Grenoble Arrays in Lustre P. Caspi, N. Halbwachs, F. Maraninchi, L. Morel, P. Raymond Verimag/CNRS Grenoble N. Halbwachs (Verimag/CNRS) Arrays in Lustre 1 / 35 1 Arrays in Lustre-V4 2 Arrays in Lustre-V6 N. Halbwachs

More information

Plotting run-time graphically. Plotting run-time graphically. CS241 Algorithmics - week 1 review. Prefix Averages - Algorithm #1

Plotting run-time graphically. Plotting run-time graphically. CS241 Algorithmics - week 1 review. Prefix Averages - Algorithm #1 CS241 - week 1 review Special classes of algorithms: logarithmic: O(log n) linear: O(n) quadratic: O(n 2 ) polynomial: O(n k ), k 1 exponential: O(a n ), a > 1 Classifying algorithms is generally done

More information

CHAPTER 8. Copyright Cengage Learning. All rights reserved.

CHAPTER 8. Copyright Cengage Learning. All rights reserved. CHAPTER 8 RELATIONS Copyright Cengage Learning. All rights reserved. SECTION 8.3 Equivalence Relations Copyright Cengage Learning. All rights reserved. The Relation Induced by a Partition 3 The Relation

More information

Subtyping and Objects

Subtyping and Objects Subtyping and Objects Massimo Merro 20 November 2017 Massimo Merro Data and Mutable Store 1 / 22 Polymorphism So far, our type systems are very rigid: there is little support to code reuse. Polymorphism

More information

Functional Programming in Haskell Part I : Basics

Functional Programming in Haskell Part I : Basics Functional Programming in Haskell Part I : Basics Madhavan Mukund Chennai Mathematical Institute 92 G N Chetty Rd, Chennai 600 017, India madhavan@cmi.ac.in http://www.cmi.ac.in/ madhavan Madras Christian

More information

Software Pipelining 1/15

Software Pipelining 1/15 Software Pipelining 1/15 Pipelining versus Parallel Suppose it takes 3 units of time to assemble a widget. Furthermore, suppose the assembly consists of three steps A, B, and C and each step requires exactly

More information

Recursive Definitions Structural Induction Recursive Algorithms

Recursive Definitions Structural Induction Recursive Algorithms Chapter 4 1 4.3-4.4 Recursive Definitions Structural Induction Recursive Algorithms 2 Section 4.1 3 Principle of Mathematical Induction Principle of Mathematical Induction: To prove that P(n) is true for

More information

Propositional Calculus. CS 270: Mathematical Foundations of Computer Science Jeremy Johnson

Propositional Calculus. CS 270: Mathematical Foundations of Computer Science Jeremy Johnson Propositional Calculus CS 270: Mathematical Foundations of Computer Science Jeremy Johnson Propositional Calculus Objective: To provide students with the concepts and techniques from propositional calculus

More information

Efficient Sequential Algorithms, Comp309. Problems. Part 1: Algorithmic Paradigms

Efficient Sequential Algorithms, Comp309. Problems. Part 1: Algorithmic Paradigms Efficient Sequential Algorithms, Comp309 Part 1: Algorithmic Paradigms University of Liverpool References: T. H. Cormen, C. E. Leiserson, R. L. Rivest Introduction to Algorithms, Second Edition. MIT Press

More information

Introduction. chapter Functions

Introduction. chapter Functions chapter 1 Introduction In this chapter we set the stage for the rest of the book. We start by reviewing the notion of a function, then introduce the concept of functional programming, summarise the main

More information

Chapter 3 Part 2 Combinational Logic Design

Chapter 3 Part 2 Combinational Logic Design University of Wisconsin - Madison EE/omp ci 352 Digital ystems Fundamentals Kewal K. aluja and u Hen Hu pring 2002 hapter 3 Part 2 ombinational Logic Design Originals by: harles R. Kime and Tom Kamisnski

More information

1 Controlling complexity

1 Controlling complexity 1 Controlling complexity Technical skill is mastery of complexity while creativity is mastery of simplicity. E. Christopher Zeeman, Catastrophe Theory, 1977 The goal of this text is to teach you how to

More information