Presentation is loading. Please wait.

Presentation is loading. Please wait.

David Evans CS200: Computer Science University of Virginia Computer Science Class 38: Fixed Points and Biological Computing.

Similar presentations


Presentation on theme: "David Evans CS200: Computer Science University of Virginia Computer Science Class 38: Fixed Points and Biological Computing."— Presentation transcript:

1 David Evans http://www.cs.virginia.edu/~evans CS200: Computer Science University of Virginia Computer Science Class 38: Fixed Points and Biological Computing

2 24 April 2002CS 200 Spring 20022 Menu Making Recursive Definitions without define Computing with DNA How Biology Programs

3 24 April 2002CS 200 Spring 20023 Lambda Calculus term ::= variable |term term | (term)| variable. term  -reduction(renaming) y. M   v. (M [y v]) where v does not occur in M.  -reduction(substitution) ( x. M)N   M [ x N ]

4 24 April 2002CS 200 Spring 20024 Lambda Calculus is a Universal Computer zzzzzzzzzzzzzzzzzzzz 1 Start HALT ), X, L 2: look for ( #, 1, -  ), #, R  (, #, L (, X, R #, 0, - Finite State Machine Read/Write Infinite Tape Mutable Lists Finite State Machine Numbers to keep track of state Processing Way of making decisions (if)  Way to keep going We have this, but we cheated using  to make recursive definitions!

5 24 April 2002CS 200 Spring 20025 Fixed Point Theorem The fixed point of a function f, is a value x such that f(x) = x If we can find the fixed point of our Turing Machine simulator, then we have something that keeps going until it halts! fixed-point TM input   result of running TM on input

6 24 April 2002CS 200 Spring 20026 All Lambda Calculus Terms have Fixed Points! For any Lambda Calculus term F, there exists a Lambda Calculus Term X such that FX = X Proof: Let W = x.F(xx) and X = WW. X = WW = ( x.F(xx))W   F (WW) = FX We can make F a parameter!

7 24 April 2002CS 200 Spring 20027 Why of Y? Y is f. WW: Y  f. ( x. f (xx)) ( x. f (xx)) Y calculates a fixed point of any lambda term! Hence: we don’t need define to do recursion! Works in Scheme too - check the “lecture” from the Adventure Game

8 24 April 2002CS 200 Spring 20028 Lambda Calculus is Turing Universal! All you need is beta-reduction and you can compute anything This is just one way of representing numbers, if, etc. – many others are possible Integers, booleans, if, while, +, *, =, <, classes, define, inheritance, etc. are for wimps! Real programmers only use.

9 24 April 2002CS 200 Spring 20029 Models of Computation Mechanical: Turing Machine Symbolic: Lambda Calculus Next: Biological

10 24 April 2002CS 200 Spring 200210 Computing with DNA Leonard Adleman (Mathematical Consultant for Sneakers), 1995

11 24 April 2002CS 200 Spring 200211 DNA Sequence of nucleotides: adenine (A), guanine (G), cytosine (C), and thymine (T) Two strands, A must attach to T and G must attach to C A G T C

12 24 April 2002CS 200 Spring 200212 Hamiltonian Path Problem Input: a graph, start vertex and end vertex Output: either a path from start to end that touches each vertex in the graph exactly once, or false indicating no such path exists CHO RIC IAD BWI start: CHO end: BWI Hamiltonian Path is NP-Complete

13 24 April 2002CS 200 Spring 200213 Encoding The Graph Make up a two random 4-nucleotide sequences for each city: CHO: CHO 1 = ACTT CHO 2 = gcag RIC:RIC 1 = TCGGRIC 2 = actg IAD:IAD 1 = GGCTIAD 2 = atgt BWI:BWI 1 = GATCBWI 2 = tcca If there is a link between two cities (A  B), create a nucleotide sequence: A 2 B 1 CHO  RICgcagTCGG RIC  CHOactgACTT Based on Fred Hapgood’s notes on Adelman’s talk http://www.mitre.org/research/nanotech/hapgo od_on_dna.html

14 24 April 2002CS 200 Spring 200214 Encoding The Problem Each city nucleotide sequence binds with its complement (A  T, G  C) : CHO: CHO 1 = ACTT CHO 2 = gcag CHO’: TGAA cgtc RIC: TCGGactg RIC’: AGCCtgac IAD: GGCTatgt IAD’ = CCGAtaca BWI: GATCtcca BWI’ = CTAGaggt Mix up all the link and complement DNA strands – they will bind to show a path!

15 24 April 2002CS 200 Spring 200215 Path Binding CHO RIC IAD BWI ACTTgcag TCGGactg GATCtcca GGCTatgt CHO’ TGAAcgtc gcagGGCT CHO  IAD IAD’ CCGAtaca atgtTCGG IAD  RIC RIC’ AGCCtgac BWI’ CTAGaggt actgGATC RIC  BWI

16 24 April 2002CS 200 Spring 200216 Getting the Solution Extract DNA strands starting with CHO and ending with BWI –Easy way is to remove all strands that do not start with CHO, and then remove all strands that do not end with BWI Measure remaining strands to find ones with the right weight (7 * 8 nucleotides) Read the sequence from one of these strands

17 24 April 2002CS 200 Spring 200217 Why don’t we solve NP- Complete problems this way? Speed: shaking up the DNA strands does 10 14 operations per second ($400M supercomputer does 10 10 ) Memory: we can store information in DNA at 1 bit per cubic nanometer How much DNA would you need? –Volume of DNA needed grows exponentially with input size –To solve ~45 vertices, you need ~20M gallons

18 24 April 2002CS 200 Spring 200218 DNA-Enhanced PC

19 24 April 2002CS 200 Spring 200219 How does Nature program?

20 24 April 2002CS 200 Spring 200220 How Big is the Make-a-Human Program? 3 Billion Base Pairs –Each nucleotide is 2 bits (4 possibilities) –3 B pairs * 1 byte/4 pairs = 750 MB 1 CD ~ 650 MB

21 24 April 2002CS 200 Spring 200221 Encoding is Redundant DNA encodes proteins Every sequence of 3 base pairs one of 20 amino acids (or stop codon) –21 possible codons, but 4 3 = 64 possible values –So, really only 750MB * (21/64) ~ 250 MB

22 24 April 2002CS 200 Spring 200222 People are almost all the Same Genetic code for 2 humans differs in only 2.1 million bases –4 million bits = 0.5 MB

23 24 April 2002CS 200 Spring 200223 How big is.5 MB? 1/3 of a floppy disk <1% of Windows 2000 ~22 times the size of the PS6 adventure game code

24 24 April 2002CS 200 Spring 200224 Is DNA Really a Programming Language?

25 24 April 2002CS 200 Spring 200225 Nerdy Linguist’s Definition A description of pairs (S, M), where S stands for sound, or any kind of surface forms, and M stands for meaning. A theory of language must specify the properties of S and M, and how they are related.

26 24 April 2002CS 200 Spring 200226 Programming Language (Definition from Lecture 1) A description of pairs (S, M), where S stands for sound, or any kind of surface forms, and M stands for meaning intended to be read and written by humans and processed by machines.

27 24 April 2002CS 200 Spring 200227 Stuff Programming Languages are Made Of Primitives Means of Combination Means of Abstraction codons (sequence of 3 nucleotides that encodes a protein) ?? Morphogenesis? Not well understood (by anyone). DNA itself – separate proteins from their encoding Genes – group DNA by function (sort of) Chromosomes – package Genes together Organisms – packages for reproducing Genes This is where most of the expressiveness comes from!

28 24 April 2002CS 200 Spring 200228 Biology is (becoming) a subfield of Computer Science Biological mechanisms are mostly understood (proteomics still has a way to go) What is not understood is how those are combined to create meaning

29 24 April 2002CS 200 Spring 200229 Charge Noon (now): President Casteen’s State of the University in Old Cabal Hall –Extra credit question: “Given that Computer Science is the most liberal art, how come UVa College students are not able to major in Computer Science?” Friday: review –Chance to ask questions about anything you want


Download ppt "David Evans CS200: Computer Science University of Virginia Computer Science Class 38: Fixed Points and Biological Computing."

Similar presentations


Ads by Google