Inductive programming

Inductive programming

Inductive programming (IP) is a special area of automatic programming, covering research from artificial intelligence and programming, which addresses learning of typically declarative (logic or functional) and often recursive programs from incomplete specifications, such as input/output examples or constraints. Depending on the programming language used, there are several kinds of inductive programming. Inductive functional programming, which uses functional programming languages such as Lisp or Haskell, and most especially inductive logic programming, which uses logic programming languages such as Prolog and other logical representations such as description logics, have been more prominent, but other (programming) language paradigms have also been used, such as constraint programming or probabilistic programming. == Definition == Inductive programming incorporates all approaches which are concerned with learning programs or algorithms from incomplete (formal) specifications. Possible inputs in an IP system are a set of training inputs and corresponding outputs or an output evaluation function, describing the desired behavior of the intended program, traces or action sequences which describe the process of calculating specific outputs, constraints for the program to be induced concerning its time efficiency or its complexity, various kinds of background knowledge such as standard data types, predefined functions to be used, program schemes or templates describing the data flow of the intended program, heuristics for guiding the search for a solution or other biases. Output of an IP system is a program in some arbitrary programming language containing conditionals and loop or recursive control structures, or any other kind of Turing-complete representation language. In many applications the output program must be correct with respect to the examples and partial specification, and this leads to the consideration of inductive programming as a special area inside automatic programming or program synthesis, usually opposed to 'deductive' program synthesis, where the specification is usually complete. In other cases, inductive programming is seen as a more general area where any declarative programming or representation language can be used and we may even have some degree of error in the examples, as in general machine learning, the more specific area of structure mining or the area of symbolic artificial intelligence. A distinctive feature is the number of examples or partial specification needed. Typically, inductive programming techniques can learn from just a few examples. The diversity of inductive programming usually comes from the applications and the languages that are used: apart from logic programming and functional programming, other programming paradigms and representation languages have been used or suggested in inductive programming, such as functional logic programming, constraint programming, probabilistic programming, abductive logic programming, modal logic, action languages, agent languages and many types of imperative languages. == History == The early works of Plotkin, and his "relative least general generalization (rlgg)", had an enormous impact in inductive logic programming. There were some encouraging results on learning recursive Prolog programs such as quicksort from examples together with suitable background knowledge, for example with GOLEM. However, after initial success, the community got disappointed by limited progress about the induction of recursive programs with ILP less and less focusing on recursive programs and leaning more and more towards a machine learning setting with applications in relational data mining and knowledge discovery. In parallel to work in ILP, Koza proposed genetic programming in the early 1990s as a generate-and-test based approach to learning programs. The idea of genetic programming was further developed into the inductive programming system ADATE and the systematic-search-based system MagicHaskeller. Here again, functional programs are learned from sets of positive examples together with an output evaluation (fitness) function which specifies the desired input/output behavior of the program to be learned. The early work in grammar induction (also known as grammatical inference) is related to inductive programming, as rewriting systems or logic programs can be used to represent production rules. In fact, early works in inductive inference considered grammar induction and Lisp program inference as basically the same problem. The results in terms of learnability were related to classical concepts, such as identification-in-the-limit, as introduced in the seminal work of Gold. More recently, the language learning problem was addressed by the inductive programming community. In the recent years, the classical approaches have been resumed and advanced with great success. Therefore, the synthesis problem has been reformulated on the background of constructor-based term rewriting systems taking into account modern techniques of functional programming, as well as moderate use of search-based strategies and usage of background knowledge as well as automatic invention of subprograms. Many new and successful applications have recently appeared beyond program synthesis, most especially in the area of data manipulation, programming by example and cognitive modelling (see below). Other ideas have also been explored with the common characteristic of using declarative languages for the representation of hypotheses. For instance, the use of higher-order features, schemes or structured distances have been advocated for a better handling of recursive data types and structures; abstraction has also been explored as a more powerful approach to cumulative learning and function invention. One powerful paradigm that has been recently used for the representation of hypotheses in inductive programming (generally in the form of generative models) is probabilistic programming (and related paradigms, such as stochastic logic programs and Bayesian logic programming). == Application areas == The first workshop on Approaches and Applications of Inductive Programming (AAIP) Archived 2016-03-03 at the Wayback Machine held in conjunction with ICML 2005 identified all applications where "learning of programs or recursive rules are called for, [...] first in the domain of software engineering where structural learning, software assistants and software agents can help to relieve programmers from routine tasks, give programming support for end users, or support of novice programmers and programming tutor systems. Further areas of application are language learning, learning recursive control rules for AI-planning, learning recursive concepts in web-mining or for data-format transformations". Since then, these and many other areas have shown to be successful application niches for inductive programming, such as end-user programming, the related areas of programming by example and programming by demonstration, and intelligent tutoring systems. Other areas where inductive inference has been recently applied are knowledge acquisition, artificial general intelligence, reinforcement learning and theory evaluation, and cognitive science in general. There may also be prospective applications in intelligent agents, games, robotics, personalisation, ambient intelligence and human interfaces.

Pixelmator Pro

Pixelmator Pro is a photo, video, and vector graphic editor developed by Apple for macOS and iPadOS as part of its Pixelmator and pro apps platforms and as a part of their Apple Creator Studio suite of applications. Pixelmator Pro relies heavily on technologies from Apple platforms such as Metal, CoreML, Core Image, AVFoundation, GCD, and SwiftUI. == Features == GPU accelerated with Metal 50+ standard image editing tools Layer-based image editor Video editing support Vector graphic support (including SVG support) AI-powered editing features such as background removal ML Super Resolution and Smart Replace Supports a variety of media formats (JPEG, RAW, Apple ProRAW, PSD, PNG, GIF, MP4, HEIF, etc) == Reception == Pixelmator Pro was generally well-received by reviewers who praised its deep use of machine learning, fully macOS-native design, and relatively affordable one-time purchase compared to subscription software such as Adobe Photoshop. Some reviewers criticized that some features are hard to find or hard to use. It was awarded Apple's Mac App of the Year in 2018. Pixelmator Pro does not have support for panorama stitching. == Acquisition by Apple == On November 1, 2024, the Pixelmator Team announced that they were to be acquired by Apple, subject to regulatory approval. Their site promises "There will be no material changes to the Pixelmator Pro, Pixelmator for iOS, and Photomator apps at this time." The acquisition was completed in February 2025. On January 13, 2026, Apple announced that a new version of Pixelmator Pro with AI features would be included in its new Apple Creator Studio subscription, the app would be brought to the iPad and the Mac app would be redesigned with Liquid Glass. == Version history == == Applescript == In 2020 Pixelmator Pro added the ability to leverage Apple's automation language 'AppleScript' to automate many tasks in version 1.8 (Lynx). This enabled simple and advanced automation activities such as image resize, crop, color adjustments, format change, moving layers around, and more advanced actions like removing background, Gaussian blur, text replacement, shadows, color replacement, etc.

Fuzzy mathematics

Fuzzy mathematics is a branch of mathematics that extends classical set theory and logic to model reasoning under uncertainty. Initiated by Lotfi Asker Zadeh in 1965 with the introduction of fuzzy sets, the field has since evolved to include fuzzy set theory, fuzzy logic, and various fuzzy analogues of traditional mathematic structures. Unlike classical mathematics, which usually relies on binary membership (an element either belongs to a set or it does not), fuzzy mathematics allows elements to partially belong to a set, with degrees of membership represented by values in the interval [0, 1]. This framework enables more flexible modeling of imprecise or vague concepts. Fuzzy mathematics has found applications in numerous domains, including control theory, artificial intelligence, decision theory, pattern recognition, and linguistics, where the modeling of gradations and uncertainty is essential. == Definition == A fuzzy subset A of a set X is defined by a function A: X → L, where L is typically the interval [0, 1]. This function is called the membership function of the fuzzy subset and assigns to each element x in X a degree of membership A(x) in the fuzzy set A. In classical set theory, a subset of X can be represented by an indicator function (also known as a characteristic function), which maps elements to either 0 or 1, indicating non-membership or full membership, respectively. Fuzzy subsets generalize this concept by allowing any real value between 0 and 1, thereby enabling partial membership. More generally, the codomain L of the membership function can be replaced with any complete lattice, resulting in the broader framework of L-fuzzy sets. == Fuzzification == The development of fuzzification in mathematics can be broadly divided into three historical stages: Initial, straightforward fuzzifications (1960s–1970s), Expansion of generalization techniques (1980s), Standardization, axiomatization, and L-fuzzification (1990s). Fuzzification generally involves extending classical mathematical concepts from binary (crisp) logic, where membership is determined by characteristic functions, to fuzzy logic, where membership is expressed by values in the interval [0, 1] via membership functions. Let A and B be fuzzy subsets of a set X. The fuzzy versions of set-theoretic operations are commonly defined as: ( A ∩ B ) ( x ) = min ( A ( x ) , B ( x ) ) {\displaystyle (A\cap B)(x)=\min(A(x),B(x))} ( A ∪ B ) ( x ) = max ( A ( x ) , B ( x ) ) {\displaystyle (A\cup B)(x)=\max(A(x),B(x))} for all x ∈ X {\displaystyle x\in X} . These operations can be generalized using t-norms and t-conorms, respectively. For example, the minimum operation can be replaced by multiplication: ( A ∩ B ) ( x ) = A ( x ) ⋅ B ( x ) {\displaystyle (A\cap B)(x)=A(x)\cdot B(x)} Fuzzification of algebraic structures often relies on generalizing the closure property. Let ∗ {\displaystyle } be a binary operation on X, and let A be a fuzzy subset of X. Then A is said to satisfy fuzzy closure if: A ( x ∗ y ) ≥ min ( A ( x ) , A ( y ) ) {\displaystyle A(xy)\geq \min(A(x),A(y))} for all x , y ∈ X {\displaystyle x,y\in X} . If ( G , ∗ ) {\displaystyle (G,)} is a group, then a fuzzy subset A of G is a fuzzy subgroup if: A ( x ∗ y − 1 ) ≥ min ( A ( x ) , A ( y − 1 ) ) {\displaystyle A(xy^{-1})\geq \min(A(x),A(y^{-1}))} for all x , y ∈ G {\displaystyle x,y\in G} . Similar generalizations apply to relational properties. For example, for example, for fuzzification of the transitivity property, a fuzzy relation R {\displaystyle R} on X {\displaystyle X} (i.e., a fuzzy subset of X × X {\displaystyle X\times X} ) is said to be fuzzy transitive if: R ( x , z ) ≥ min ( R ( x , y ) , R ( y , z ) ) {\displaystyle R(x,z)\geq \min(R(x,y),R(y,z))} for all x , y , z ∈ X {\displaystyle x,y,z\in X} . == Fuzzy analogues == Fuzzy subgroupoids and fuzzy subgroups were introduced in 1971 by A. Rosenfeld. Analogues of other mathematical subjects have been translated to fuzzy mathematics, such as fuzzy field theory and fuzzy Galois theory, fuzzy topology, fuzzy geometry, fuzzy orderings, and fuzzy graphs.

Oblivion (2013 film)

Oblivion is a 2013 American epic post-apocalyptic science fiction action film produced and directed by Joseph Kosinski from a screenplay by Karl Gajdusek and Michael deBruyn, starring Tom Cruise in the main role alongside Morgan Freeman, Olga Kurylenko, Andrea Riseborough, Nikolaj Coster-Waldau, and Melissa Leo in supporting roles. Based on Kosinski's unpublished Radical Comics graphic novel of the same name, the film pays homage to 1970s sci-fi, and is a "love story" set in 2077 on an Earth desolated by an alien war; a maintenance technician on the verge of completing his mission finds a woman who survived from a space ship crash, leading him to question his purpose and discover the truth about the war. Oblivion premiered in Buenos Aires on March 26, 2013, and was released in theaters by Universal Pictures on April 19. The film grossed $286 million worldwide on a production budget of $120 million and received mixed reviews from critics. == Plot == In 2017, aliens known as Scavengers attack Earth and destroy the Moon, triggering global natural disasters. Although humanity wins the war using nuclear weapons, Earth is left uninhabitable. Sixty years later, the remnants of humanity have relocated to a colony on Saturn's moon Titan, except for Unit 49—technician Jack and his communications officer Victoria—who are scheduled to join them in two weeks. The pair oversee hydro rigs that convert seawater into fusion energy for the Tet, the last remaining human colony ship in orbit. Though Jack and Victoria are romantically involved and have had their memories erased for security reasons, Jack experiences recurring dreams of an unknown woman. He also secretly visits a hidden, verdant valley where he has built a lakeside cabin and collects relics of Earth's past. While investigating a missing drone—autonomous, highly advanced, and heavily armed machines—Jack is nearly captured by Scavengers. Later, he discovers the Scavengers are transmitting a signal into space. A NASA pod crash-lands at the signal's coordinates, carrying five humans in suspended animation, including the woman from Jack's dreams. A drone arrives and destroys four of the pods, but Jack rescues the remaining one and brings the unconscious woman to Unit 49's base. After reviving her, Jack and Victoria learn that the woman, Julia, has been in stasis aboard the Odyssey spaceship since 2017. Julia insists on recovering the ship's flight recorder. However, she and Jack are captured by Scavengers and brought to the Raven Rock Mountain Complex. Their leader, Malcolm, reveals that the Scavengers are actually surviving humans. Malcolm needs Jack to reprogram a captured drone to deliver a nuclear bomb, built from Odyssey's reactor, to the Tet. Jack refuses, so Malcolm releases him and Julia, urging him to seek the truth in the radiation zone, which is supposedly deadly and off-limits. Julia helps Jack recall that she is his wife, and fragments of his memories begin to return. When they arrive back at Unit 49, a devastated Victoria informs Sally, the Tet's mission controller, that she and Jack are no longer an "effective team." A drone activates and kills Victoria. Jack and Julia destroy the drone, but crash their aircraft inside the radiation zone. There, they encounter another version of Jack—"Jack-52"—who arrives to repair the drone. Jack subdues him, but Julia is seriously injured in the fight. Jack impersonates his clone to infiltrate Unit 52, meets Victoria-52, and steals medical supplies for Julia. They rest at his cabin. At Raven Rock, Malcolm reveals the truth: humanity lost the war, and the Tet is an alien machine intelligence harvesting Earth's resources. After the Moon's destruction, the Tet deployed thousands of clones of astronaut Jack Harper—brainwashed into obedience—to exterminate the remaining humans. Malcolm had assumed these clones were inhuman until witnessing Jack show interest in a discarded book, hinting at lingering humanity. Jack reprograms the captured drone, but it is destroyed in a surprise attack by other drones, leaving Malcolm badly wounded. Jack and Julia resolve to deliver the bomb themselves; Julia enters a stasis pod. En route, Jack listens to the Odyssey's flight recorder, which reveals the original Jack Harper and Victoria were astronauts sent to explore Titan before being confronted by the Tet. The pair were captured, but not before Jack ejected the remaining crew—including Julia—in stasis pods to protect them. Jack gains access to the Tet by claiming he is delivering Julia, as previously instructed. However, the stasis pod contains a dying Malcolm. Jack and Malcolm detonate the bomb, destroying the Tet and themselves. Julia later awakens at the cabin. Three years later, Julia lives there and it is revealed she had a daughter with Jack. A group of Raven Rock survivors arrives, alongside Jack-52, who has begun regaining fragments of his own lost identity. == Cast == Tom Cruise as Jack Harper—Tech 49, a technician who works to repair drones on Earth and questions his mission. Originally, he was the American commander of a mission en route to Titan who was captured by the Tet and cloned to fight humanity. Cruise also plays Jack Harper—Tech 52, a clone who seeks out Julia after the destruction of the Tet. Morgan Freeman as Malcolm Beech, an American veteran soldier and leader of a large community of scavengers, the human survivors of the alien Tet's attacks. Olga Kurylenko as Julia Rusakova Harper, Jack's wife and a Russian crew member on the Odyssey, who was sent back towards Earth by her husband to protect her from the initial contact with the Tet. Andrea Riseborough as Victoria "Vika" Olsen, Jack's communications partner and housemate. Originally, she was the British co-pilot of Jack's mission to Titan who was captured and cloned to assist in the Tet's war on humanity. Riseborough also plays a clone of Vika who Jack misleads to obtain medical supplies. Nikolaj Coster-Waldau as Sergeant Sykes, the main military commander of Beech's community of scavengers who is skeptical of Jack at first. Melissa Leo as the Tet, an alien artificial intelligence seeking to acquire Earth's natural resources and wipe out humanity. Leo also plays Sally, the mission director of Jack and Julia's mission to Titan; her likeness was copied by the Tet to serve as its visual and auditory representation. Zoë Bell as Kara, a soldier and member of the scavengers. == Production == === Development === Joseph Kosinski started the movie process by beginning work on a graphic novel called Oblivion featuring his story. While the completion of this would be teased to the public and the concept was used to pitch the movie, it was never finished and Kosinski claims he never intended to, stating it was "just a stage in the project [of film development]". Arvid Nelson was billed as co-writer and Radical Comics was attached as publisher. The novel was never finished; Kosinski explaining: "the partnership with Radical Comics allowed me to continue working on the story by developing a series of images and continuing to refine the story more over a period of years. Then I basically used all that development as a pitch kit to the studio. So even though we really never released it as an illustrated novel the story is being told as a film, which was always the intention." Walt Disney Pictures, which produced Kosinski's previous film Tron: Legacy (2010), acquired the Oblivion film adaptation rights from Radical Comics and Kosinski after a heated auction in August 2010. The film was a directing vehicle for Kosinski, with Barry Levine producing, and Jesse Berger executive producing. Other studios that made bids on the film were Paramount Pictures, 20th Century Fox, and Universal Pictures. Disney subsequently released the rights after realizing the PG-rated film they envisioned, in line with their family-oriented reputation, would require too many story changes. Universal, which had also bid for the original rights, then bought them from Kosinski and Radical and authorized a PG-13 film version. The film's script was originally written by Kosinski and William Monahan and underwent a first rewrite by Karl Gajdusek. When the film passed into Universal's hands, a final rewrite was done by Michael Arndt, under the pen name "Michael deBruyn". Universal was particularly appreciative of the script, saying, "It's one of the most beautiful scripts we've ever come across." The Bubble Ship operated by Cruise's main character, Jack 49, was inspired by the Bell 47 helicopter (often colloquially referred to as a "bubble cockpit" helicopter), a utilitarian 1947 vehicle with a transparent round canopy that Kosinski saw in the lobby of the Museum of Modern Art in Manhattan, and which he likened to a dragonfly. Daniel Simon, who previously worked with Kosinski as the lead vehicle designer on Tron: Legacy, was tasked with creating the Bubble Ship from this basis, incorporating elements evocative of an advanced fighter

Opposition to AI data centers

Since 2024, dozens of local community-led protest campaigns have emerged in opposition to AI data centers. == Motivations == Organized opposition to AI data centers has been driven by concerns about energy use, energy costs, noise pollution, air pollution, and water waste. Opposition sentiment is widespread with a Gallup poll conducted in March 2026 showing that 70% of respondents oppose the construction of new AI data centers in their neighborhood. == Impact == In 2025, local opposition to AI data centers led to the delay or cancellation of projects totalling US$156 billion. == Specific protests and outcomes in the United States == According to Data Center Watch, there are has been a wave of dozens of protests against AI data centers since 2022. Below is a non-exhaustive list of some notable examples. === Goodyear and Buckeye, Arizona: Tract AI Data Center Proposal === In Goodyear and Buckeye, Arizona, a $14 billion project by developer Tract was withdrawn after local authorities blocked necessary rezoning in response to pressure from resident organizers. Opponest stiff resistance due to concerns over building heights, noise pollution, and the potential strain on local utilities. However, the company announced a revised project near the Buckeye airport in August 2024, with the backing of local officials and the mayor. === Peculiar, Missouri: Diode Ventures Harper Road Technology Park Proposal === In Peculiar, Missouri, residents from the group "Peaceful Peculiar" organized to stop a data center proposal from Diode Ventures called Harper Road Technology Park. Citing concerns around noise and light pollution, health, environmental impacts, jobs, property values, and energy use, organizers attended local planning and zoning meetings in large numbers and lobbied councilors to reject the proposal. Ultimately, the city council unanimously rejected the proposal in September 2024. === Chesterton, Indiana: Provident Realty Advisors Proposal === In Chesterton, Indiana, the Texas-based company Provident Reality Advisors applied for a $1.3 billion construction of a data center complex on the Brassie Golf Club property. Provident Realty Advisors wanted to purchase the 200 acres owned by PPM Chesterton LLC in 2024 order to build a data center complex, with eight buildings and an end user of a hyperscaler. The Town Council of Chesterton released a statement saying that they would never support this project, at least not at the scale and location it was planned for. They cited fears of added noise for locals, electrical or water management concerns, the intrusiveness of a data center built next to houses, and more. Provident released a statement shortly after rescinding their plan, because it was clear than the town of Chesterton would not support them. === Cascade Locks, Oregon: Roundhouse Digital Infrastructure Proposal === Startup data center developer Roundhouse Digital Infrastructure had planned to build out a 10-megawatt data center using a vacant industrial building and nearby 10-acre site in the Port of Cascade Locks, Oregon. After significant organized community opposition, the project was abandoned. === Forth Worth, Texas: WUSF 5 Rock Creek East Proposal === In September 2024, the City Council of Fort Worth, Texas approved a zoning change that would allow construction of a data center. In responses, neighbors mounted opposition citing concerns about traffic, light pollution, energy consumption, water use, and noise issues if the data center were to be built. In response to extensive public comments opposing a tax break for the data center, a city councilor withdrew his motion to approve the tax break. As of April, 2026, the future of the project is still uncertain. === Santa Clara, California: GI Partners Proposal === GI partners sought to build a new AI data center in Santa Clara, California, which is already home to many data centers, by acquiring a conditional permit use that would have allowed the developer to knock down a property and replace it with a data center. To obtain this permit they were required to go before members of the Planning Commission. Ultimately, the project was delayed with the Planning Commission requiring GI partners to do more public outreach. === Virginia === ==== Richmond: DC Blox Proposal ==== After residents organized to lobby the municipal government to block the proposal to avoid noise pollution and higher energy use, commissioners denied the company's permit. ==== Catlett Station: Headwaters Site Proposal ==== In Catlett, Virginia, developer Headwaters proposed construction of a data center complex just north of the town in 2020. In response, a residents' organization called "Protect Catlett" was formed to oppose the project. Arguments against the data center involved its impacts on water and power availability, its noise as a residential disturbance, and its destruction of historic and community heritage buildings. Arguments in favor cited job creation and $20 million in local tax revenue if the project were to go through. Protect Catlett utilized town halls and public comments to mobilize opposition to the project. They also dedicated time to educating other residents about the project's negative impacts and canvassing door-to-door in order to garner even more opposition to the project. Ultimately, after fervent opposition from most town residents, the project was canceled by the town and the developer. ==== Culpeper County: Culpeper Acquisitions Proposal ==== Culpeper Acquisitions, LLC, proposed a massive $12 billion data center project in Culpeper County, Virginia, designed to feature 4.6 million square feet of space across nine multi-story buildings. Coalition to Save Culpeper (C2SC) is an activist organization formed to resist the development of the project. C2SC has been active on many fronts including, messaging on social media, reaching out to local officials, and organizing meetings to bring community members with aligned interests together. Ultimately, the project was delayed due to unanimous denial by the Culpeper County Planning Commission on June 12, 2024, which was driven by intense opposition from C2SC. C2SC was successful in their mission largely because they were able to get so many people from the community behind it, and put enough pressure on local officials to take action. ==== Midlothian: Province Group Proposal ==== In late October 2025, the Powhatan County Board of Supervisors in Virginia voted unanimously to approve the $3 billion data center, despite the county's Planning Commission having unanimously recommended denial several days earlier. The reasoning behind their support for the center is that it will generate substantial tax revenue, reducing the county's reliance on residential property taxes. This appeal of lowering residential property taxes is the major selling point for the center's development. The developer, California-based Province Group, incentivized the Board by being agreeable to its conditions for building the center. The center is still on track for development, but faces local resistance, though little information is available on specific groups opposing it. ==== Warrenton: Amazon Proposal ==== Citizens for Farquier County (CFFC) advocates to "preserve the natural, historic and agricultural resources" of their county. Historically, this has meant opposing the building of a dam or lights in front of fast food stores. This group has recently mobilized in opposition of a plan to build data centers for Amazon. They first filed a suit to stop the construction in 2023 and it has been in litigation ever since. The case hinges on opposition to a 2021 zoning amendment which allowed data centers to be built in town. CFFC's lawyer, Dale Mullen, argues that this amendment violates state law, which requires such amendments to state their "public purpose". They argue that the permit for the Amazon data center was "void from the beginning". The CFFC also organized to vote out town council members who approved the first data center and were up for reelection, replacing them with candidates who opposed the data center. In May 2025, after attending town council meetings to speak out against the data center, the planning commission voted 4–1 to remove the zoning amendment allowing data center construction in town, citing public opposition. Currently, CFFC is advocating along with Piedmont Environmental Group, for phasing out data center tax breaks at the state level. ==== France: Marseille opposition ==== In France, local opposition materialised in response to proposed data centre developments, especially in and around the city of Marseille. Opposition came from activists, such as "Clouds Were Under Our Feet" group, residents ,and local politicians. Issues raised related to energy use, environmental impact, and limited local benefits (such as the creation of a few jobs only). == Legislation in the United States == Legal limits and moratoriums on the construction of new d

Irwin Sobel

Irwin Sobel (born September 12, 1940) is a scientist and researcher in digital image processing. == Biography == Irwin Sobel was born in New York City. He graduated from MIT in 1961 and completed his Ph.D. research at the Stanford Artificial Intelligence Project (SAIL) with thesis Camera Models and Machine Perception. His Ph.D. advisor was Jerome A. Feldman. Starting in 1973, he spent nine years doing postdoctoral research at Columbia University. After 1982, he worked as a Senior Researcher at HP Labs. == Sobel operator == In 1968, Sobel gave a talk entitled "An Isotropic 3x3 Image Gradient Operator" at SAIL; this method became known as the Sobel operator. It was developed jointly with a colleague, Gary Feldman, also at SAIL.

Evolutionary computation

Evolutionary computation (EC) from computer science is a family of algorithms for global optimization inspired by biological evolution, and a subfield of computational intelligence and soft computing studying these algorithms. In technical terms, they are a family of population-based trial and error problem solvers with a metaheuristic or stochastic optimization character. In evolutionary computation, an initial set of candidate solutions is generated and iteratively updated. Each new generation is produced by stochastically removing less desired solutions, and introducing small random changes as well as, depending on the method, mixing parental information. In biological terminology, a population of solutions is subjected to natural selection (or artificial selection), mutation and possibly recombination. These biological functions serve as role models for the genetic operators - mutation, crossover, and selection - used in the EC procedures. As a result, the population will gradually evolve to increase in fitness, in this case the chosen fitness function of the algorithm. Evolutionary computation techniques can produce highly optimized solutions in a wide range of problem settings, making them popular in computer science. Many variants and extensions exist, suited to more specific families of problems and data structures. Evolutionary computation is also sometimes used in evolutionary biology as an in silico experimental procedure to study common aspects of general evolutionary processes. == History == The concept of mimicking evolutionary processes to solve problems originates before the advent of computers, such as when Alan Turing proposed a method of genetic search in 1948 . Turing's B-type u-machines resemble primitive neural networks, and connections between neurons were learnt via a sort of genetic algorithm. His P-type u-machines resemble a method for reinforcement learning, where pleasure and pain signals direct the machine to learn certain behaviors. However, Turing's paper went unpublished until 1968, and he died in 1954, so this early work had little to no effect on the field of evolutionary computation that was to develop. Evolutionary computing as a field began in earnest in the 1950s and 1960s. There were several independent attempts to use the process of evolution in computing at this time, which developed separately for roughly 15 years. Three branches emerged in different places to attain this goal: evolution strategies, evolutionary programming, and genetic algorithms. A fourth branch, genetic programming, eventually emerged in the early 1990s. These approaches differ in the method of selection, the permitted mutations, and the representation of genetic data. By the 1990s, the distinctions between the historic branches had begun to blur, and the term 'evolutionary computing' was coined in 1991 to denote a field that exists over all four paradigms. In 1962, Lawrence J. Fogel initiated the research of Evolutionary Programming in the United States, which was considered an artificial intelligence endeavor. In this system, finite state machines are used to solve a prediction problem: these machines would be mutated (adding or deleting states, or changing the state transition rules), and the best of these mutated machines would be evolved further in future generations. The final finite state machine may be used to generate predictions when needed. The evolutionary programming method was successfully applied to prediction problems, system identification, and automatic control. It was eventually extended to handle time series data and to model the evolution of gaming strategies. In 1964, Ingo Rechenberg and Hans-Paul Schwefel introduce the paradigm of evolution strategies in Germany. Since traditional gradient descent techniques produce results that may get stuck in local minima, Rechenberg and Schwefel proposed that random mutations (applied to all parameters of some solution vector) may be used to escape these minima. Child solutions were generated from parent solutions, and the more successful of the two was kept for future generations. This technique was first used by the two to successfully solve optimization problems in fluid dynamics. Initially, this optimization technique was performed without computers, instead relying on dice to determine random mutations. By 1965, the calculations were performed wholly by machine. John Henry Holland introduced genetic algorithms in the 1960s, and it was further developed at the University of Michigan in the 1970s. While the other approaches were focused on solving problems, Holland primarily aimed to use genetic algorithms to study adaptation and determine how it may be simulated. Populations of chromosomes, represented as bit strings, were transformed by an artificial selection process, selecting for specific 'allele' bits in the bit string. Among other mutation methods, interactions between chromosomes were used to simulate the recombination of DNA between different organisms. While previous methods only tracked a single optimal organism at a time (having children compete with parents), Holland's genetic algorithms tracked large populations (having many organisms compete each generation). By the 1990s, a new approach to evolutionary computation that came to be called genetic programming emerged, advocated for by John Koza among others. In this class of algorithms, the subject of evolution was itself a program written in a high-level programming language (there had been some previous attempts as early as 1958 to use machine code, but they met with little success). For Koza, the programs were Lisp S-expressions, which can be thought of as trees of sub-expressions. This representation permits programs to swap subtrees, representing a sort of genetic mixing. Programs are scored based on how well they complete a certain task, and the score is used for artificial selection. Sequence induction, pattern recognition, and planning were all successful applications of the genetic programming paradigm. Many other figures played a role in the history of evolutionary computing, although their work did not always fit into one of the major historical branches of the field. The earliest computational simulations of evolution using evolutionary algorithms and artificial life techniques were performed by Nils Aall Barricelli in 1953, with first results published in 1954. Another pioneer in the 1950s was Alex Fraser, who published a series of papers on simulation of artificial selection. As academic interest grew, dramatic increases in the power of computers allowed practical applications, including the automatic evolution of computer programs. Evolutionary algorithms are now used to solve multi-dimensional problems more efficiently than software produced by human designers, and also to optimize the design of systems. == Techniques == Evolutionary computing techniques mostly involve metaheuristic optimization algorithms. Broadly speaking, the field includes: Agent-based modeling Ant colony optimization Particle swarm optimization Swarm intelligence Artificial immune systems Artificial life Digital organism Cultural algorithms Differential evolution Dual-phase evolution Estimation of distribution algorithm Evolutionary algorithm Genetic algorithm Evolutionary programming Genetic programming Gene expression programming Grammatical evolution Evolution strategy Learnable evolution model Learning classifier system Memetic algorithms Neuroevolution Self-organization such as self-organizing maps, competitive learning Over recent years many dubious algorithms have been proposed, that are often just copies of existing algorithms (frequently Particle Swarm Optimization), where only the metaphor changed, but the algorithm itself is not new at all. A thorough catalogue with many of these dubious algorithms has been published in the Evolutionary Computation Bestiary. It is also important to note that many of these dubiously 'novel' algorithms have poor experimental validation. == Evolutionary algorithms == Evolutionary algorithms form a subset of evolutionary computation in that they generally only involve techniques implementing mechanisms inspired by biological evolution such as reproduction, mutation, recombination and natural selection. Candidate solutions to the optimization problem play the role of individuals in a population, and the cost function determines the environment within which the solutions "live" (see also fitness function). Evolution of the population then takes place after the repeated application of the above operators. In this process, there are two main forces that form the basis of evolutionary systems: Recombination (e.g. crossover) and mutation create the necessary diversity and thereby facilitate novelty, while selection acts as a force increasing quality. Many aspects of such an evolutionary process are stochastic. Changed pieces of information due to recombination and mutati