AI Chat Character Free

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

  • Algorithmic inference

    Algorithmic inference

    Algorithmic inference gathers new developments in the statistical inference methods made feasible by the powerful computing devices widely available to any data analyst. Cornerstones in this field are computational learning theory, granular computing, bioinformatics, and, long ago, structural probability (Fraser 1966). The main focus is on the algorithms which compute statistics rooting the study of a random phenomenon, along with the amount of data they must feed on to produce reliable results. This shifts the interest of mathematicians from the study of the distribution laws to the functional properties of the statistics, and the interest of computer scientists from the algorithms for processing data to the information they process. == The Fisher parametric inference problem == Concerning the identification of the parameters of a distribution law, the mature reader may recall lengthy disputes in the mid 20th century about the interpretation of their variability in terms of fiducial distribution (Fisher 1956), structural probabilities (Fraser 1966), priors/posteriors (Ramsey 1925), and so on. From an epistemology viewpoint, this entailed a companion dispute as to the nature of probability: is it a physical feature of phenomena to be described through random variables or a way of synthesizing data about a phenomenon? Opting for the latter, Fisher defines a fiducial distribution law of parameters of a given random variable that he deduces from a sample of its specifications. With this law he computes, for instance "the probability that μ (mean of a Gaussian variable – omeur note) is less than any assigned value, or the probability that it lies between any assigned values, or, in short, its probability distribution, in the light of the sample observed". == The classic solution == Fisher fought hard to defend the difference and superiority of his notion of parameter distribution in comparison to analogous notions, such as Bayes' posterior distribution, Fraser's constructive probability and Neyman's confidence intervals. For half a century, Neyman's confidence intervals won out for all practical purposes, crediting the phenomenological nature of probability. With this perspective, when you deal with a Gaussian variable, its mean μ is fixed by the physical features of the phenomenon you are observing, where the observations are random operators, hence the observed values are specifications of a random sample. Because of their randomness, you may compute from the sample specific intervals containing the fixed μ with a given probability that you denote confidence. === Example === Let X be a Gaussian variable with parameters μ {\displaystyle \mu } and σ 2 {\displaystyle \sigma ^{2}} and { X 1 , … , X m } {\displaystyle \{X_{1},\ldots ,X_{m}\}} a sample drawn from it. Working with statistics S μ = ∑ i = 1 m X i {\displaystyle S_{\mu }=\sum _{i=1}^{m}X_{i}} and S σ 2 = ∑ i = 1 m ( X i − X ¯ ) 2 , where X ¯ = S μ m {\displaystyle S_{\sigma ^{2}}=\sum _{i=1}^{m}(X_{i}-{\overline {X}})^{2},{\text{ where }}{\overline {X}}={\frac {S_{\mu }}{m}}} is the sample mean, we recognize that T = S μ − m μ S σ 2 m − 1 m = X ¯ − μ S σ 2 / ( m ( m − 1 ) ) {\displaystyle T={\frac {S_{\mu }-m\mu }{\sqrt {S_{\sigma ^{2}}}}}{\sqrt {\frac {m-1}{m}}}={\frac {{\overline {X}}-\mu }{\sqrt {S_{\sigma ^{2}}/(m(m-1))}}}} follows a Student's t distribution (Wilks 1962) with parameter (degrees of freedom) m − 1, so that f T ( t ) = Γ ( m / 2 ) Γ ( ( m − 1 ) / 2 ) 1 π ( m − 1 ) ( 1 + t 2 m − 1 ) m / 2 . {\displaystyle f_{T}(t)={\frac {\Gamma (m/2)}{\Gamma ((m-1)/2)}}{\frac {1}{\sqrt {\pi (m-1)}}}\left(1+{\frac {t^{2}}{m-1}}\right)^{m/2}.} Gauging T between two quantiles and inverting its expression as a function of μ {\displaystyle \mu } you obtain confidence intervals for μ {\displaystyle \mu } . With the sample specification: x = { 7.14 , 6.3 , 3.9 , 6.46 , 0.2 , 2.94 , 4.14 , 4.69 , 6.02 , 1.58 } {\displaystyle \mathbf {x} =\{7.14,6.3,3.9,6.46,0.2,2.94,4.14,4.69,6.02,1.58\}} having size m = 10, you compute the statistics s μ = 43.37 {\displaystyle s_{\mu }=43.37} and s σ 2 = 46.07 {\displaystyle s_{\sigma ^{2}}=46.07} , and obtain a 0.90 confidence interval for μ {\displaystyle \mu } with extremes (3.03, 5.65). == Inferring functions with the help of a computer == From a modeling perspective the entire dispute looks like a chicken-egg dilemma: either fixed data by first and probability distribution of their properties as a consequence, or fixed properties by first and probability distribution of the observed data as a corollary. The classic solution has one benefit and one drawback. The former was appreciated particularly back when people still did computations with sheet and pencil. Per se, the task of computing a Neyman confidence interval for the fixed parameter θ is hard: you do not know θ, but you look for disposing around it an interval with a possibly very low probability of failing. The analytical solution is allowed for a very limited number of theoretical cases. Vice versa a large variety of instances may be quickly solved in an approximate way via the central limit theorem in terms of confidence interval around a Gaussian distribution – that's the benefit. The drawback is that the central limit theorem is applicable when the sample size is sufficiently large. Therefore, it is less and less applicable with the sample involved in modern inference instances. The fault is not in the sample size on its own part. Rather, this size is not sufficiently large because of the complexity of the inference problem. With the availability of large computing facilities, scientists refocused from isolated parameters inference to complex functions inference, i.e. re sets of highly nested parameters identifying functions. In these cases we speak about learning of functions (in terms for instance of regression, neuro-fuzzy system or computational learning) on the basis of highly informative samples. A first effect of having a complex structure linking data is the reduction of the number of sample degrees of freedom, i.e. the burning of a part of sample points, so that the effective sample size to be considered in the central limit theorem is too small. Focusing on the sample size ensuring a limited learning error with a given confidence level, the consequence is that the lower bound on this size grows with complexity indices such as VC dimension or detail of a class to which the function we want to learn belongs. === Example === A sample of 1,000 independent bits is enough to ensure an absolute error of at most 0.081 on the estimation of the parameter p of the underlying Bernoulli variable with a confidence of at least 0.99. The same size cannot guarantee a threshold less than 0.088 with the same confidence 0.99 when the error is identified with the probability that a 20-year-old man living in New York does not fit the ranges of height, weight and waistline observed on 1,000 Big Apple inhabitants. The accuracy shortage occurs because both the VC dimension and the detail of the class of parallelepipeds, among which the one observed from the 1,000 inhabitants' ranges falls, are equal to 6. == The general inversion problem solving the Fisher question == With insufficiently large samples, the approach: fixed sample – random properties suggests inference procedures in three steps: === Definition === For a random variable and a sample drawn from it a compatible distribution is a distribution having the same sampling mechanism M X = ( Z , g θ ) {\displaystyle {\mathcal {M}}_{X}=(Z,g_{\boldsymbol {\theta }})} of X with a value θ {\displaystyle {\boldsymbol {\theta }}} of the random parameter Θ {\displaystyle \mathbf {\Theta } } derived from a master equation rooted on a well-behaved statistic s. === Example === You may find the distribution law of the Pareto parameters A and K as an implementation example of the population bootstrap method as in the figure on the left. Implementing the twisting argument method, you get the distribution law F M ( μ ) {\displaystyle F_{M}(\mu )} of the mean M of a Gaussian variable X on the basis of the statistic s M = ∑ i = 1 m x i {\textstyle s_{M}=\sum _{i=1}^{m}x_{i}} when Σ 2 {\displaystyle \Sigma ^{2}} is known to be equal to σ 2 {\displaystyle \sigma ^{2}} (Apolloni, Malchiodi & Gaito 2006). Its expression is: F M ( μ ) = Φ ( m μ − s M σ m ) , {\displaystyle F_{M}(\mu )=\Phi {\left({\frac {m\mu -s_{M}}{\sigma {\sqrt {m}}}}\right)},} shown in the figure on the right, where Φ {\displaystyle \Phi } is the cumulative distribution function of a standard normal distribution. Computing a confidence interval for M given its distribution function is straightforward: we need only find two quantiles (for instance δ / 2 {\displaystyle \delta /2} and 1 − δ / 2 {\displaystyle 1-\delta /2} quantiles in case we are interested in a confidence interval of level δ symmetric in the tail's probabilities) as indicated on the left in the diagram showing the behavior of

    Read more →
  • Fuzzy number

    Fuzzy number

    A fuzzy number is a generalization of a regular real number in the sense that it does not refer to one single value but rather to a connected set of possible values, where each possible value has its own weight between 0 and 1. This weight is called the membership function. A fuzzy number is thus a special case of a convex, normalized fuzzy set of the real line. Just like fuzzy logic is an extension of Boolean logic (which uses absolute truth and falsehood only, and nothing in between), fuzzy numbers are an extension of real numbers. Calculations with fuzzy numbers allow the incorporation of uncertainty on parameters, properties, geometry, initial conditions, etc. The arithmetic calculations on fuzzy numbers are implemented using fuzzy arithmetic operations, which can be done by two different approaches: (1) interval arithmetic approach; and (2) the extension principle approach. A fuzzy number is equal to a fuzzy interval. The degree of fuzziness is determined by the a-cut which is also called the fuzzy spread.

    Read more →
  • The Future of Truth (Rosenbaum book)

    The Future of Truth (Rosenbaum book)

    The Future of Truth: How AI Reshapes Reality is a 2026 book by American filmmaker and author Steven Rosenbaum about how artificial intelligence affects the concept of truth. It was published by Matt Holt Books on May 12, 2026, to positive media attention; on May 19, in response to an inquiry from The New York Times, Rosenbaum acknowledged that the book itself contains multiple misattributed or false quotes that were hallucinated by AIs. == Synopsis == == Development == Rosenbaum has said that he developed the book using AI chatbots as research tools, indicating in his notes what information came from AI and sending those claims to a fact-checker affiliated with the publisher. He has said that he did not use AI tools to write the book itself. He has described AI tools as "a delightful writing companion ... strangely creative and crafty and unusual in all these ways", while acknowledging that sometimes "then it betrays you in ways that are just really quite horrible". Journalist and Nobel laureate Maria Ressa wrote the book's foreword. Taylor Lorenz, Michael Wolff, and Nicholas Thompson wrote blurbs promoting it. == Release and reception == The Future of Truth was published by Matt Holt Books, an imprint of BenBella Books, and distributed by Simon & Schuster. The book's release on May 12, 2026, was described by Futurism as "buzzy" and by The New York Times as "to great fanfare". On May 14, an excerpt was published in Wired under the title "Gen Z Is Pioneering a New Understanding of Truth". On May 17, the Times contacted Rosenbaum regarding a number of quotes that appeared to be falsified or misattributed; the following evening he confirmed that they were the result of AI hallucinations:As I disclosed in the book's acknowledgments, I used AI tools ChatGPT and Claude during the research, writing and editing process. That does not excuse these errors, of which I take full responsibility. I am now working with the editors to thoroughly review and quickly correct any affected passages; any future editions will be corrected. The Times documented several of the errors, including a quote from Kara Swisher that Swisher described as making it "sound like I have a stick up my butt" and a quote from Lisa Feldman Barrett that Barrett described as misrepresenting her views on the nature of emotions, social signals, and truth. The book also misattributed a quote by Meredith Broussard from an interview with Marketplace Tech as having been from her book Artificial Unintelligence and hallucinated several words in a quote from Lee McIntyre, although according to McIntyre it did not misrepresent his views. Wired's editors, in an addendum to the excerpt they published, said that all quotes included in it had been verified as part of their fact-checking process. Rosenbaum told the Times that the series of errors "serves as a warning about the risks of AI-assisted research and verification, that is why I wrote the book. These AI errors do not, in fact, diminish the larger questions that the book raises about truth, trust and AI and its impact on society, democracy and editorial." Maggie Harrison Dupré in Futurism expressed skepticism, writing "The risk of AI hallucinations ... is well-known. If you're going to literally write the book on post-AI truth, you should probably put some more elbow grease into fact-checking your AI-assisted research." Kyle Orland in Ars Technica, responding to Rosenbaum's statement that his error "demonstrates the problem more vividly than any abstract argument could", was similarly skeptical, writing that "if we accept this take, every avoidably obvious mess in the world might be a disguised good because it really helps illuminate the huge mistake. And that can't be right; sometimes 'negligence' is just that." Subsequent comments by Rosenbaum placed more blame on the chatbots, which he told The Atlantic "fucked up the book". Rosenbaum told Ars Technica that fact-checking occurred "incredibly effectively, but not a hundred percent"; Orland observed that "it's worth noting that most writers manage to include zero made-up quotes when they write a book". Rosenbaum said that he had "learned a lesson" and would be "much more suspicious" of AI in the future, but would continue to use AI in his research. Orland responded to Rosenbaum's characterization of AI as "magical" by comparing it to the One Ring from The Lord of the Rings, in that it "convinces many of those who use it that they can control its power properly" when many cannot. Orland highlighted the limits of traditional fact-checking regarding AI, given that fact-checkers are used to assuming that direct quotes are copied word-for-word from the source. Rosenbaum told Orland that the future of fact-checking for AI-researched works "probably includes mandatory source tracing for quotations, better provenance tracking, clearer standards around AI-assisted research, and potentially (more irony here) AI tools that audit citations against primary materials". Patrick Redford in Defector criticized Rosenbaum, alongside other artists tricked by AI, for failing to recognize AI as "the enemy". Will Oremus in The Atlantic described Redford's approach of stigmatizing AI writing as "reasonable", noting the presence of low-quality, seemingly AI-generated verbiage in The Future of Truth—a claim denied by Rosenbaum—before saying that the greater issue is finding the line at which AI assistance in writing becomes a problem. Oremus concluded, "The scandal can't just be that [Rosenbaum] used AI while working on his book, because he acknowledged that up front. He got in trouble because he had used AI badly, failing to check its work on a task at which it is famously unreliable."

    Read more →
  • Orion's Arm

    Orion's Arm

    The Orion's Arm Universe Project (OA) is a multi-authored online hard science fiction world-building project, first established in 2000 by M. Alan Kazlev, Donna Malcolm Hirsekorn, Bernd Helfert and Anders Sandberg and further co-authored by many people since. Anyone can contribute articles, stories, artwork, or music to the website. The first published Orion's Arm book, a collection of five novellas set within the OA universe, called Against a Diamond Sky, was released in September 2009. == Canon == The fictional setting of Orion's Arm takes place about 10,000 years in the future, where an interstellar civilization spread across thousands of light-years, with inhabited planets and space habitats. Its inhabitants range from humans to extensively modified human beings, including superhumans with advanced augmentations and internal AI systems, while most people exist as softwares. Engineered wormholes are used for interstellar travel and transport, although not for time travel. The setting also includes several alien civilizations and evidence of more advanced alien societies in the past. At its highest levels, directed human evolution has produced vast godlike beings linked across interstellar distances, capable of understanding and creating technologies beyond ordinary minds. == Reception == Orion's Arm has been reviewed in the role-playing magazine Knights of the Dinner Table, as well as on Boing Boing by transhumanist science fiction author Cory Doctorow. References to the Encyclopaedia Galactica have been made in a book on overcoming Librarian stereotypes. The Orion's Arm website has also been recommended in a children's teaching guide.

    Read more →
  • Packed pixel

    Packed pixel

    In packed pixel or chunky framebuffer organization, the bits defining each pixel are clustered and stored consecutively. For example, if there are 16 bits per pixel, each pixel is represented in two consecutive (contiguous) 8-bit bytes in the framebuffer. If there are 4 bits per pixel, each framebuffer byte defines two pixels, one in each nibble. The latter example is as opposed to storing a single 4-bit pixel in a byte, leaving 4 bits of the byte unused. If a pixel has more than one channel, the channels are interleaved when using packed pixel organization. Packed pixel displays were common on early microcomputer system that shared a single main memory for both the central processing unit (CPU) and display driver. In such systems, memory was normally accessed a byte at a time, so by packing the pixels, the display system could read out several pixels worth of data in a single read operation. Packed pixel is one of two major ways to organize graphics data in memory, the other being planar organization, where each pixel is made of individual bits stored in their own plane. For a 4-bit color value, memory would be organized as four screen-sized planes of one bit each and a single pixel's value built up by selecting the appropriate bit from each plane. Planar organization has the advantage that the data can be accessed in parallel, and is used when memory bandwidth is an issue.

    Read more →
  • Fuzzy classification

    Fuzzy classification

    Fuzzy classification is the process of grouping elements into fuzzy sets whose membership functions are defined by the truth value of a fuzzy propositional function. A fuzzy propositional function is analogous to an expression containing one or more variables, such that when values are assigned to these variables, the expression becomes a fuzzy proposition. Accordingly, fuzzy classification is the process of grouping individuals having the same characteristics into a fuzzy set. A fuzzy classification corresponds to a membership function μ C ~ : P F ~ × U → T ~ {\textstyle \mu _{\tilde {C}}:{\tilde {PF}}\times U\to {\tilde {T}}} that indicates the degree to which an individual i ∈ U {\textstyle i\in U} is a member of the fuzzy class C ~ {\textstyle {\tilde {C}}} , given its fuzzy classification predicate Π ~ C ~ ∈ P F ~ {\textstyle {\tilde {\Pi }}_{\tilde {C}}\in {\tilde {PF}}} . Here, T ~ {\textstyle {\tilde {T}}} is the set of fuzzy truth values, i.e., the unit interval [ 0 , 1 ] {\textstyle [0,1]} . The fuzzy classification predicate Π ~ C ~ ( i ) {\textstyle {\tilde {\Pi }}_{\tilde {C}}(i)} corresponds to the fuzzy restriction " i {\textstyle i} is a member of C ~ {\textstyle {\tilde {C}}} ". == Classification == Intuitively, a class is a set that is defined by a certain property, and all objects having that property are elements of that class. The process of classification evaluates for a given set of objects whether they fulfill the classification property, and consequentially are a member of the corresponding class. However, this intuitive concept has some logical subtleties that need clarification. A class logic is a logical system which supports set construction using logical predicates with the class operator { ⋅ | ⋅ } {\textstyle \{\cdot |\cdot \}} . A class C = { i | Π ( i ) } {\displaystyle C=\{i|\Pi (i)\}} is defined as a set C of individuals i satisfying a classification predicate Π which is a propositional function. The domain of the class operator { .| .} is the set of variables V and the set of propositional functions PF, and the range is the powerset of this universe P(U) that is, the set of possible subsets: { ⋅ | ⋅ } : V × P F → P ( U ) {\displaystyle \{\cdot |\cdot \}:V\times PF\rightarrow P(U)} Here is an explanation of the logical elements that constitute this definition: An individual is a real object of reference. A universe of discourse is the set of all possible individuals considered. A variable V :→ R {\textstyle V:\rightarrow R} is a function which maps into a predefined range R without any given function arguments: a zero-place function. A propositional function is "an expression containing one or more undetermined constituents, such that, when values are assigned to these constituents, the expression becomes a proposition". In contrast, classification is the process of grouping individuals having the same characteristics into a set. A classification corresponds to a membership function μ that indicates whether an individual is a member of a class, given its classification predicate Π. μ : P F × U → T {\displaystyle \mu :PF\times U\rightarrow T} The membership function maps from the set of propositional functions PF and the universe of discourse U into the set of truth values T. The membership μ of individual i in Class C is defined by the truth value τ of the classification predicate Π. μ C ( i ) := τ ( Π ( i ) ) {\displaystyle \mu C(i):=\tau (\Pi (i))} In classical logic the truth values are certain. Therefore a classification is crisp, since the truth values are either exactly true or exactly false.

    Read more →
  • CADE ATP System Competition

    CADE ATP System Competition

    The CADE ATP System Competition (CASC) is an annual competition of fully automated theorem provers for classical logic. == Competition == CASC is associated with the Conference on Automated Deduction and the International Joint Conference on Automated Reasoning organized by the Association for Automated Reasoning. It has inspired similar competition in related fields, in particular the successful SMT-COMP competition for satisfiability modulo theories, the SAT Competition for propositional reasoners, and the modal logic reasoning competition. The first CASC, CASC-13, was held as part of the 13th Conference on Automated Deduction at Rutgers University, New Brunswick, NJ, in 1996. Among the systems competing were Otter and SETHEO.

    Read more →
  • Computational law

    Computational law

    Computational law is the branch of legal informatics concerned with the automation of legal reasoning. What distinguishes Computational Law systems from other instances of legal technology is their autonomy, i.e. the ability to answer legal questions without additional input from human legal experts. While there are many possible applications of Computational Law, the primary focus of work in the field today is compliance management, i.e. the development and deployment of computer systems capable of assessing, facilitating, or enforcing compliance with rules and regulations. Some systems of this sort already exist. TurboTax is a good example. And the potential is particularly significant now due to recent technological advances – including the prevalence of the Internet in human interaction and the proliferation of embedded computer systems (such as smart phones, self-driving cars, and robots). There are also applications that do not involve governmental laws. The regulations can just as well be the terms of contracts (e.g. delivery schedules, insurance covenants, real estate transactions, financial agreements). They can be the policies of corporations (e.g. constraints on travel, expenditure reporting, pricing rules). They can even be the rules of games (embodied in computer game playing systems). == History == Speculation about potential benefits to legal practice through applying methods from computational science and AI research to automate parts of the law date back at least to the middle 1940s. Further, AI and law and computational law do not seem easily separable, as perhaps most of AI research focusing on the law and its automation appears to utilize computational methods. The forms that speculation took are multiple and not all related in ways to readily show closeness to one another. This history will sketch them as they were, attempting to show relationships where they can be found to have existed. By 1949, a minor academic field aiming to incorporate electronic and computational methods to legal problems had been founded by American legal scholars, called jurimetrics. Though broadly said to be concerned with the application of the "methods of science" to the law, these methods were actually of a quite specifically defined scope. Jurimetrics was to be "concerned with such matters as the quantitative analysis of judicial behavior, the application of communication and information theory to legal expression, the use of mathematical logic in law, the retrieval of legal data by electronic and mechanical means, and the formulation of a calculus of legal predictability". These interests led in 1959 to the founding a journal, Modern Uses of Logic in Law, as a forum wherein articles would be published about the applications of techniques such as mathematical logic, engineering, statistics, etc. to the legal study and development. In 1966, this Journal was renamed as Jurimetrics. Today, however, the journal and meaning of jurimetrics seems to have broadened far beyond what would fit under the areas of applications of computers and computational methods to law. Today the journal not only publishes articles on such practices as found in computational law, but has broadened jurimetrical concerns to mean also things like the use of social science in law or the "policy implications [of] and legislative and administrative control of science". Independently in 1958, at the Conference for the Mechanization of Thought held at the National Physical Laboratory in Teddington, Middlesex, UK, the French jurist Lucien Mehl presented a paper both on the benefits of using computational methods for law and on the potential means to use such methods to automate law for a discussion that included AI luminaries like Marvin Minsky. Mehl believed that the law could by automated by two basic distinct, though not wholly separable, types of machine. These were the "documentary or information machine", which would provide the legal researcher quick access to relevant case precedents and legal scholarship, and the "consultation machine", which would be "capable of answering any question put to it over a vast field of law". The latter type of machine would be able to basically do much of a lawyer's job by simply giving the "exact answer to a [legal] problem put to it". By 1970, Mehl's first type of machine, one that would be able to retrieve information, had been accomplished but there seems to have been little consideration of further fruitful intersections between AI and legal research. There were, however, still hopes that computers could model the lawyer's thought processes through computational methods and then apply that capacity to solve legal problems, thus automating and improving legal services via increased efficiency as well as shedding light on the nature of legal reasoning. By the late 1970s, computer science and the affordability of computer technology had progressed enough that the retrieval of "legal data by electronic and mechanical means" had been achieved by machines fitting Mehl's first type and were in common use in American law firms. During this time, research focused on improving the goals of the early 1970s occurred, with programs like Taxman being worked on in order to both bring useful computer technology into the law as practical aids and to help specify the exact nature of legal concepts. Nonetheless, progress on the second type of machine, one that would more fully automate the law, remained relatively inert. Research into machines that could answer questions in the way that Mehl's consultation machine would picked up somewhat in the late 1970s and 1980s. A 1979 convention in Swansea, Wales marked the first international effort solely to focus upon applying artificial intelligence research to legal problems in order to "consider how computers can be used to discover and apply the legal norms embedded within the written sources of the law". Considerable progress on the development of the second type of machine was made in the following decade, with the development of a variety of expert systems. According to Thorne McCarty, "these systems all have the following characteristics: They do backward chaining inference from a specified goal; they ask questions to elicit information from the user; and they produce a suggested answer along with a trace of the supporting legal rules." According to Prakken and Sartor the representation of the British Nationality Act as a logic program, which introduced this approach, was "hugely influential for the development of computational representations of legislation, showing how logic programming enables intuitively appealing representations that can be directly deployed to generate automatic inferences". In 2021, this work received the Inaugural CodeX Prize as "one of the first and best-known works in computational law, and one of the most widely cited papers in the field." In a 1988 review of Anne Gardner's book An Artificial Intelligence Approach to Legal Reasoning (1987), the Harvard academic legal scholar and computer scientist Edwina Rissland wrote that "She plays, in part, the role of pioneer; artificial intelligence ("AI") techniques have not yet been widely applied to perform legal tasks. Therefore, Gardner, and this review, first describe and define the field, then demonstrate a working model in the domain of contract offer and acceptance." Eight years after the Swansea conference had passed, and still AI and law researchers merely trying to delineate the field could be described by their own kind as "pioneer[s]". In the 1990s and early 2000s more progress occurred. Computational research generated insights for law. The First International Conference on AI and the Law occurred in 1987, but it is in the 1990s and 2000s that the biannual conference began to build up steam and to delve more deeply into the issues involved with work intersecting computational methods, AI, and law. Classes began to be taught to undergraduates on the uses of computational methods to automating, understanding, and obeying the law. Further, by 2005, a team largely composed of Stanford computer scientists from the Stanford Logic group had devoted themselves to studying the uses of computational techniques to the law. Computational methods in fact advanced enough that members of the legal profession began in the 2000s to both analyze, predict and worry about the potential future of computational law and a new academic field of computational legal studies seems to be now well established. As insight into what such scholars see in the law's future due in part to computational law, here is quote from a recent conference about the "New Normal" for the legal profession: "Over the last 5 years, in the fallout of the Great Recession, the legal profession has entered the era of the New Normal. Notably, a series of forces related to technological change, globalization, and the pressure to do more with less (in both corpo

    Read more →
  • Transparency in the software supply chain

    Transparency in the software supply chain

    Transparency in the software supply chain is a condition in which participants involved in the development, procurement, operation, auditing, or regulation of software can determine which components, dependencies, build stages, identifiers, and relationships within the supply chain make up the delivered product. The disclosure of information about software components, their interrelationships, origins, and development methods—for the purposes of risk management, vulnerability detection, and compliance—takes place throughout the software lifecycle. Transparency is one of the key security attributes of the software supply chain, as a deeper understanding of the chain enables participants to identify vulnerabilities and mitigate threats. Problems in the software supply chain can cause billions in losses and create operational challenges for government and commercial entities, as demonstrated by incidents involving SolarWinds, Bybit, 3CX, Jaguar Land Rover, GitHub, and NotPetya. Modern software is often assembled from third-party libraries and open-source components. According to research by the Linux Foundation and Synopsys, 96% of the commercial codebases analyzed contained open-source software, and 70–90% of a typical codebase may consist of open-source components. Without transparency, any software component can become a threat. As a result, companies may spend billions of dollars building robust external defenses, but this will not protect against vulnerabilities in legitimate software inside the perimeter. At the same time, supply chain attacks also erode trust between customers and their IT providers, as malicious code is often embedded in official updates with certificates and digital signatures. One of the primary ways to ensure transparency is through a software bill of materials, which documents the components used to create the software and the relationships within the supply chain. == Concept == The software supply chain is the collection of systems, devices, people, artifacts, and processes involved in the creation of the final software product. Attacks on the software supply chain differ from conventional attacks in that they follow a four-stage pattern: compromise, modification, distribution, and subsequent exploitation of the compromised or modified component. A defining feature of a supply chain attack is the introduction or manipulation of a change at an upstream stage, which is subsequently exploited at a downstream stage. Transparency refers to the availability of knowledge about the chain, while validity concerns the integrity of operations and artifacts and the authentication of participants, and separation involves reducing unnecessary trust relationships and the radius of impact through compartmentalization. In this framework, transparency primarily helps during the pre-compromise and detection phases, as a clearer understanding of participants, operations, and artifacts makes it easier to identify weak links before attackers exploit them. Current major attack vectors include dependencies and containers, build infrastructure, and human participants, such as maintainers or developers. == History == Software supply-chain transparency developed from earlier efforts to document software components, long before the term came into widespread use in the cybersecurity field. Early component-documentation formats included SPDX, first published in 2011, and CycloneDX, first published in 2017. Initially, these formats were created to support license compliance, package identification, and tool compatibility. Their development helped shape a broader concept of software supply chain transparency, encompassing component documentation, disclosure practices, risk management, security analysis, and regulatory compliance. In 2018, the U.S. National Telecommunications and Information Administration launched a multistakeholder process on promoting software component transparency. This process helped move work on SBOMs from a specialized technical practice into the realm of policy and procurement to identify components used in software products. The 2020 compromise of the SolarWinds Orion platform made software supply chain security a central issue in government cybersecurity policy. An analysis of the “Sunburst” campaign prepared by the Atlantic Council noted that the vulnerability of the software supply chain had become a realized risk for national-security agencies. In May 2021, U.S. President Joe Biden issued Executive Order 14028, which directed federal agencies to improve cybersecurity and increase transparency in the software supply chain, including requirements related to SBOMs. Reuters reported that the executive order required software developers selling their products to the federal government to provide greater visibility into their software and make security data available. In July 2021, the NTIA published the document “The Minimum Elements for a Software Bill of Materials (SBOM)”, defining the basic data fields and practices for creating SBOMs. Between 2021 and 2025, the U.S. Cybersecurity and Infrastructure Security Agency updated its guidance on “Framing Software Component Transparency”, expanding the set of SBOM attributes, metadata requirements, and operational recommendations for the creation, exchange, and use of SBOMs. Major incidents that occurred following the SolarWinds attack have underscored the importance of transparency in vulnerability management and supply chain security. The Log4Shell vulnerability in the Log4j library, disclosed in December 2021, demonstrated how difficult it can be for organizations to identify a vulnerable component deeply embedded within applications and services. In 2024, an attempt to plant a backdoor in XZ Utils showed how attackers could exploit trust in open-source maintenance processes to introduce malicious code into widely used infrastructure software. By the mid-2020s, software supply chain transparency had become part of international cybersecurity coordination and regulation. On September 3, 2025, Japan's Ministry of Economy, Trade and Industry and the National Cybersecurity Office, in collaboration with cybersecurity agencies from 15 countries, released the document “A Shared Vision of Software Bill of Materials (SBOM) for Cybersecurity.” In the European Union, the Cyber Resilience Act required manufacturers of products with digital elements to create, maintain, and retain SBOMs as part of the technical documentation for software placed on the EU market. == Transparency mechanisms == The primary mechanism for ensuring transparency is the software bill of materials (SBOM). An SBOM is a structured list of components, libraries, and tools used to build and distribute a software product, and it records dependencies in a way that helps organizations understand and assess their software supply chains. It can also be described as a formal record of components and their interdependencies, which gives users insight into their actual exposure to risks and threats. Five key areas of SBOM application in software supply chain security have been identified: vulnerability management, ensuring transparency, component evaluation, risk assessment, and ensuring supply chain integrity. In software supply chains, an SBOM documents all components, both open-source and proprietary. Under Executive Order 14028, U.S. federal agencies require software suppliers to provide SBOMs for government-procured software. The list of minimum required SBOM elements defined by NTIA includes three main categories: required data fields for describing each component (name, version, identifiers), automation support (machine-readable format, generation tools), and recommendations for creating SBOMs during development and purchasing. The post-2021 push for SBOMs was intended to provide visibility into the components used within software and to expose parts of an application that would otherwise remain hidden. This information can be used to prioritize patches, manage vulnerabilities, and support compliance work. Transparency also supports software traceability, which is becoming a standard feature of developer platforms. Traceability has become important because organizations are increasingly required to demonstrate how software was created, rather than simply listing its components. Higher levels of assurance require signed, tamper-proof traceability and more isolated, verifiable build environments. A related mechanism is build reproducibility. Reproducible builds are defined as build processes that make the compilation process deterministic, ensuring that the same source code always produces the same binary file. These builds are considered a foundational element for distributed verification, transparency-log maintenance, supply-chain workflow integration, and the creation of keyless signatures based on verifiable logs. Although reproducibility does not replace inventory or attestation, it gives external par

    Read more →
  • Artificial Intelligence Cold War

    Artificial Intelligence Cold War

    The Artificial Intelligence Cold War (AI Cold War) is a narrative in which geopolitical tensions between the United States of America (USA) and the People's Republic of China (PRC) could lead to a Second Cold War waged in the area of artificial intelligence technology rather than in the areas of nuclear capabilities or ideology. The context of the AI Cold War narrative is the AI arms race, which involves a build-up of military capabilities using AI technology by the US and China and the usage of increasingly advanced semiconductors which power those capabilities. According to a February 2019 publication by the Center for a New American Security, General Secretary of the Chinese Communist Party Xi Jinping – believes that being at the forefront of AI technology will be critical to the future of China's global military and economic power competition. == Origins of the term == The term AI Cold War first appeared in 2018 in an article in Wired magazine by Nicholas Thompson and Ian Bremmer. The two authors trace the emergence of the AI Cold War narrative to 2017, when China published its AI Development Plan, which included a strategy aimed at becoming the global leader in AI by 2030. While the authors acknowledge the use of AI by China to strengthen its authoritarian (totalitarian) rule, they warn against the perils for the US of engaging in an AI Cold War strategy. Thompson and Bremmer rather advocate for a technological cooperation between the US and China to encourage global standards in privacy and ethical use of AI. Shortly after the publication of the article in Wired magazine, the former U.S. Treasury Secretary Hank Paulson referred to the emergence of an ‘Economic Iron Curtain’ between the US and China, reinforcing the new AI Cold War narrative. == Proponents of the AI Cold War narrative == Politico contributed to reinforcing the AI Cold War narrative. In 2020, the paper argued that because of the increasing AI capabilities of China, the US and other democratic countries have to create an alliance to stay ahead of China. Former Google chief executive Eric Schmidt, together with Graham T. Allison alleged in an article in Project Syndicate that, in the context of the COVID-19 pandemic, the AI capabilities of China are ahead of the US in most critical areas. Scientists who have immigrated to the U.S. play an outsize role in the country's development of AI technology. Many of them were educated in China, prompting debates about national security concerns amid worsening relations between the two countries. Policy and technology experts have pointed to concerns about unethical use of AI which would be primarily associated with China. Ethics would therefore constitute a major ideological divide in the upcoming AI Cold War. Fears around disrupting supply chains and a global semiconductor shortage are linked to Taiwan's critical role in the production of semiconductors. 70% of semiconductors are either produced in Taiwan or transfer through Taiwan, where TSMC, world's largest chipmaker is headquartered. The PRC does not recognize the sovereignty of Taiwan and trade restrictions by the US on companies selling semiconductors to the PRC have disrupted in the past the commercial relationships between TSMC and Huawei. == Reactions to the AI Cold War == === Review of the validity of the AI Cold War narrative === Academics and observers expressed concerns about the validity and soundness of the AI Cold War narrative. Denise Garzia expressed concern in Nature that the AI Cold War narrative will undermine the efforts by the US to establish global rules for AI ethics. Researchers have warned in MIT Technology Review that the breakdown in international collaboration in the area of science because of the threat of the alleged AI Cold War would be detrimental to progress. Additionally, the AI Cold War narrative impacts on many more areas including the planning of supply chains and the proliferation of AI. The dissemination of the AI Cold War narrative could therefore be costly and destructive and exacerbate existing tensions. Joanna Bryson and Helena Malikova have pointed to Big Tech's potential interest in promoting the AI Cold War narrative, as technology companies lobby for less onerous regulation of AI in the US and the EU. A factual assessment of the existing AI capabilities of different countries shows a less binary reality than portrayed by the AI Cold War narrative. The AI Cold War started as a narrative but it could turn into a self-fulfilling prophecy and fuel an arms race, not only because of corporate interests but also because of the existing interests at different national security departments. Regarding cyber power, the International Institute for Strategic Studies published a study in June 2021, which argued that the online capabilities of China have been exaggerated and that Chinese cyber power is at least a decade behind the US, largely due to lingering security issues. === Restrictions to trading with China === US politicians and European industry players have invoked the looming AI Cold War as a reason to ban procurement by public authorities in Europe of Huawei 5G technology due to concerns over the Chinese state-sponsored surveillance industry. In 2019, the Trump administration successfully lobbied the Dutch government into stopping the Netherlands-based company ASML from exporting equipment to China. ASML manufactures a machine called an extreme ultraviolet lithography system used by semiconductor producers, including TSMC and Intel to produce state-of the-art microchips. The Biden administration adopted the same course of action as the Trump administration and requested the Netherlands to restrict sales by ASML to China, invoking national-security concerns. The trade restrictions imposed by the Trump administration affected semiconductors imports from China to the US and raised concerns by the US industry that supply chains will be disrupted in case of an AI Cold War. This prompted US technology companies to develop mitigation strategies including hoarding semiconductors and trying to set up local semiconductor production facilities, with the support of government subsidies. === Industrial policy initiatives === ==== United States ==== In June 2021, the US Senate approved the U.S. Innovation and Competition Act providing around 250 billion US dollars public money support to the US technological and manufacturing industry. The alleged Chinese threat in the area of technology helped secure a strong bipartisan support for the new legislation, amounting to the largest industrial policy move by the US in decades. Chinese authorities reproached to the US that the bill was “full of cold war zero-sum thinking”. The legislative bill is aimed at strengthening capabilities in the area of technology, such as quantum computing and AI specifically to face the competitive threat from China perceived as urgent. Senator Chuck Schumer, the leader of the Senate majority and one of the sponsors of the industrial policy bill invoked the threat of authoritarian regimes that want “grab the mantle of global economic leadership and own the innovations”. In 2022, U.S. Innovation and Competition Act was amended and turned into the Chips and Science Act with planned spending of 280 billion US dollars, 53 billion thereof are allocated directly to subsidies for semiconductors manufacturing. Commentators identified possible positive effects on innovation from the US attempts to compete with China in a perceived rivalry. Among the main beneficiaries of the US CHIPS Act are the semiconductor producers Intel, TSMC and Micron Technology. ==== European Chips Act ==== In February 2022, the European Union introduced its own European Chips Act initiative. The background of the initiative would be the objective of European strategic autonomy. The EU's initiative puts forward subsidies of 30 billion euros to encourage manufacturing of semiconductors in the EU. The US company Intel is one beneficiary of the initiative. The US and European chips acts raise concerns of protectionism and a risk of a subsidies "race to the bottom." === New world order === The AI Cold War heralds a new world order in geopolitics, according to Hemant Taneja and Fareed Zakaria. This new world order is a departure from the unipolar system dominated by the US. It is characterized by existence of two parallel digital ecosystems, ran by China and the US. In order to succeed countries that consider themselves as democracies are to align their technological ecosystems to that of the US, in a process labelled re-globalization.

    Read more →
  • Autonomic computing

    Autonomic computing

    Autonomic computing (AC) is distributed computing resources with self-managing characteristics, adapting to unpredictable changes while hiding intrinsic complexity to operators and users. Initiated by IBM in 2001, this initiative ultimately aimed to develop computer systems capable of self-management, to overcome the rapidly growing complexity of computing systems management, and to reduce the barrier that complexity poses to further growth. == Description == The AC system concept is designed to make adaptive decisions, using high-level policies. It will constantly check and optimize its status and automatically adapt itself to changing conditions. An autonomic computing framework is composed of autonomic components (AC) interacting with each other. An AC can be modeled in terms of two main control schemes (local and global) with sensors (for self-monitoring), effectors (for self-adjustment), knowledge and planner/adapter for exploiting policies based on self- and environment awareness. This architecture is sometimes referred to as Monitor-Analyze-Plan-Execute (MAPE). Driven by such vision, a variety of architectural frameworks based on "self-regulating" autonomic components has been recently proposed. A similar trend has recently characterized significant research in the area of multi-agent systems. However, most of these approaches are typically conceived with centralized or cluster-based server architectures in mind and mostly address the need of reducing management costs rather than the need of enabling complex software systems or providing innovative services. Some autonomic systems involve mobile agents interacting via loosely coupled communication mechanisms. Autonomy-oriented computation is a paradigm proposed by Jiming Liu in 2001 that uses artificial systems imitating social animals' collective behaviours to solve difficult computational problems. For example, ant colony optimization could be studied in this paradigm. == Problem of growing complexity == Forecasts suggested that the computing devices in use would grow at 38% per year and the average complexity of each device was increasing. This volume and complexity was managed by highly skilled humans; but the demand for skilled IT personnel was already outstripping supply, with labour costs exceeding equipment costs by a ratio of up to 18:1. Computing systems have brought great benefits of speed and automation but there is now an overwhelming economic need to automate their maintenance. In a 2003 IEEE Computer article, Kephart and Chess warn that the dream of interconnectivity of computing systems and devices could become the "nightmare of pervasive computing" in which architects are unable to anticipate, design and maintain the complexity of interactions. They state the essence of autonomic computing is system self-management, freeing administrators from low-level task management while delivering better system behavior. A general problem of modern distributed computing systems is that their complexity, and in particular the complexity of their management, is becoming a significant limiting factor in their further development. Large companies and institutions are employing large-scale computer networks for communication and computation. The distributed applications running on these computer networks are diverse and deal with multiple tasks, ranging from internal control processes to presenting web content to customer support. Additionally, mobile computing is pervading these networks at an increasing speed: employees need to communicate with their companies while they are not in their office. They do so by using laptops, personal digital assistants, or mobile phones with diverse forms of wireless technologies to access their companies' data. This creates an enormous complexity in the overall computer network which is hard to control manually by human operators. Manual control is time-consuming, expensive, and error-prone. The manual effort needed to control a growing networked computer-system tends to increase quickly. 80% of such problems in infrastructure happen at the client specific application and database layer. Most 'autonomic' service providers guarantee only up to the basic plumbing layer (power, hardware, operating system, network and basic database parameters). == Characteristics of autonomic systems == A possible solution could be to enable modern, networked computing systems to manage themselves without direct human intervention. The Autonomic Computing Initiative (ACI) aims at providing the foundation for autonomic systems. It is inspired by the autonomic nervous system of the human body. This nervous system controls important bodily functions (e.g. respiration, heart rate, and blood pressure) without any conscious intervention. In a self-managing autonomic system, the human operator takes on a new role: instead of controlling the system directly, he/she defines general policies and rules that guide the self-management process. For this process, IBM defined the following four types of property referred to as self-star (also called self-, self-x, or auto-) properties. Self-configuration: Automatic configuration of components; Self-healing: Automatic discovery, and correction of faults; Self-optimization: Automatic monitoring and control of resources to ensure the optimal functioning with respect to the defined requirements; Self-protection: Proactive identification and protection from arbitrary attacks. Others such as Poslad and Nami and Sharifi have expanded on the set of self-star as follows: Self-regulation: A system that operates to maintain some parameter, e.g., Quality of service, within a reset range without external control; Self-learning: Systems use machine learning techniques such as unsupervised learning which does not require external control; Self-awareness (also called Self-inspection and Self-decision): System must know itself. It must know the extent of its own resources and the resources it links to. A system must be aware of its internal components and external links in order to control and manage them; Self-organization: System structure driven by physics-type models without explicit pressure or involvement from outside the system; Self-creation (also called Self-assembly, Self-replication): System driven by ecological and social type models without explicit pressure or involvement from outside the system. A system's members are self-motivated and self-driven, generating complexity and order in a creative response to a continuously changing strategic demand; Self-management (also called self-governance): A system that manages itself without external intervention. What is being managed can vary dependent on the system and application. Self -management also refers to a set of self-star processes such as autonomic computing rather than a single self-star process; Self-description (also called self-explanation or Self-representation): A system explains itself. It is capable of being understood (by humans) without further explanation. IBM has set forth eight conditions that define an autonomic system: The system must know itself in terms of what resources it has access to, what its capabilities and limitations are and how and why it is connected to other systems; be able to automatically configure and reconfigure itself depending on the changing computing environment; be able to optimize its performance to ensure the most efficient computing process; be able to work around encountered problems by either repairing itself or routing functions away from the trouble; detect, identify and protect itself against various types of attacks to maintain overall system security and integrity; adapt to its environment as it changes, interacting with neighboring systems and establishing communication protocols; rely on open standards and cannot exist in a proprietary environment; anticipate the demand on its resources while staying transparent to users. Even though the purpose and thus the behaviour of autonomic systems vary from system to system, every autonomic system should be able to exhibit a minimum set of properties to achieve its purpose: Automatic: This essentially means being able to self-control its internal functions and operations. As such, an autonomic system must be self-contained and able to start-up and operate without any manual intervention or external help. Again, the knowledge required to bootstrap the system (Know-how) must be inherent to the system. Adaptive: An autonomic system must be able to change its operation (i.e., its configuration, state and functions). This will allow the system to cope with temporal and spatial changes in its operational context either long term (environment customisation/optimisation) or short term (exceptional conditions such as malicious attacks, faults, etc.). Aware: An autonomic system must be able to monitor (sense) its operational context as well as its internal state in order to be able to asses

    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 →
  • Multicloud

    Multicloud

    Multicloud (also written as multi-cloud or multi cloud) is a term with varying interpretations, generally referring to a system using multiple cloud computing providers. According to ISO/IEC 22123-1: "multi-cloud is a cloud deployment model in which a customer uses public cloud services provided by two or more cloud service providers". Multi-cloud can involve various deployment models, including public, private, and hybrid clouds, and multiple service models, such as Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). Multicloud incorporates workload, data, traffic, and workflow portability options, which can result in varying implementation complexity. When effectively implemented, multicloud solutions can enhance architectural resilience, reduce dependence on a single vendor, and improve flexibility by leveraging services from different providers. However, multicloud strategies also present challenges, including increased operational complexity, security risks, higher costs, and integration difficulties. According to the 2024 State of the Cloud Report by Flexera, multi-cloud adoption has continued to rise in 2024. Enterprises increasingly silo applications into specific clouds and select best-fit services. Key use cases include data analysis in separate clouds and cross-cloud disaster recovery. == Advantages and challenges == There are several advantages to using a multicloud approach, including the ability to negotiate better pricing with cloud providers, the ability to quickly switch to another provider if needed, and the ability to avoid vendor lock-in. Multicloud can also be a good way to hedge against the risks of obsolescence, as it allows you to rely on multiple vendors and open standards, which can prolong the life of your systems. Additional benefits of the multicloud architecture include adherence to local policies that require certain data to be physically present within the area/country, geographical distribution of processing requests from physically closer cloud unit which in turn reduces latency and protect against disasters. Various issues and challenges also present themselves in a multicloud environment. Security and governance is more complicated, and more "moving parts" may create resiliency issues. == Difference between multicloud and hybrid cloud == Multicloud differs from hybrid cloud in that it refers to multiple cloud services from different vendors rather than multiple deployment modes (on-premises hardware, and public and private, cloud hosting). However, when considering a broad definition of multi-cloud, hybrid cloud can still be regarded as a special form of multi-cloud.

    Read more →
  • Thompson sampling

    Thompson sampling

    Thompson sampling, named after William R. Thompson, is a heuristic for choosing actions that address the exploration–exploitation dilemma in the multi-armed bandit problem. It consists of choosing the action that maximizes the expected reward with respect to a randomly drawn belief. == Description == Consider a set of contexts X {\displaystyle {\mathcal {X}}} , a set of actions A {\displaystyle {\mathcal {A}}} , and rewards in R {\displaystyle \mathbb {R} } . The aim of the player is to play actions under the various contexts, such as to maximize the cumulative rewards. Specifically, in each round, the player obtains a context x ∈ X {\displaystyle x\in {\mathcal {X}}} , plays an action a ∈ A {\displaystyle a\in {\mathcal {A}}} and receives a reward r ∈ R {\displaystyle r\in \mathbb {R} } following a distribution that depends on the context and the issued action. The elements of Thompson sampling are as follows: a likelihood function P ( r | θ , a , x ) {\displaystyle P(r|\theta ,a,x)} ; a set Θ {\displaystyle \Theta } of parameters θ {\displaystyle \theta } of the distribution of r {\displaystyle r} ; a prior distribution P ( θ ) {\displaystyle P(\theta )} on these parameters; past observations triplets D = { ( x ; a ; r ) } {\displaystyle {\mathcal {D}}=\{(x;a;r)\}} ; a posterior distribution P ( θ | D ) ∝ P ( D | θ ) P ( θ ) {\displaystyle P(\theta |{\mathcal {D}})\propto P({\mathcal {D}}|\theta )P(\theta )} , where P ( D | θ ) {\displaystyle P({\mathcal {D}}|\theta )} is the likelihood function. Thompson sampling consists of playing the action a ∗ ∈ A {\displaystyle a^{\ast }\in {\mathcal {A}}} according to the probability that it maximizes the expected reward; action a ∗ {\displaystyle a^{\ast }} is chosen with probability ∫ I [ E ( r | a ∗ , x , θ ) = max a ′ E ( r | a ′ , x , θ ) ] P ( θ | D ) d θ , {\displaystyle \int \mathbb {I} \left[\mathbb {E} (r|a^{\ast },x,\theta )=\max _{a'}\mathbb {E} (r|a',x,\theta )\right]P(\theta |{\mathcal {D}})d\theta ,} where I {\displaystyle \mathbb {I} } is the indicator function. In practice, the rule is implemented by sampling. In each round, parameters θ ∗ {\displaystyle \theta ^{\ast }} are sampled from the posterior P ( θ | D ) {\displaystyle P(\theta |{\mathcal {D}})} , and an action a ∗ {\displaystyle a^{\ast }} chosen that maximizes E [ r | θ ∗ , a ∗ , x ] {\displaystyle \mathbb {E} [r|\theta ^{\ast },a^{\ast },x]} , i.e. the expected reward given the sampled parameters, the action, and the current context. Conceptually, this means that the player instantiates their beliefs randomly in each round according to the posterior distribution, and then acts optimally according to them. In most practical applications, it is computationally onerous to maintain and sample from a posterior distribution over models. As such, Thompson sampling is often used in conjunction with approximate sampling techniques. == History == Thompson sampling was originally described by Thompson in 1933. It was subsequently rediscovered numerous times independently in the context of multi-armed bandit problems. A first proof of convergence for the bandit case has been shown in 1997. The first application to Markov decision processes was in 2000. A related approach (see Bayesian control rule) was published in 2010. In 2010 it was also shown that Thompson sampling is instantaneously self-correcting. Asymptotic convergence results for contextual bandits were published in 2011. Thompson Sampling has been widely used in many online learning problems including A/B testing in website design and online advertising, and accelerated learning in decentralized decision making. A Double Thompson Sampling (D-TS) algorithm has been proposed for dueling bandits, a variant of traditional MAB, where feedback comes in the form of pairwise comparison. == Relationship to other approaches == === Probability matching === Probability matching is a decision strategy in which predictions of class membership are proportional to the class base rates. Thus, if in the training set positive examples are observed 60% of the time, and negative examples are observed 40% of the time, the observer using a probability-matching strategy will predict (for unlabeled examples) a class label of "positive" on 60% of instances, and a class label of "negative" on 40% of instances. === Bayesian control rule === A generalization of Thompson sampling to arbitrary dynamical environments and causal structures, known as Bayesian control rule, has been shown to be the optimal solution to the adaptive coding problem with actions and observations. In this formulation, an agent is conceptualized as a mixture over a set of behaviours. As the agent interacts with its environment, it learns the causal properties and adopts the behaviour that minimizes the relative entropy to the behaviour with the best prediction of the environment's behaviour. If these behaviours have been chosen according to the maximum expected utility principle, then the asymptotic behaviour of the Bayesian control rule matches the asymptotic behaviour of the perfectly rational agent. The setup is as follows. Let a 1 , a 2 , … , a T {\displaystyle a_{1},a_{2},\ldots ,a_{T}} be the actions issued by an agent up to time T {\displaystyle T} , and let o 1 , o 2 , … , o T {\displaystyle o_{1},o_{2},\ldots ,o_{T}} be the observations gathered by the agent up to time T {\displaystyle T} . Then, the agent issues the action a T + 1 {\displaystyle a_{T+1}} with probability: P ( a T + 1 | a ^ 1 : T , o 1 : T ) , {\displaystyle P(a_{T+1}|{\hat {a}}_{1:T},o_{1:T}),} where the "hat"-notation a ^ t {\displaystyle {\hat {a}}_{t}} denotes the fact that a t {\displaystyle a_{t}} is a causal intervention (see Causality), and not an ordinary observation. If the agent holds beliefs θ ∈ Θ {\displaystyle \theta \in \Theta } over its behaviors, then the Bayesian control rule becomes P ( a T + 1 | a ^ 1 : T , o 1 : T ) = ∫ Θ P ( a T + 1 | θ , a ^ 1 : T , o 1 : T ) P ( θ | a ^ 1 : T , o 1 : T ) d θ {\displaystyle P(a_{T+1}|{\hat {a}}_{1:T},o_{1:T})=\int _{\Theta }P(a_{T+1}|\theta ,{\hat {a}}_{1:T},o_{1:T})P(\theta |{\hat {a}}_{1:T},o_{1:T})\,d\theta } , where P ( θ | a ^ 1 : T , o 1 : T ) {\displaystyle P(\theta |{\hat {a}}_{1:T},o_{1:T})} is the posterior distribution over the parameter θ {\displaystyle \theta } given actions a 1 : T {\displaystyle a_{1:T}} and observations o 1 : T {\displaystyle o_{1:T}} . In practice, the Bayesian control amounts to sampling, at each time step, a parameter θ ∗ {\displaystyle \theta ^{\ast }} from the posterior distribution P ( θ | a ^ 1 : T , o 1 : T ) {\displaystyle P(\theta |{\hat {a}}_{1:T},o_{1:T})} , where the posterior distribution is computed using Bayes' rule by only considering the (causal) likelihoods of the observations o 1 , o 2 , … , o T {\displaystyle o_{1},o_{2},\ldots ,o_{T}} and ignoring the (causal) likelihoods of the actions a 1 , a 2 , … , a T {\displaystyle a_{1},a_{2},\ldots ,a_{T}} , and then by sampling the action a T + 1 ∗ {\displaystyle a_{T+1}^{\ast }} from the action distribution P ( a T + 1 | θ ∗ , a ^ 1 : T , o 1 : T ) {\displaystyle P(a_{T+1}|\theta ^{\ast },{\hat {a}}_{1:T},o_{1:T})} . === Upper-confidence-bound (UCB) algorithms === Thompson sampling and upper-confidence bound algorithms share a fundamental property that underlies many of their theoretical guarantees. Roughly speaking, both algorithms allocate exploratory effort to actions that might be optimal and are in this sense "optimistic". Leveraging this property, one can translate regret bounds established for UCB algorithms to Bayesian regret bounds for Thompson sampling or unify regret analysis across both these algorithms and many classes of problems.

    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 →