AI Chat Hpt

AI Chat Hpt — independent reviews, comparisons, pricing and step-by-step guides on Aizhi.

  • Microsoft Azure

    Microsoft Azure

    Microsoft Azure, sometimes stylized Azure, and formerly Windows Azure, is the cloud computing platform developed by Microsoft. It offers management, access and development of applications and services to individuals, companies, and governments through its global infrastructure. Microsoft Azure supports many programming languages, tools, and frameworks, including Microsoft-specific and third-party software and systems. Azure was first introduced at the Professional Developers Conference (PDC) in October 2008 under the codename "Project Red Dog". It was officially launched as Windows Azure in February 2010 and later renamed to Microsoft Azure on March 25, 2014. == Services == Microsoft Azure uses large-scale virtualization at Microsoft data centers worldwide and offers more than 600 services. Microsoft Azure offers a service level agreement (SLA) that guarantees 99.9% availability for applications and data hosted on its platform, subject to specific terms and conditions outlined in the SLA documentation. === Computer services === Virtual machines, infrastructure as a service (IaaS), allowing users to launch general-purpose Microsoft Windows and Linux virtual machines, software as a service (SaaS), as well as preconfigured machine images for popular software packages. Starting in 2022, these virtual machines are now powered by Ampere Cloud-native processors. Most users run Linux on Azure, some of the many Linux distributions offered, including Microsoft's own Linux-based Azure Sphere. App services, platform as a service (PaaS) environment, letting developers easily publish and manage websites. Azure Web Sites allows developers to build sites using ASP.NET, PHP, Node.js, Java, or Python, which can be deployed using FTP, Git, Mercurial, Azure DevOps, or uploaded through the user portal. This feature was announced in preview form in June 2012 at the Meet Microsoft Azure event. Customers can create websites in PHP, ASP.NET, Node.js, or Python, or select from several open-source applications from a gallery to deploy. This comprises one aspect of the platform as a service (PaaS) offerings for the Microsoft Azure Platform. It was renamed Web Apps in April 2015. Web Jobs are applications that can be deployed to an App Service environment to implement background processing that can be invoked on a schedule, on-demand, or run continuously. The Blob, Table, and Queue services can be used to communicate between Web Apps and Web Jobs and to provide state. Azure Kubernetes Service (AKS) provides the capability to deploy production-ready Kubernetes clusters in Azure. In July 2023, watermarking support on Azure Virtual Desktop was announced as an optional feature of Screen Capture to provide additional security against data leakage. === Identity === Entra ID connect is used to synchronize on-premises directories and enable SSO (Single Sign On). Entra ID B2C allows the use of consumer identity and access management in the cloud. Entra Domain Services is used to join Azure virtual machines to a domain without domain controllers. Azure information protection can be used to protect sensitive information. Entra ID External Identities is a set of capabilities that allow organizations to collaborate with external users, including customers and partners. On July 11, 2023, Microsoft announced the renaming of Azure AD to Microsoft Entra ID. The name change took place four days later. === Mobile services === Mobile Engagement collects real-time analytics that highlight users' behavior. It also provides push notifications to mobile devices. HockeyApp can be used to develop, distribute, and beta-test mobile apps. === Storage services === Storage Services provides REST and SDK APIs for storing and accessing data on the cloud. Table Service lets programs store structured text in partitioned collections of entities that are accessed by the partition key and primary key. Azure Table Service is a NoSQL non-relational database. Blob Service allows programs to store unstructured text and binary data as object storage blobs that can be accessed by an HTTP(S) path. Blob service also provides security mechanisms to control access to data. Queue Service lets programs communicate asynchronously by message using queues. File Service allows storing and access of data on the cloud using the REST APIs or the SMB protocol. === Communication services === Azure Communication Services offers an SDK for creating web and mobile communications applications that include SMS, video calling, VOIP and PSTN calling, and web-based chat. === Data management === Azure Data Explorer provides big data analytics and data-exploration capabilities. Azure Search provides text search and a subset of OData's structured filters using REST or SDK APIs. Cosmos DB is a NoSQL database service that implements a subset of the SQL SELECT statement on JSON documents. Azure Cache for Redis is a managed implementation of Redis. StorSimple manages storage tasks between on-premises devices and cloud storage. Azure SQL Database works to create, scale, and extend applications into the cloud using Microsoft SQL Server technology. It also integrates with Active Directory, Microsoft System Center, and Hadoop. Azure Synapse Analytics is a fully managed cloud data warehouse. Azure Data Factory is a data integration service that allows creation of data-driven workflows in the cloud for orchestrating and automating data movement and data transformation. Azure Data Lake is a scalable data storage and analytic service for big data analytics workloads that require developers to run massively parallel queries. Azure HDInsight is a big data-relevant service that deploys Hortonworks Hadoop on Microsoft Azure and supports the creation of Hadoop clusters using Linux with Ubuntu. Azure Stream Analytics is a Serverless scalable event-processing engine that enables users to develop and run real-time analytics on multiple streams of data from sources such as devices, sensors, websites, social media, and other applications. === Messaging === The Microsoft Azure Service Bus allows applications running on Azure premises or off-premises devices to communicate with Azure. This helps to build scalable and reliable applications in a service-oriented architecture (SOA). The Azure service bus supports four different types of communication mechanisms: Event Hubs, which provides event and telemetry ingress to the cloud at a massive scale, with low latency and high reliability. For example, an event hub can be used to track data from cell phones such as coordinating with a GPS in real time. Queues, which allows one-directional communication. A sender application would send the message to the service bus queue and a receiver would read from the queue. Though there can be multiple readers for the queue, only one would process a single message. Topics, which provides one-directional communication using a subscriber pattern. It is similar to a queue; however, each subscriber will receive a copy of the message sent to a Topic. Optionally, the subscriber can filter out messages based on specific criteria defined by the subscriber. Relays, which provides bi-directional communication. Unlike queues and topics, a relay does not store in-flight messages in its memory; instead, it just passes them on to the destination application. === Media services === A PaaS offering that can be used for encoding, content protection, streaming, or analytics. === CDN === Azure has a worldwide content delivery network (CDN) designed to efficiently deliver audio, video, applications, images, and other static files. It improves the performance of websites by caching static files closer to users, based on their geographic location. Users can manage the network using a REST-based HTTP API. Azure has 118 point-of-presence locations across 100 cities worldwide (also known as Edge locations) as of January 2023. === Developer === Application Insights Azure DevOps === Management === With Azure Automation, users can easily automate repetitive and time-consuming tasks, often prone to cloud or enterprise setting errors. They can accomplish it using runbooks or desired state configurations for process automation. Microsoft SMA === Azure AI === Microsoft Azure Machine Learning (Azure ML) provides tools and frameworks for developers to create their own machine learning and artificial intelligence (AI) services. Azure AI Services by Microsoft comprises prebuilt APIs, SDKs, and services developers can customize. These services encompass perceptual and cognitive intelligence features such as speech recognition, speaker recognition, neural speech synthesis, face recognition, computer vision, OCR/form understanding, natural language processing, machine translation, and business decision services. Many AI characteristics in Microsoft's products and services, namely Bing, Office, Teams, Xbox, and Windows, are driven by Azure AI Services. Microsoft Foundry (formerly known as Azure AI Studio)

    Read more →
  • The Eye of Mexico

    The Eye of Mexico

    The Eye of Mexico (Spanish: El Ojo de México) is an outdoor sculpture in Mexico City. It is located in Ampliación Granada, Miguel Hidalgo, at the mixed-use development Neuchâtel Polanco, developed by the Canadian real estate company Ivanhoé Cambridge. The artwork was created by the Turkish artist Ferdi Alıcı and it was selected from among 350 proposals from artists from 35 countries. The project for The Eye of Mexico was developed by MIRA, a real estate investment and development company, and MASSIVart, a creative consulting agency. According to MIRA, upon its inauguration it became the first artwork in Latin America to use artificial intelligence (AI). The sculpture can read environmental and urban data using AI algorithms and transform the results into videos related to arts, science and technology. The ring was inaugurated on 20 May 2022 and it is 10 meters (33 ft) high and 3 meters (9.8 ft) wide.

    Read more →
  • Estimation of distribution algorithm

    Estimation of distribution algorithm

    Estimation of distribution algorithms (EDAs), sometimes called probabilistic model-building genetic algorithms (PMBGAs), are stochastic optimization methods that guide the search for the optimum by building and sampling explicit probabilistic models of promising candidate solutions. Optimization is viewed as a series of incremental updates of a probabilistic model, starting with the model encoding an uninformative prior over admissible solutions and ending with the model that generates only the global optima. EDAs belong to the class of evolutionary algorithms. The main difference between EDAs and most conventional evolutionary algorithms is that evolutionary algorithms generate new candidate solutions using an implicit distribution defined by one or more variation operators, whereas EDAs use an explicit probability distribution encoded by a Bayesian network, a multivariate normal distribution, or another model class. Similarly as other evolutionary algorithms, EDAs can be used to solve optimization problems defined over a number of representations from vectors to LISP style S expressions, and the quality of candidate solutions is often evaluated using one or more objective functions. The general procedure of an EDA is outlined in the following: t := 0 initialize model M(0) to represent uniform distribution over admissible solutions while (termination criteria not met) do P := generate N>0 candidate solutions by sampling M(t) F := evaluate all candidate solutions in P M(t + 1) := adjust_model(P, F, M(t)) t := t + 1 Using explicit probabilistic models in optimization allowed EDAs to feasibly solve optimization problems that were notoriously difficult for most conventional evolutionary algorithms and traditional optimization techniques, such as problems with high levels of epistasis. Nonetheless, the advantage of EDAs is also that these algorithms provide an optimization practitioner with a series of probabilistic models that reveal a lot of information about the problem being solved. This information can in turn be used to design problem-specific neighborhood operators for local search, to bias future runs of EDAs on a similar problem, or to create an efficient computational model of the problem. For example, if the population is represented by bit strings of length 4, the EDA can represent the population of promising solution using a single vector of four probabilities (p1, p2, p3, p4) where each component of p defines the probability of that position being a 1. Using this probability vector it is possible to create an arbitrary number of candidate solutions. == Estimation of distribution algorithms (EDAs) == This section describes the models built by some well known EDAs of different levels of complexity. It is always assumed a population P ( t ) {\displaystyle P(t)} at the generation t {\displaystyle t} , a selection operator S {\displaystyle S} , a model-building operator α {\displaystyle \alpha } and a sampling operator β {\displaystyle \beta } . == Univariate factorizations == The most simple EDAs assume that decision variables are independent, i.e. p ( X 1 , X 2 ) = p ( X 1 ) ⋅ p ( X 2 ) {\displaystyle p(X_{1},X_{2})=p(X_{1})\cdot p(X_{2})} . Therefore, univariate EDAs rely only on univariate statistics and multivariate distributions must be factorized as the product of N {\displaystyle N} univariate probability distributions, D Univariate := p ( X 1 , … , X N ) = ∏ i = 1 N p ( X i ) . {\displaystyle D_{\text{Univariate}}:=p(X_{1},\dots ,X_{N})=\prod _{i=1}^{N}p(X_{i}).} Such factorizations are used in many different EDAs, next we describe some of them. === Univariate marginal distribution algorithm (UMDA) === The UMDA is a simple EDA that uses an operator α U M D A {\displaystyle \alpha _{UMDA}} to estimate marginal probabilities from a selected population S ( P ( t ) ) {\displaystyle S(P(t))} . By assuming S ( P ( t ) ) {\displaystyle S(P(t))} contain λ {\displaystyle \lambda } elements, α U M D A {\displaystyle \alpha _{UMDA}} produces probabilities: p t + 1 ( X i ) = 1 λ ∑ x ∈ S ( P ( t ) ) x i , ∀ i ∈ 1 , 2 , … , N . {\displaystyle p_{t+1}(X_{i})={\dfrac {1}{\lambda }}\sum _{x\in S(P(t))}x_{i},~\forall i\in 1,2,\dots ,N.} Every UMDA step can be described as follows D ( t + 1 ) = α UMDA ∘ S ∘ β λ ( D ( t ) ) . {\displaystyle D(t+1)=\alpha _{\text{UMDA}}\circ S\circ \beta _{\lambda }(D(t)).} === Population-based incremental learning (PBIL) === The PBIL, represents the population implicitly by its model, from which it samples new solutions and updates the model. At each generation, μ {\displaystyle \mu } individuals are sampled and λ ≤ μ {\displaystyle \lambda \leq \mu } are selected. Such individuals are then used to update the model as follows p t + 1 ( X i ) = ( 1 − γ ) p t ( X i ) + ( γ / λ ) ∑ x ∈ S ( P ( t ) ) x i , ∀ i ∈ 1 , 2 , … , N , {\displaystyle p_{t+1}(X_{i})=(1-\gamma )p_{t}(X_{i})+(\gamma /\lambda )\sum _{x\in S(P(t))}x_{i},~\forall i\in 1,2,\dots ,N,} where γ ∈ ( 0 , 1 ] {\displaystyle \gamma \in (0,1]} is a parameter defining the learning rate, a small value determines that the previous model p t ( X i ) {\displaystyle p_{t}(X_{i})} should be only slightly modified by the new solutions sampled. PBIL can be described as D ( t + 1 ) = α PIBIL ∘ S ∘ β μ ( D ( t ) ) {\displaystyle D(t+1)=\alpha _{\text{PIBIL}}\circ S\circ \beta _{\mu }(D(t))} === Compact genetic algorithm (cGA) === The CGA, also relies on the implicit populations defined by univariate distributions. At each generation t {\displaystyle t} , two individuals x , y {\displaystyle x,y} are sampled, P ( t ) = β 2 ( D ( t ) ) {\displaystyle P(t)=\beta _{2}(D(t))} . The population P ( t ) {\displaystyle P(t)} is then sorted in decreasing order of fitness, S Sort ( f ) ( P ( t ) ) {\displaystyle S_{{\text{Sort}}(f)}(P(t))} , with u {\displaystyle u} being the best and v {\displaystyle v} being the worst solution. The CGA estimates univariate probabilities as follows p t + 1 ( X i ) = p t ( X i ) + γ ( u i − v i ) , ∀ i ∈ 1 , 2 , … , N , {\displaystyle p_{t+1}(X_{i})=p_{t}(X_{i})+\gamma (u_{i}-v_{i}),\quad \forall i\in 1,2,\dots ,N,} where, γ ∈ ( 0 , 1 ] {\displaystyle \gamma \in (0,1]} is a constant defining the learning rate, usually set to γ = 1 / N {\displaystyle \gamma =1/N} . The CGA can be defined as D ( t + 1 ) = α CGA ∘ S Sort ( f ) ∘ β 2 ( D ( t ) ) {\displaystyle D(t+1)=\alpha _{\text{CGA}}\circ S_{{\text{Sort}}(f)}\circ \beta _{2}(D(t))} == Bivariate factorizations == Although univariate models can be computed efficiently, in many cases they are not representative enough to provide better performance than GAs. In order to overcome such a drawback, the use of bivariate factorizations was proposed in the EDA community, in which dependencies between pairs of variables could be modeled. A bivariate factorization can be defined as follows, where π i {\displaystyle \pi _{i}} contains a possible variable dependent to X i {\displaystyle X_{i}} , i.e. | π i | = 1 {\displaystyle |\pi _{i}|=1} . D Bivariate := p ( X 1 , … , X N ) = ∏ i = 1 N p ( X i | π i ) . {\displaystyle D_{\text{Bivariate}}:=p(X_{1},\dots ,X_{N})=\prod _{i=1}^{N}p(X_{i}|\pi _{i}).} Bivariate and multivariate distributions are usually represented as probabilistic graphical models (graphs), in which edges denote statistical dependencies (or conditional probabilities) and vertices denote variables. To learn the structure of a PGM from data linkage-learning is employed. === Mutual information maximizing input clustering (MIMIC) === The MIMIC factorizes the joint probability distribution in a chain-like model representing successive dependencies between variables. It finds a permutation of the decision variables, r : i ↦ j {\displaystyle r:i\mapsto j} , such that x r ( 1 ) x r ( 2 ) , … , x r ( N ) {\displaystyle x_{r(1)}x_{r(2)},\dots ,x_{r(N)}} minimizes the Kullback–Leibler divergence in relation to the true probability distribution, i.e. π r ( i + 1 ) = { X r ( i ) } {\displaystyle \pi _{r(i+1)}=\{X_{r(i)}\}} . MIMIC models a distribution p t + 1 ( X 1 , … , X N ) = p t ( X r ( N ) ) ∏ i = 1 N − 1 p t ( X r ( i ) | X r ( i + 1 ) ) . {\displaystyle p_{t+1}(X_{1},\dots ,X_{N})=p_{t}(X_{r(N)})\prod _{i=1}^{N-1}p_{t}(X_{r(i)}|X_{r(i+1)}).} New solutions are sampled from the leftmost to the rightmost variable, the first is generated independently and the others according to conditional probabilities. Since the estimated distribution must be recomputed each generation, MIMIC uses concrete populations in the following way P ( t + 1 ) = β μ ∘ α MIMIC ∘ S ( P ( t ) ) . {\displaystyle P(t+1)=\beta _{\mu }\circ \alpha _{\text{MIMIC}}\circ S(P(t)).} === Bivariate marginal distribution algorithm (BMDA) === The BMDA factorizes the joint probability distribution in bivariate distributions. First, a randomly chosen variable is added as a node in a graph, the most dependent variable to one of those in the graph is chosen among those not yet in the graph, this procedure is repeated until no remain

    Read more →
  • International Conference on Automated Planning and Scheduling

    International Conference on Automated Planning and Scheduling

    The International Conference on Automated Planning and Scheduling (ICAPS) is a leading international academic conference in automated planning and scheduling held annually for researchers and practitioners in planning and scheduling. ICAPS is supported by the National Science Foundation, the journal Artificial Intelligence, and other supporters. == The IPC and PDDL == ICAPS conducts the International Planning Competition (IPC), a competition scheduled every few years that empirically evaluates state-of-the-art planning systems on a collection of benchmark problems. The Planning Domain Definition Language (PDDL) was developed mainly to make the 1998/2000 International Planning Competition possible, and then evolved with each competition. PDDL is an attempt to standardize Artificial Intelligence (AI) planning languages. PDDL was first developed by Drew McDermott and his colleagues in 1998, inspired by STRIPS, ADL, and other sources. == History == The ICAPS conferences began in 2003 as a merge of two bi-annual conferences, the International Conference on Artificial Intelligence Planning and Scheduling (AIPS) and the European Conference on Planning (ECP). == List of events ==

    Read more →
  • Integrated test facility

    Integrated test facility

    An integrated test facility (ITF) creates a fictitious entity in a database to process test transactions simultaneously with live input. ITF can be used to incorporate test transactions into a normal production run of a system. Its advantage is that periodic testing does not require separate test processes. However, careful planning is necessary, and test data must be isolated from production data. Moreover, ITF validates the correct operation of a transaction in an application, but it does not ensure that a system is being operated correctly. Integrated test facility is considered a useful audit tool during an IT audit because it uses the same programs to compare processing using independently calculated data. This involves setting up dummy entities on an application system and processing test or production data against the entity as a means of verifying processing accuracy.

    Read more →
  • Vibe coding

    Vibe coding

    Vibe coding is a software development practice assisted by artificial intelligence (AI) where the software developer describes a project or task in a prompt to a large language model (LLM), which generates source code automatically. Vibe coding may involve accepting AI-generated code without thorough review of the output, instead relying on results and follow-up prompts to guide changes. The term was coined in February 2025 by computer scientist Andrej Karpathy, a co-founder of OpenAI and former AI leader at Tesla. Merriam-Webster listed the term in March 2025 as a "slang & trending" expression. It was named the Collins English Dictionary Word of the Year for 2025. Advocates of vibe coding say that it allows even amateur programmers to produce software without the extensive training and skills required for software engineering. Critics point out a lack of accountability, maintainability, and the increased risk of introducing security vulnerabilities in the resulting software. == Definition == The concept refers to a coding approach that relies on LLMs, allowing programmers to generate working code by providing natural language descriptions rather than manually writing in a formal programming language. Karpathy described it as a form of coding where you "fully give in to the vibes, embrace exponentials, and forget that the code even exists". When vibe coding, the programmer guides, tests, and gives feedback about the AI-generated source code, rather than manually writing code. The concept of vibe coding elaborates on Karpathy's claim from 2023 that "the hottest new programming language is English", meaning that the capabilities of LLMs were such that humans would no longer need to learn specific programming languages to command computers. Some commentators argue that a key to the definition is a lack of knowledge about the code, and that thorough review and testing is incompatible with the definition of vibe coding. Programmer Simon Willison said: "If an LLM wrote every line of your code, but you've reviewed, tested, and understood it all, that's not vibe coding in my book—that's using an LLM as a typing assistant." == Reception and use == In February 2025, New York Times journalist Kevin Roose, who is not a professional coder, experimented with vibe coding to create several small-scale applications. He described these as "software for one" due to the ability to personalize the software. However, Roose also stated that the results are often limited and prone to errors. In one case, the AI-generated code fabricated fake reviews for an e-commerce site. In response to Roose, cognitive scientist Gary Marcus said that the algorithm that generated Roose's LunchBox Buddy app had presumably been trained on existing code for similar tasks. Marcus said that Roose's enthusiasm stemmed from reproduction, not originality. In March 2025, Y Combinator reported that 25% of startup companies in its Winter 2025 batch had codebases that were 95% AI-generated, reflecting a shift toward AI-assisted development within newer startups. The question asked was about AI-generated code in general, and not specifically about vibed code. Inspired by "vibe coding", The Economist suggested the term "vibe valuation" to describe the very large valuations of AI startups by venture capital firms that ignore accepted metrics such as annual recurring revenue. In June 2025, Andrew Ng took issue with the term, saying that it misleads people into assuming that software engineers just "go with the vibes" when using AI tools to create applications. In July 2025, The Wall Street Journal reported that vibe coding was being adopted by professional software engineers for commercial use cases. In July 2025, SaaStr founder documented his negative experiences with vibe coding: Replit's AI agent deleted a database despite explicit instructions not to make any changes. In September 2025, Fast Company reported that the "vibe coding hangover" is upon us, with senior software engineers citing "development hell" when working with AI-generated code. It was reported in January 2026 that Linus Torvalds had made use of Google Antigravity to vibe code a tool component of his AudioNoise random digital audio effects generator. Torvalds explained in the project's README file that "the Python visualizer tool has been basically written by vibe-coding". == Criticism == === Quality of code and security issues === Vibe coding has raised concerns about understanding and accountability. Developers may use AI-generated code without comprehending its functionality, leading to undetected bugs, errors, or security vulnerabilities. While this approach may be suitable for prototyping or "throwaway weekend projects" as Karpathy originally envisioned, it is considered by some experts to pose risks in professional settings, where a deep understanding of the code is crucial for debugging, maintenance, and security. Ars Technica cites Simon Willison, who stated: "Vibe coding your way to a production codebase is clearly risky. Most of the work we do as software engineers involves evolving existing systems, where the quality and understandability of the underlying code is crucial." In May 2025, Lovable, a Swedish vibe coding app, was reported to have security vulnerabilities in the code it generated, with 170 out of 1,645 Lovable-created web applications having an issue that would allow personal information to be accessed by anyone. In October 2025 Veracode released a study that showed that over the last 3 years LLMs had become dramatically better at generating functional code, but that the security of generated code had generally not improved. Moreover, larger models were not better than small ones at generating secure code. There was a small increase in security from the OpenAI reasoning models, but not in other reasoning models, and this increase was nothing like the improvement in generated functionality. In December 2025, computer security researcher Etizaz Mohsin discovered a security flaw in the Orchids vibe coding platform, which he demonstrated to a BBC News reporter in February 2026. A December 2025 analysis by CodeRabbit of 470 open-source GitHub pull requests found that code that was co-authored by generative AI contained approximately 1.7 times more "major" issues compared to human-written code. The study revealed that AI co-authored code showed elevated rates of logic errors, including incorrect dependencies, flawed control flow, misconfigurations (75% more common), and security vulnerabilities (2.74x higher). Additionally, they also reported high code readability issues, including formatting errors and naming inconsistencies. === Code maintainability and technical debt === Vibe coding has the potential of making code harder to maintain in the longer term, leading to technical debt. In early 2025, GitClear published the results of a longitudinal analysis of 211 million lines of code changes from 2020 to 2024. They found that the volume of code refactoring dropped from 25% of changed lines in 2021 to under 10% by 2024, code duplication increased approximately four times in volume, copy-pasted code exceeded moved code for the first time in two decades, and code churn (prematurely merged code getting rewritten shortly after merging) nearly doubled. === Task complexity and developer productivity === Generative AI is highly capable of handling simple tasks like basic algorithms. However, such systems struggle with more novel, complex coding problems like projects involving multiple files, poorly documented libraries, or safety-critical code. In July 2025, METR, an organization that evaluates frontier models, ran a randomized controlled trial to understand developer productivity involving generative AI programming tools available in early 2025. They found that experienced open-source developers were 19% slower when using AI coding tools, despite predicting they would be 24% faster and still believing afterward they had been 20% faster. === Challenges with debugging === LLMs generate code dynamically, and the structure of such code may be subject to variation. In addition, since the developer did not write the code, the developer may struggle to understand its syntax and concepts. === Impact on open-source software === In January 2026, a paper authored by experts from several universities titled "Vibe Coding Kills Open Source" argued that vibe coding has negative impact on the open-source software ecosystem. The authors say that increased vibe coding reduces user engagement with open-source maintainers, which has hidden costs for said maintainers. Speaking with The Register about their paper, the authors argued:"Vibe coding raises productivity by lowering the cost of using and building on existing code, but it also weakens the user engagement through which many maintainers earn returns," the authors argue. "When OSS is monetized only through direct user engagement, greater adoption of vibe coding lowers e

    Read more →
  • Split Up (expert system)

    Split Up (expert system)

    Split Up is an intelligent decision support system, which makes predictions about the distribution of marital property following divorce in Australia. It is designed to assist judges, registrars of the Family Court of Australia, mediators and lawyers. Split Up operates as a hybrid system, combining rule – based reasoning with neural network theory. Rule based reasoning operates within strict parameters, in the form: IF < condition(s) > then . Neural networks, by contrast, are considered to be better suited to generate decisions in uncertain domains, since they can be taught to weigh the factors considered by judicial decision makers from case data. Yet, they do not provide an explanation for the conclusions they reach. Split_up, with a view to overcome this flaw, uses argument structures proposed by Toulmin as the basis for representations from which explanations can be generated. == Application == In Australian family law, a judge in determining the distribution of property will: identify the assets of the marriage included in the common pool establish what percentage of the common pool each party will receive determine a final property order in line with the decisions made in 1. and 2. Split_Up implements step 1 and 2 : the common pool determination and the prediction of a percentage split. === The common pool determination === Since the determination of marital property is rule based, it is implemented using directed graphs. However, the percentage split between the parties is discretionary in that a judge has a wide discretion to look at each party's contributions to the marriage under section 79(4) of the Family Law Act 1975. Broadly, the contributions can be taken as financial or non-financial. The party who can demonstrate a larger contribution to the marital relationship will receive a larger proportion of the assets. The court may further look at each party's financial resources and future needs under section 75(2)of the Family Law Act 1975. These needs can include factors such as the inability to gain employment, the continued care of a child under 18 years of age or medical expenses. This means that different judges may and will reach different conclusions based on the same facts, since each judge assigns different relevant weights to each factor. Split_up determines the percentage split by using a combination of rule- based reasoning and neural networks. === The percentage split determination === In order to determine how judges weigh the different factors, 103 written judgements of commonplace cases were used to establish a database comprising 94 relevant factors for percentage split determination. The factors relevant for a percentage split determination are: Past contributions of a husband relative to those of a wife The husband's future needs relative to those of the wife The wealth of the marriage The factors relevant for a determination of past contributions are The relative direct and indirect contributions of both parties The length of the marriage The relative contributions of both parties to the homemaking role The hierarchy provides a structure that is used to decompose the task of predicting an outcome into 35 subtasks. Outputs of tasks further down the hierarchy are used as inputs into sub-tasks higher up the hierarchy. Each sub-task is treated as a separate and smaller data mining exercise. Twenty one solid arcs represent inferences performed with the use of rule sets. For example, the level of wealth of a marriage is determined by a rule, which uses the common pool value. By contrast, the fourteen dashed arcs establish inferences performed with the use of neural networks. These receive their name from the fact that they resemble a nervous system in the brain. They consist of many self – adjusting processing elements cooperating in a densely interconnected network. Each processing element generates a single output that is transmitted to the other processing element. The output signal of a processing element depends on the input to the processing element, i.e. each input is gated by a weighting factor that determines the amount of influence that the input will have on the output. The strength of the weighting factors is adjusted autonomously by the processing element as the data is processed. In Split_Up, the neural network is a statistical technique for learning the weights of each of the relevant attributes used in a percentage split determination of marital property. Hence the inputs to the neural network are contributions, future needs and wealth, and the output the percentage split predicted. On each arc there is a statistical weight. Using back propagation the neural network learns the necessary pattern to recognize the prediction. It is trained by repeatedly exposing it to examples of the problem and learning the significance (weights) of the input nodes. The neural network used by Split_up is said to generalise well if the output of the network is correct (or nearly correct) for examples not seen during training, which classifies it as an intelligent system. === Toulmin Argument Structure === Since the manner in which these weights are learned is primarily statistical, domain knowledge of legal rules and principles is not modelled directly. However, explanations for a legal conclusion in a domain as discretionary as the determining the distribution of property following divorce, are at least as important as the conclusion reached. Hence the creators of Split_Up used Toulmin Argument structures, to provide independent explanations of the conclusions reached. These operate on the basis that every argument makes an assertion based on some data. The assertion of the argument stands as the claim of the argument. Since knowing the data and the claim, does not necessarily mean that the claim follows from the data, a mechanism is required to justify the claim in the light of the data. The justification is known as the warrant. The backing of an argument supports the validity of the warrant. In the legal domain, this is typically a reference to a statute or a precedent. Here, a neural network (or rules), produce a conclusion from the data of an argument and the data, warrant and backing are reproduced to generate an explanation. It is noteworthy, though, that an argument's warrant is reproduced as an explanation regardless of the claim values used. This lack of claim - sensitivity must be overcome by the different users, i.e., the judge, the representatives for the wife and the representatives for the husband, each of whom is encouraged to use the system to prepare their cases, but not to rely exclusively on its outcome.

    Read more →
  • Pommerman Challenge

    Pommerman Challenge

    The Pommerman Challenge is a multi-agent game to test autonomous artificial intelligence systems. == Game structure == Two-agent team compete against each other on an 11 x 11 board. Each agent can observe only part of the board, and the agents cannot communicate. The goal is to knock down the opponents. Agents place explosives to destroy walls and collect power-ups that appear from those walls, while avoiding death. Game objects can move unpredictably or be moved by an agent. == Play == The game involves real-time decision making. Agents must choose moves in about .1 seconds. == Algorithms == The real-time requirement limits the use of compute-heavy techniques such as Monte Carlo tree search. The branching factor at each move can be as large as 1,296, because all four agents act in each step, choosing among six possibilities. The agents choose by accounting for explosions, which have lifetimes of 10 steps. Explosions derail tree search techniques, as searches with less than 10 levels ignore explosions while deeper searches consider too many choices (given the branching factor). A hybrid approach uses a limited-depth tree search followed by exploring a deterministic/pessimistic scenario. Limiting the depth keeps the search tree small. The deterministic approach can predict far in the future, by omitting branching. "Good" actions are often those that perform well under pessimistic scenarios, particularly if safety is important. Identifying the worst sequence of positions for an object can suggest where to move it. After generating pessimistic scenarios, the agent quantifies the survivability of each move, notionally the number of positions in which the agent can then remain safely (without encountering other agents). == Competitions == 3 competitions were organized with slightly changing rules during 2018–2019. === Online - FFA === This round was a warm-up online event, where each competitor controlled only one agent. Results: 1st: Agent47Agent by Yichen Gong 2nd: aiKiller by Márton Görög === NeurIPS 2018 - Team === The first Pommerman competition with in-person finals. Results: 1st: hakozakijunctions by Toshihiro Takahashi 2nd: eisenach by Márton Görög 3rd: dypm by Takayuki Osogami The 3 best performing solutions used online tree search. === NeurIPS 2019 - Team Radio === The second competition with in-person finals improved communication between teammate agents. Results: 1st: Márton Görög 2nd: Paul Jasek 3rd: Yifan Zhang

    Read more →
  • Secure environment

    Secure environment

    In computing, a secure environment is any system which implements the controlled storage and use of information. In the event of computing data loss, a secure environment is used to protect personal or confidential data. It may also be known as a trusted execution environment (TEE). Often, secure environments employ cryptography as a means to protect information. This is typically used for processing confidential or restricted information. Some secure environments employ cryptographic hashing, simply to verify that the information has not been altered since it was last modified.

    Read more →
  • List of artificial intelligence artists

    List of artificial intelligence artists

    Many notable artificial intelligence artists have created a wide variety of artificial intelligence art from the 1960s to today. These include: == 20th century == Harold Cohen, active from 1960s to 2010s. Cohen's work is primarily with AARON, a series of computer programs that autonomously create original images. Eric Millikin, active from 1980s to present. Millikin's work includes AI-generated virtual reality, video art, poetry, music, and performance art, on topics such as animal rights, climate change, anti-racism, witchcraft, and the occult. Karl Sims, active from 1980s to present. Sims is best known for using particle systems and artificial life in computer animation. == 21st century == Refik Anadol, active from 2010s to present. Anadol's work includes video installations based on generative algorithms with artificial intelligence. Sougwen Chung, active from 2010s to present. Chung's work includes performances with a robotic arm that uses AI to attempt to draw in a manner similar to Chung. Stephanie Dinkins, active from 2010s to present. Dinkins' work includes recordings of conversations with an artificially intelligent robot that resembles a black woman, discussing topics such as race and the nature of being. Jake Elwes, active from 2010s to present. Their practice is the exploration of artificial intelligence, queer theory and technical biases. Libby Heaney, active from 2010s to present. Heaney's practice includes work with chatbots. Mario Klingemann, active from 2010s to present. Klingemann's works examine creativity, culture, and perception through machine learning and artificial intelligence. Mauro Martino, active from 2010s to present. Martino's work includes design, data visualization and infographics. Trevor Paglen, active from 2000s to present. Paglen's practice includes work in photography and geography, on topics like mass surveillance and data collection. Anna Ridler, active from 2010s to present. Ridler works with collections of information, including self-generated data sets, often working with floral photography.

    Read more →
  • Mark I Perceptron

    Mark I Perceptron

    The Mark I Perceptron was a pioneering supervised image classification learning system developed by Frank Rosenblatt in 1958. It was the first implementation of an artificial intelligence (AI) machine. It differs from the Perceptron which is a software architecture proposed in 1943 by Warren McCulloch and Walter Pitts, which was also employed in Mark I, and enhancements of which have continued to be an integral part of cutting edge AI technologies like the Transformer. == Architecture == The Mark I Perceptron was organized into three layers: A set of sensory units which receive optical input A set of association units, each of which fire based on input from multiple sensory units A set of response units, which fire based on input from multiple association units The connection between sensory units and association units were random. The working of association units was very similar to the response units. Different versions of the Mark I used different numbers of units in each of the layers. == Capabilities == In his 1957 proposal for funding for development of the "Cornell Photoperceptron", Rosenblatt claimed:"Devices of this sort are expected ultimately to be capable of concept formation, language translation, collation of military intelligence, and the solution of problems through inductive logic."With the first version of the Mark I Perceptron as early as 1958, Rosenblatt demonstrated a simple binary classification experiment, namely distinguishing between sheets of paper marked on the right versus those marked on the left side. One of the later experiments distinguished a square from a circle printed on paper. The shapes were perfect and their sizes fixed; the only variation was in their position and orientation. The Mark I Perceptron achieved 99.8% accuracy on a test dataset with 500 neurons in a single layer. The size of the training dataset was 10,000 example images. It took 3 seconds for the training pipeline to go through a single image. Higher accuracy was observed with thick outline figures compared to solid figures, likely because outline figures reduced overfitting. Another experiment distinguished between a square and a diamond for which 100% accuracy was achieved with only 60 training images, with a Perceptron having 1,000 neurons in a single layer. The time taken to process each training input for this larger perceptron was 15 seconds. The only variation was in position of the image, since rotation would have been ambiguous. In that same experiment, it could distinguish between the letters X and E with 100% accuracy when trained with only 20 images (10 images of each letter). Variations in the images included both position and rotation by up to 30 degrees. When variation in rotation was increased to any angle (both in training and test datasets), the accuracy reduced to 90% with 60 training images (30 images of each letter). For distinguishing between the letters E and F, a more challenging problem due to their similarity, the same 1,000 neuron perceptron achieved an accuracy of more than 80% with 60 training images. Variation was only in the position of the image, with no rotation.

    Read more →
  • Refik Anadol

    Refik Anadol

    Refik Anadol (born November 7, 1985) is a Turkish American media artist and the co-founder of Refik Anadol Studio and Dataland. Recognized as a pioneer in the aesthetics of data visualization and AI arts, his work merges art, technology, science, and architecture. Through media embedded into existing architecture, live audio-visual performances, immersive rooms, exhibitions, AI data paintings and sculptures, and digital collections, Anadol explores collective memories, humanity's relationship to nature, the perception of space and time, and human-machine collaborations. His work has been exhibited in more than seventy cities on six continents. == Early life and education == Anadol was born and raised in Istanbul and grew up in a family of teachers. He taught himself basic programming on a Commodore 64 when he was eight. His connection to machines began with coding and video games. Anadol saw Blade Runner for the first time when he was eight; his mother said the way he perceived his surroundings shifted the day after he saw the film. He was fascinated with its futuristic depiction of downtown Los Angeles, and transfixed by as a scene during which a replicant discovers that her memories are an implanted component of her machine mind, In a 2024 interview with the Financial Times, he said: "Since that moment, one of my inspirations has been that question: 'What can a machine do with someone else's memories?" Anadol attended Istanbul Bilgi University, where he received a BA in photography and video in 2009 and an MFA in visual communication in 2011. In 2014 he earned an MFA in design media arts at UCLA. He was mentored by Casey Reas, Jennifer Steinkamp, and Christian Moeller. == Career and selected works == === 2008–2012: Data painting, Quadrature and Quadrangle, Istanbul Biennial === As an undergraduate, Anadol read a paper by Lev Manovich on augmented space. Manovich's assertion that collaborations between architects and artists could make the "invisible flow of data visible" triggered Anadol's imagination, and in 2008, he altered built space for the first time. Bringing a projector outside, he projected large-scale images onto a concrete to create the illusion of movement. Coining the term "data painting," the piece inspired Anadol to use light as material and data as pigment. In 2010 he created Quadrature with Alican Aktürk, a fellow graduate student, at the SantralIstanbul Art and Culture Center's main gallery building. A live audio-visual performance that examined the relationship between architecture and media, Quadrature used video projection techniques to manipulate footage of quadrilaterals. He followed Quadrature with Quadrangle at SANAA School of Design in Essen, Germany, using the entire 360 degrees of the building as a canvas. In 2011, he was invited to create a media installation at the Istanbul Biennial on the heavily trafficked İstiklal Avenue. He created a site-specific large-scale interpretation of sounds he recorded during different times of day, and used nine projectors to project reinterpreted images. The work was titled Augmented Structures v1.0. Anadol's first solo exhibition, Sceptical Interventions, was held at the Piveneli Gallery in Istanbul in early 2012. Later that year he moved to Los Angeles to attend UCLA's Design Media Arts program. The first place he went after his arrival was downtown Los Angeles. [6] === 2013–2016: Visions of America: Amériques, Infinity Room, Google AMI === In 2013, at Microsoft Research's annual Design Expo, Anadol presented his idea to use the external walls of Walt Disney Concert Hall as a canvas. His presentation brought him to the attention of Gehry Technologies, and with the support of Gehry and his team, Anadol was offered the use of the original 3D model of the concert hall. For his 2014 thesis project, with assistance from architects and UCLA researchers, he created a site-specific architectural video installation inside the concert hall that accompanied a Los Angeles Philharmonic performance of Edgard Varèse's Amérique. Titled Visions of America: Amériques, Anadol used algorithmic sound analysis to listen and respond to the music in real-time. He tracked conductor Esa-Pekka Salonen's heartbeat with a sensor and used a 3-D camera system to integrate Salonen's movements. He created Infinity Room at the Zorlu PSM for the 2015 Istanbul Biennial. Rather than creating an illusion only with mirrors, Anadol used pixel and 3D projection mapping to transform every surface of the room into an abstract infinite moving space. A temporary immersive environment, Infinity Room was also exhibited at events including South by Southwest in Austin, Texas, the New Zealand Festival in Wellington, New Zealand, and Jeffrey Deitch in Los Angeles. In 2016, Anadol was awarded the first Google Artists and Machine Intelligence Artist Residency; it was just after a team at Google opened up the algorithm for DeepDream, a computer vision program that prompted Anadol's realization that if a machine could learn, it could remember, dream, and hallucinate. === 2017–2018: Winds of Boston, Archive Dreaming, Melting Memories, WDCH Dreams === In 2017, he created the data painting Winds of Boston, a 6' x 13' foot video installation in the lobby of a Boston office building, using software he created to read, analyze and visualize wind speed, direction, and gust patterns along with time and temperature at 20-second intervals recorded over a one-year period at Logan International Airport. Later in the year, he used AI to generate infinite new outputs based on a massive dataset for Archive Dreaming, an immersive installation at Salt Research, a contemporary gallery and library in Istanbul. Inspired by his idea of consciousness and its context within AI, as well as Jorge Luis Borges' The Library of Babel, Anadol used AI and machine learning to look at and discover interactions and correlations between 1.7 million items culled from 40,000 publications covering Turkish contemporary and modern art, architecture, and economics from 1997 to 2010. Archive Dreaming, which could be controlled by users with a joystick, dreamed of unexpected correlations among documents when idle. In 2018, after his uncle was diagnosed with Alzheimer's, Anadol created Melting Memories. Working with scientists from the neuroscape laboratory at the University of California, San Francisco, he used academic data from the neuroscience archives and EEG scans of an anonymous Alzheimer's disease dataset to create AI-generated visuals related to memory, health, degeneration, and decay.Melting Memories was projected on the walls of Pilevneli Gallery; visitors to the exhibition could watch as millions of pixels reconstructed people's memories. Anadol won the Lumen Prize Gold Award for Melting Memories. Anadol was commissioned by the Los Angeles Philharmonic to create an installation to celebrate the orchestra's centennial anniversary in 2018. He worked with Google's Kenric MacDowell to create WDCH Dreams, using algorithmic visualizations of data to mimic the process of human dreaming. Projected across the exterior walls of Walt Disney Concert Hall using 42 large-scale projectors with 50K visual resolution, 8-channel sound, and 1.2M luminance, Anadol painted with data points culled from the orchestra's archives, including 587,763 images, 1,880 videos, 1,483 metadata files, and 17,773 audio files. Because Gehry gave him access to the 3D architectural files of Walt Disney Concert Hall, Anadol knew the exact contours of the building. WDCH Dreams debuted in September 2018. A 12-minute performance in three parts staged every 30 minutes over ten nights, "Centennial Memories,” the first piece, used 44.5 terabytes of historical data from the Phil's archives. It was followed by "Consciousness", which processed every note the orchestra has ever recorded, using billions of data points to generate connections; and "Dream," which merged "Centennial Memories" and "Consciousness" to create hallucinations that were described in the New York Times as "a sort of combinatorial Fantasia. === 2019–2021: Machine Hallucinations: NYC, Machine Hallucinations: Nature Dreams, Machine Memories: Space, Quantum Memories === In 2019, Refik Anadol presented Latent History at Fotografiska Stockholm. The site specific installation transformed photographic archives of Stockholm into a large scale, machine generated visual projection displayed in the museum’s main exhibition hall. Drawing on thousands of archival images spanning approximately 150 years, the work used artificial intelligence to reinterpret the city’s historical imagery as a continuously evolving visual narrative.. Anadol began thinking about the work that would become the Machine Hallucinations series while in residence at Google. In 2019, he completed the first work in the series, Machine Hallucinations: NYC, which used 300 million photos of New York City and 113 million additional data points, including subway sounds, ra

    Read more →
  • Maximum inner-product search

    Maximum inner-product search

    Maximum inner-product search (MIPS) is a search problem, with a corresponding class of search algorithms which attempt to maximise the inner product between a query and the data items to be retrieved. MIPS algorithms are used in a wide variety of big data applications, including recommendation algorithms and machine learning. Formally, for a database of vectors x i {\displaystyle x_{i}} defined over a set of labels S {\displaystyle S} in an inner product space with an inner product ⟨ ⋅ , ⋅ ⟩ {\displaystyle \langle \cdot ,\cdot \rangle } defined on it, MIPS search can be defined as the problem of determining a r g m a x i ∈ S ⟨ x i , q ⟩ {\displaystyle {\underset {i\in S}{\operatorname {arg\,max} }}\ \langle x_{i},q\rangle } for a given query q {\displaystyle q} . Although there is an obvious linear-time implementation, it is generally too slow to be used on practical problems. However, efficient algorithms exist to speed up MIPS search. Under the assumption of all vectors in the set having constant norm, MIPS can be viewed as equivalent to a nearest neighbor search (NNS) problem in which maximizing the inner product is equivalent to minimizing the corresponding distance metric in the NNS problem. Like other forms of NNS, MIPS algorithms may be approximate or exact. MIPS search is used as part of DeepMind's RETRO algorithm.

    Read more →
  • AI Seoul Summit 2024

    AI Seoul Summit 2024

    The AI Seoul Summit 2024 was an event in May 2024 co-hosted by the South Korean and British governments. The Seoul Declaration was adopted to address artificial intelligence technology and related challenges and opportunities. == Background == The AI Seoul Summit is the second such meeting following the AI Safety Summit held in the United Kingdom in November 2023. In the Bletchley Declaration, the participating countries agreed to prioritize identifying AI safety risks of shared concern, a shared concern, but at the Seoul Summit, the leaders also recognized the importance of AI. == Notable attendees == The summit was attended by the leaders of Group of Seven countries, including the United States, Canada, France, and Germany, South Korea, Singapore and Australia, representatives of the United Nations, the Organisation for Economic Co-operation and Development, and the European Union. Also in attendance were representatives of global companies such as Tesla CEO Elon Musk, Samsung Electronics Chairman Lee Jae-yong, ChatGPT maker OpenAI, Google, Microsoft, Meta, and South Korea's top portal operator Naver. == Topics == === South Korean AI safety center === "South Korea will push forward with the establishment of an AI safety research center in Korea and join a network to boost the global safety of AI." Minister of Science, Lee Jong-ho said that South Korea was planning to open an AI Safety Institute in 2024. He also expressed his intention to strengthen cooperation for the development of international standards. === Seoul Declaration for Safe, Innovative and Inclusive AI === The Seoul Declaration was adopted at the summit by leaders representing the EU, the US, the UK, Australia, Canada, Germany, France, Italy, Japan, South Korea, and Singapore. The declaration is a commitment to foster international cooperation to help develop AI governance frameworks that are interoperable between countries, partly by integrating the Hiroshima Process International Code of Conduct for Organizations Developing Advanced AI Systems. It advocates for the development of human-centric AI in collaboration with the private sector, academia, and civil society. === Seoul Ministerial Statement for advancing AI safety === At the ministerial meeting of the summit, the Seoul Ministerial Statement, a joint statement calling for the improvement of the safety, innovation, and inclusivity of AI technologies, was adopted by ministers from Australia, Canada, Chile, France, Germany, India, Indonesia, Israel, Italy, Japan, Kenya, Mexico, the Netherlands, Nigeria, New Zealand, the Philippines, South Korea, Rwanda, Saudi Arabia, Singapore, Spain, Switzerland, Turkey, Ukraine, the United Arab Emirates, the UK, and the US, as well as an EU representative. It aims to develop low-power chips as the AI industry rapidly expands and massive consumption is expected. == Global AI Summit series ==

    Read more →
  • Gene expression programming

    Gene expression programming

    Gene expression programming (GEP) in computer programming is an evolutionary algorithm that creates computer programs or models. These computer programs are complex tree structures that learn and adapt by changing their sizes, shapes, and composition, much like a living organism. And like living organisms, the computer programs of GEP are also encoded in simple linear chromosomes of fixed length. Thus, GEP is a genotype–phenotype system, benefiting from a simple genome to keep and transmit the genetic information and a complex phenotype to explore the environment and adapt to it. == Background == Evolutionary algorithms use populations of individuals, select individuals according to fitness, and introduce genetic variation using one or more genetic operators. Their use in artificial computational systems dates back to the 1950s where they were used to solve optimization problems (e.g. Box 1957 and Friedman 1959). But it was with the introduction of evolution strategies by Rechenberg in 1965 that evolutionary algorithms gained popularity. A good overview text on evolutionary algorithms is the book "An Introduction to Genetic Algorithms" by Mitchell (1996). Gene expression programming belongs to the family of evolutionary algorithms and is closely related to genetic algorithms and genetic programming. From genetic algorithms it inherited the linear chromosomes of fixed length; and from genetic programming it inherited the expressive parse trees of varied sizes and shapes. In gene expression programming the linear chromosomes work as the genotype and the parse trees as the phenotype, creating a genotype/phenotype system. This genotype/phenotype system is multigenic, thus encoding multiple parse trees in each chromosome. This means that the computer programs created by GEP are composed of multiple parse trees. Because these parse trees are the result of gene expression, in GEP they are called expression trees. Masood Nekoei, et al. utilized this expression programming style in ABC optimization to conduct ABCEP as a method that outperformed other evolutionary algorithms.ABCEP == Encoding: the genotype == The genome of gene expression programming consists of a linear, symbolic string or chromosome of fixed length composed of one or more genes of equal size. These genes, despite their fixed length, code for expression trees of different sizes and shapes. An example of a chromosome with two genes, each of size 9, is the string (position zero indicates the start of each gene): 012345678012345678 L+a-baccdcLabacd where “L” represents the natural logarithm function and “a”, “b”, “c”, and “d” represent the variables and constants used in a problem. == Expression trees: the phenotype == As shown above, the genes of gene expression programming have all the same size. However, these fixed length strings code for expression trees of different sizes. This means that the size of the coding regions varies from gene to gene, allowing for adaptation and evolution to occur smoothly. For example, the mathematical expression: ( a − b ) ( c + d ) {\displaystyle {\sqrt {(a-b)(c+d)}}\,} can also be represented as an expression tree: where "Q” represents the square root function. This kind of expression tree consists of the phenotypic expression of GEP genes, whereas the genes are linear strings encoding these complex structures. For this particular example, the linear string corresponds to: 01234567 Q-+abcd which is the straightforward reading of the expression tree from top to bottom and from left to right. These linear strings are called k-expressions (from Karva notation). Going from k-expressions to expression trees is also very simple. For example, the following k-expression: 01234567890 Qb+baQba is composed of two different terminals (the variables “a” and “b”), two different functions of two arguments (“” and “+”), and a function of one argument (“Q”). Its expression gives: == K-expressions and genes == The k-expressions of gene expression programming correspond to the region of genes that gets expressed. This means that there might be sequences in the genes that are not expressed, which is indeed true for most genes. The reason for these noncoding regions is to provide a buffer of terminals so that all k-expressions encoded in GEP genes correspond always to valid programs or expressions. The genes of gene expression programming are therefore composed of two different domains – a head and a tail – each with different properties and functions. The head is used mainly to encode the functions and variables chosen to solve the problem at hand, whereas the tail, while also used to encode the variables, provides essentially a reservoir of terminals to ensure that all programs are error-free. For GEP genes the length of the tail is given by the formula: t = h ( n max − 1 ) + 1 {\displaystyle t=h(n_{\max }-1)+1} where h is the head's length and nmax is maximum arity. For example, for a gene created using the set of functions F = {Q, +, −, ∗, /} and the set of terminals T = {a, b}, nmax = 2. And if we choose a head length of 15, then t = 15 (2–1) + 1 = 16, which gives a gene length g of 15 + 16 = 31. The randomly generated string below is an example of one such gene: 0123456789012345678901234567890 b+a-aQab+//+b+babbabbbababbaaa It encodes the expression tree: which, in this case, only uses 8 of the 31 elements that constitute the gene. It's not hard to see that, despite their fixed length, each gene has the potential to code for expression trees of different sizes and shapes, with the simplest composed of only one node (when the first element of a gene is a terminal) and the largest composed of as many nodes as there are elements in the gene (when all the elements in the head are functions with maximum arity). It's also not hard to see that it is trivial to implement all kinds of genetic modification (mutation, inversion, insertion, recombination, and so on) with the guarantee that all resulting offspring encode correct, error-free programs. == Multigenic chromosomes == The chromosomes of gene expression programming are usually composed of more than one gene of equal length. Each gene codes for a sub-expression tree (sub-ET) or sub-program. Then the sub-ETs can interact with one another in different ways, forming a more complex program. The figure shows an example of a program composed of three sub-ETs. In the final program the sub-ETs could be linked by addition or some other function, as there are no restrictions to the kind of linking function one might choose. Some examples of more complex linkers include taking the average, the median, the midrange, thresholding their sum to make a binomial classification, applying the sigmoid function to compute a probability, and so on. These linking functions are usually chosen a priori for each problem, but they can also be evolved elegantly and efficiently by the cellular system of gene expression programming. == Cells and code reuse == In gene expression programming, homeotic genes control the interactions of the different sub-ETs or modules of the main program. The expression of such genes results in different main programs or cells, that is, they determine which genes are expressed in each cell and how the sub-ETs of each cell interact with one another. In other words, homeotic genes determine which sub-ETs are called upon and how often in which main program or cell and what kind of connections they establish with one another. === Homeotic genes and the cellular system === Homeotic genes have exactly the same kind of structural organization as normal genes and they are built using an identical process. They also contain a head domain and a tail domain, with the difference that the heads contain now linking functions and a special kind of terminals – genic terminals – that represent the normal genes. The expression of the normal genes results as usual in different sub-ETs, which in the cellular system are called ADFs (automatically defined functions). As for the tails, they contain only genic terminals, that is, derived features generated on the fly by the algorithm. For example, the chromosome in the figure has three normal genes and one homeotic gene and encodes a main program that invokes three different functions a total of four times, linking them in a particular way. From this example it is clear that the cellular system not only allows the unconstrained evolution of linking functions but also code reuse. And it shouldn't be hard to implement recursion in this system. === Multiple main programs and multicellular systems === Multicellular systems are composed of more than one homeotic gene. Each homeotic gene in this system puts together a different combination of sub-expression trees or ADFs, creating multiple cells or main programs. For example, the program shown in the figure was created using a cellular system with two cells and three normal genes. The applications of these multicellular systems are mu

    Read more →