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

Slides:



Advertisements
Similar presentations
Turing Machines January 2003 Part 2:. 2 TM Recap We have seen how an abstract TM can be built to implement any computable algorithm TM has components:
Advertisements

Part VI NP-Hardness. Lecture 23 Whats NP? Hard Problems.
CS 345: Chapter 9 Algorithmic Universality and Its Robustness
David Evans CS200: Computer Science University of Virginia Computer Science Class 30: Models of Computation.
Class 39: Universality cs1120 Fall 2009 David Evans University of Virginia.
David Evans CS150: Computer Science University of Virginia Computer Science Lecture 39: Lambda Calculus.
David Evans CS200: Computer Science University of Virginia Computer Science Lecture 23: Inheritance.
Montek Singh COMP Nov 15,  Two different technologies ◦ TODAY: DNA as biochemical computer  DNA molecules encode data  enzymes, probes.
David Evans CS150: Computer Science University of Virginia Computer Science Lecture 40: Computing with Glue and Photons.
1 dKS, Spring Some practical information Lecturers: Kristoffer Arnsfelt Hansen and Peter Bro Miltersen. Homepage:
Theory of Computing Lecture 20 MAS 714 Hartmut Klauck.
Theory of Computing Lecture 19 MAS 714 Hartmut Klauck.
David Evans CS200: Computer Science University of Virginia Computer Science Class 31: Universal Turing Machines.
Lecture 20: λ Calculus λ Calculus & Computability Yan Huang Dept. of Comp. Sci. University of Virginia.
Class 37: Computability in Theory and Practice cs1120 Fall 2011 David Evans 21 November 2011 cs1120 Fall 2011 David Evans 21 November 2011.
Theory of Computing Lecture 15 MAS 714 Hartmut Klauck.
DNA Computing BY DIVYA TADESERA. Contents  Introduction  History and its origin  Relevancy of DNA computing in 1. Hamilton path problem(NP problem)
AP Biology Discussion Notes Wednesday 01/28/2015.
Introduction to CS Theory Lecture 15 –Turing Machines Piotr Faliszewski
David Evans CS200: Computers, Programs and Computing University of Virginia Computer Science Class 39: Meaning of Life.
Cs3102: Theory of Computation Class 27: NP-Complete Desserts (DNA, RSA, BQP, NSA) Spring 2010 University of Virginia David Evans.
David Evans CS150: Computer Science University of Virginia Computer Science Class 34: Computing with Life (and the Chicken.
CSCI 2670 Introduction to Theory of Computing November 29, 2005.
Week 10Complexity of Algorithms1 Hard Computational Problems Some computational problems are hard Despite a numerous attempts we do not know any efficient.
CSE 024: Design & Analysis of Algorithms Chapter 9: NP Completeness Sedgewick Chp:40 David Luebke’s Course Notes / University of Virginia, Computer Science.
Spring 2006ICOM 4036 Programming Laguages Lecture 2 1 The Nature of Computing Prof. Bienvenido Velez ICOM 4036 Lecture 2.
Lecture 8: The Meaning of Life, Searching for Truth and The Stuff Primitives are Made Of (and a smattering of Quantum Physics) David Evans
David Evans CS851: Biologically-Inspired Computing University of Virginia Computer Science Computing Inspired by Biology.
Class 37: Secret of Life CS200: Computer Science
David Evans CS200: Computer Science University of Virginia Computer Science Lecture 20: Objects I invented the term Object-
David Evans cs302: Theory of Computation University of Virginia Computer Science Lecture 16: Universality and Undecidability.
DNA Structure and Protein Synthesis (also known as Gene Expression)
Computability Heap exercise. The class P. The class NP. Verifiers. Homework: Review RELPRIME proof. Find examples of problems in NP.
Strings Basic data type in computational biology A string is an ordered succession of characters or symbols from a finite set called an alphabet Sequence.
David Evans CS200: Computer Science University of Virginia Computer Science Lecture 15: Intractable Problems (Smiley.
David Evans CS200: Computer Science University of Virginia Computer Science Class 32: The Meaning of Truth.
Chapter 11 Introduction to Computational Complexity Copyright © 2011 The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 1.
CS216: Program and Data Representation University of Virginia Computer Science Spring 2006 David Evans Lecture 8: Crash Course in Computational Complexity.
MARC ProgramEssential Computing for Bioinformatics 1 The Nature of Computing Prof. Bienvenido Velez ICOM 4995 Lecture 3.
The Church-Turing Thesis Chapter 18. Are We Done? FSM  PDA  Turing machine Is this the end of the line? There are still problems we cannot solve: ●
David Evans CS200: Computer Science University of Virginia Computer Science Class 32: The Meaning of Truth.
David Evans CS150: Computer Science University of Virginia Computer Science Lecture 22: Objectifying Objects.
Turing Machines Sections 17.6 – The Universal Turing Machine Problem: All our machines so far are hardwired. ENIAC
THE GENETIC CODE THE STRUCTURE OF DNA. WHAT IS THE DIFFERENCE BETWEEN CHROMOSOME, GENE, AND DNA? A gene is a section of DNA that gives the code for a.
David Evans CS150: Computer Science University of Virginia Computer Science Class 32: Computability in Theory and Practice.
MA/CSSE 474 Theory of Computation Universal Turing Machine Church-Turing Thesis (Winter 2016, these slides were also used for Day 33)
Universal Turing Machine
David Evans CS200: Computer Science University of Virginia Computer Science Class 26: Halting Problem It is plain at any.
(Thunking about Thunks)
DNA Structure and Protein Synthesis (also known as Gene Expression)
Lecture 4: Evaluation Rules Recursion CS200: Computer Science
Part VI NP-Hardness.
Class 22: Inheritance CS150: Computer Science University of Virginia
Class 27: Universal Turing Machines CS150: Computer Science
Class 30: Models of Computation CS200: Computer Science
Lecture 37: A Universal Computer
Theory of Computation Turing Machines.
Class 36: The Meaning of Truth CS200: Computer Science
Class 37: Making Lists, Numbers and Recursion from Glue Alone
Class 33: Making Recursion M.C. Escher, Ascending and Descending
= DNA Nucleotide Phosphate Nitrogen Base Pairs:
Class 31: Universal Turing Machines CS200: Computer Science
Lecture 10: Fixed Points ad Infinitum M.C. Escher, Moebius Ants
Class 34: Models of Computation CS200: Computer Science
CSE S. Tanimoto Turing Completeness
Class 33: Learning to Count CS200: Computer Science
The Nature of Computing
Lecture 23: Computability CS200: Computer Science
DNA Computing Herman G. Meyer III Sept. 28, 2004.
Presentation transcript:

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

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

24 April 2002CS 200 Spring 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 ]

24 April 2002CS 200 Spring 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!

24 April 2002CS 200 Spring 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

24 April 2002CS 200 Spring 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!

24 April 2002CS 200 Spring 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

24 April 2002CS 200 Spring 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.

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

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

24 April 2002CS 200 Spring 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

24 April 2002CS 200 Spring 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

24 April 2002CS 200 Spring 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 od_on_dna.html

24 April 2002CS 200 Spring 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!

24 April 2002CS 200 Spring 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

24 April 2002CS 200 Spring 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

24 April 2002CS 200 Spring Why don’t we solve NP- Complete problems this way? Speed: shaking up the DNA strands does operations per second ($400M supercomputer does ) 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

24 April 2002CS 200 Spring DNA-Enhanced PC

24 April 2002CS 200 Spring How does Nature program?

24 April 2002CS 200 Spring 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

24 April 2002CS 200 Spring 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

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

24 April 2002CS 200 Spring 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 April 2002CS 200 Spring Is DNA Really a Programming Language?

24 April 2002CS 200 Spring 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.

24 April 2002CS 200 Spring 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.

24 April 2002CS 200 Spring 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!

24 April 2002CS 200 Spring 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

24 April 2002CS 200 Spring 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