# Algorithm

Flow chart of an algorithm (Euclid's algorithm) for calculating the greatest common divisor (g.c.d.) of two numbers a and b in locations named A and B. The algorithm proceeds by successive subtractions in two loops: IF the test B ≥ A yields "yes" (or true) (more accurately the numberb in location B is greater than or equal to the numbera in location A) THEN, the algorithm specifies B ← B − A (meaning the number b − a replaces the old b). Similarly, IF A > B, THEN A ← A − B. The process terminates when (the contents of) B is 0, yielding the g.c.d. in A. (Algorithm derived from Scott 2009:13; symbols and drawing style from Tausworthe 1977). In mathematics and computer science, an algorithm ( i/ˈælɡərɪðəm/ AL-gə-ri-dhəm) is a step-by-step procedure for calculations. Informal definition While there is no generally accepted formal definition of "algorithm," an informal definition could be "a set of rules that precisely defines a sequence of operations Formalization

Chinese Drones Will Use Genetic Algorithms to Learn to Hunt For Submarines China usually holds its military hand very close to the vest--that, or things "mysteriously" leak that it doesn't (does) want the world to know about--so we're left to wonder why the People's Republic has decided to publish this in the journal Advanced Materials Research. Nonetheless, it's pretty interesting. Chinese navy researchers have plans for a new submarine hunting scheme that uses ship-launched UAVs running genetic algorithms. Genetic algorithms narrow down a range of possibilities to an optimal solution much the way evolution does (at least in a simplified sense)--by weeding out the weaker offspring and mating the best with the best to create stronger candidates. These algorithms would take into account things like fuel economy, potential air and sea threats, and oceanographic geography to zero in on the most likely places for submarines to be moving at a given time.

What We Know About the Computer Formulas Making Decisions in Your Life We reported yesterday on a study of Uber’s dynamic pricing scheme that investigated Uber’s surge pricing patterns in Manhattan and San Francisco and showed riders how they could potentially avoid higher prices. The study’s authors finally shed some light on Uber’s “black box,” the algorithm that automatically sets prices but that is inaccessible to both drivers and riders. That’s just one of a nearly endless number of algorithms we use every day. The formulas influence far more than your Google search results or Facebook newsfeed.

New algorithm offers ability to influence systems such as living cells or social networks At first glance, a diagram of the complex network of genes that regulate cellular metabolism might seem hopelessly complex, and efforts to control such a system futile. However, an MIT researcher has come up with a new computational model that can analyze any type of complex network -- biological, social or electronic -- and reveal the critical points that can be used to control the entire system. Potential applications of this work, which appears as the cover story in the May 12 issue of Nature, include reprogramming adult cells and identifying new drug targets, says study author Jean-Jacques Slotine, an MIT professor of mechanical engineering and brain and cognitive sciences. Slotine and his co-authors applied their model to dozens of real-life networks, including cell-phone networks, social networks, the networks that control gene expression in cells and the neuronal network of the C. elegans worm.

Computational complexity theory Computational complexity theory is a branch of the theory of computation in theoretical computer science and mathematics that focuses on classifying computational problems according to their inherent difficulty, and relating those classes to each other. A computational problem is understood to be a task that is in principle amenable to being solved by a computer, which is equivalent to stating that the problem may be solved by mechanical application of mathematical steps, such as an algorithm. A problem is regarded as inherently difficult if its solution requires significant resources, whatever the algorithm used.

The NSA Is Building the Country's Biggest Spy Center (Watch What You Say) Photo: Name Withheld; Digital Manipulation: Jesse Lenz The spring air in the small, sand-dusted town has a soft haze to it, and clumps of green-gray sagebrush rustle in the breeze. Bluffdale sits in a bowl-shaped valley in the shadow of Utah’s Wasatch Range to the east and the Oquirrh Mountains to the west. Google Inbox Suggests Replies for Incoming Email Replying to routine email requests just got easier with a new smart reply feature for Gmail users who get their email through Google Inbox. Starting this week, the app's Smart Reply feature will analyze incoming email messages and offer a selection of brief stock replies. All you have to do is pick one and hit Send.

Unraveling biological networks: Biological network motif discovery algorithms A new approach to disentangling the complexities of biological networks, such as the way in which proteins interact in our body's cells has been developed by researchers in China. The team's algorithm could allow biologists and biomedical researchers to unravel new clues about how cells work and what goes awry with such networks in various diseases, such as Alzheimer's disease and cancer. We find networks everywhere in technology, in nature, in our bodies. They are ubiquitous in countless fields of research from electronic circuitry to social networks from transportation systems to biological systems. Researchers have demonstrated that although networks may superficially be very disparate in nature they nevertheless share many global properties, such as "small world" and "scale free" characteristics. This means that understanding one kind of network can help us understand another.

Theory of computation An artistic representation of a Turing machine. Turing machines are frequently used as theoretical models for computing. In theoretical computer science and mathematics, the theory of computation is the branch that deals with how efficiently problems can be solved on a model of computation, using an algorithm. The field is divided into three major branches: automata theory and language, computability theory, and computational complexity theory, which are linked by the question: "What are the fundamental capabilities and limitations of computers?." List of terms relating to algorithms and data structures The NIST Dictionary of Algorithms and Data Structures is a reference work maintained by the U.S. National Institute of Standards and Technology. It defines a large number of terms relating to algorithms and data structures. For algorithms and data structures not necessarily mentioned here, see list of algorithms and list of data structures.