Glushkov's construction algorithm

Glushkov's construction algorithm

In computer science theory – particularly formal language theory – Glushkov's construction algorithm, invented by Victor Mikhailovich Glushkov, transforms a given regular expression into an equivalent nondeterministic finite automaton (NFA). Thus, it forms a bridge between regular expressions and nondeterministic finite automata: two abstract representations of the same class of formal languages. A regular expression may be used to conveniently describe an advanced search pattern in a "find and replace"–like operation of a text processing utility. Glushkov's algorithm can be used to transform it into an NFA, which furthermore is small by nature, as the number of its states equals the number of symbols of the regular expression, plus one. Subsequently, the NFA can be made deterministic by the powerset construction and then be minimized to get an optimal automaton corresponding to the given regular expression. The latter format is best suited for execution on a computer. From another, more theoretical point of view, Glushkov's algorithm is a part of the proof that NFA and regular expressions both accept exactly the same languages; that is, the regular languages. The converse of Glushkov's algorithm is Kleene's algorithm, which transforms a finite automaton into a regular expression. The automaton obtained by Glushkov's construction is the same as the one obtained by Thompson's construction algorithm, once its ε-transitions are removed. Glushkov's construction algorithm is also called The algorithm of Berry-Sethi, named after Gérard Berry and Ravi Sethi who worked on this construction. == Construction == Given a regular expression e, the Glushkov Construction Algorithm creates a non-deterministic automaton that accepts the language L ( e ) {\displaystyle L(e)} accepted by e. The construction uses four steps: === Step 1 === Linearisation of the expression. Each letter of the alphabet appearing in the expression e is renamed, so that each letter occurs at most once in the new expression e ′ {\displaystyle e'} . Glushkov's construction essentially relies on the fact that e ′ {\displaystyle e'} represents a local language L ( e ′ ) {\displaystyle L(e')} . Let A be the old alphabet and let B be the new one. === Step 2a === Computation of the sets P ( e ′ ) {\displaystyle P(e')} , D ( e ′ ) {\displaystyle D(e')} , and F ( e ′ ) {\displaystyle F(e')} . The first, P ( e ′ ) {\displaystyle P(e')} , is the set of letters which occurs as first letter of a word of L ( e ′ ) {\displaystyle L(e')} . The second, D ( e ′ ) {\displaystyle D(e')} , is the set of letters that can end a word of L ( e ′ ) {\displaystyle L(e')} . The last one, F ( e ′ ) {\displaystyle F(e')} , is the set of letter pairs that can occur in words of L ( e ′ ) {\displaystyle L(e')} , i.e. it is the set of factors of length two of the words of L ( e ′ ) {\displaystyle L(e')} . Those sets are mathematically defined by P ( e ′ ) = { x ∈ B ∣ x B ∗ ∩ L ( e ′ ) ≠ ∅ } {\displaystyle P(e')=\{x\in B\mid xB^{}\cap L(e')\neq \emptyset \}} , D ( e ′ ) = { y ∈ B ∣ B ∗ y ∩ L ( e ′ ) ≠ ∅ } {\displaystyle D(e')=\{y\in B\mid B^{}y\cap L(e')\neq \emptyset \}} , F ( e ′ ) = { u ∈ B 2 ∣ B ∗ u B ∗ ∩ L ( e ′ ) ≠ ∅ } {\displaystyle F(e')=\{u\in B^{2}\mid B^{}uB^{}\cap L(e')\neq \emptyset \}} . They are computed by induction over the structure of the expression, as explained below. === Step 2b === Computation of the set Λ ( e ′ ) {\displaystyle \Lambda (e')} which contains the empty word ε {\displaystyle \varepsilon } if this word belongs to L ( e ′ ) {\displaystyle L(e')} , and is the empty set otherwise. Formally, this is Λ ( e ′ ) = { ε } ∩ L ( e ′ ) {\displaystyle \Lambda (e')=\{\varepsilon \}\cap L(e')} . === Step 3 === Computation of automaton recognizing the local language, as defined by P ( e ′ ) {\displaystyle P(e')} , D ( e ′ ) {\displaystyle D(e')} , F ( e ′ ) {\displaystyle F(e')} , and Λ ( e ′ ) {\displaystyle \Lambda (e')} . By definition, the local language defined by the sets P, D, and F is the set of words which begin with a letter of P, end by a letter of D, and whose factors of length 2 belong to F, optionally also including the empty word; that is, it is the language: L ′ = ( P B ∗ ∩ B ∗ D ) ∖ B ∗ ( B 2 ∖ F ) B ∗ ∪ Λ ( e ′ ) {\displaystyle L'=(PB^{}\cap B^{}D)\setminus B^{}(B^{2}\setminus F)B^{}\cup \Lambda (e')} . Strictly speaking, it is the computation of the automaton for the local language denoted by this linearised expression that is Glushkov's construction. === Step 4 === Remove the linearisation, replacing each indexed letter B by the original letter of A. == Example == Consider the regular expression e = ( a ( a b ) ∗ ) ∗ + ( b a ) ∗ {\displaystyle e=(a(ab)^{})^{}+(ba)^{}} . == Computation of the set of letters == The computation of the sets P, D, F, and Λ is done inductively over the regular expression e ′ {\displaystyle e'} . One must give the values for ∅, ε (the symbols for the empty language and the singleton language containing the empty word), the letters, and the results of the operations + , ⋅ , ∗ {\displaystyle +,\cdot ,^{}} . The most costly operations are the cartesian products of sets for the computation of F. == Properties == The obtained automaton is non-deterministic, and it has as many states as the number of letters of the regular expression, plus one. It has been proven that every Thompson's automaton can be transformed into Glushkov's automaton via a ε-transitions elimination method. == Applications and deterministic expressions == The computation of the automaton by the expression occurs often; it has been systematically used in search functions, in particular by the Unix grep command. Similarly, XML's specification also uses such constructions; for more efficiency, regular expressions of a certain kind, called deterministic expressions, have been studied.

Contextual image classification

Contextual image classification, a topic of pattern recognition in computer vision, is an approach of classification based on contextual information in images. "Contextual" means this approach is focusing on the relationship of the nearby pixels, which is also called neighbourhood. The goal of this approach is to classify the images by using the contextual information. == Introduction == Similar as processing language, a single word may have multiple meanings unless the context is provided, and the patterns within the sentences are the only informative segments we care about. For images, the principle is same. Find out the patterns and associate proper meanings to them. As the image illustrated below, if only a small portion of the image is shown, it is very difficult to tell what the image is about. Even try another portion of the image, it is still difficult to classify the image. However, if we increase the contextual of the image, then it makes more sense to recognize. As the full images shows below, almost everyone can classify it easily. During the procedure of segmentation, the methods which do not use the contextual information are sensitive to noise and variations, thus the result of segmentation will contain a great deal of misclassified regions, and often these regions are small (e.g., one pixel). Compared to other techniques, this approach is robust to noise and substantial variations for it takes the continuity of the segments into account. Several methods of this approach will be described below. == Applications == === Functioning as a post-processing filter to a labelled image === This approach is very effective against small regions caused by noise. And these small regions are usually formed by few pixels or one pixel. The most probable label is assigned to these regions. However, there is a drawback of this method. The small regions also can be formed by correct regions rather than noise, and in this case the method is actually making the classification worse. This approach is widely used in remote sensing applications. === Improving the post-processing classification === This is a two-stage classification process: For each pixel, label the pixel and form a new feature vector for it. Use the new feature vector and combine the contextual information to assign the final label to the === Merging the pixels in earlier stages === Instead of using single pixels, the neighbour pixels can be merged into homogeneous regions benefiting from contextual information. And provide these regions to classifier. === Acquiring pixel feature from neighbourhood === The original spectral data can be enriched by adding the contextual information carried by the neighbour pixels, or even replaced in some occasions. This kind of pre-processing methods are widely used in textured image recognition. The typical approaches include mean values, variances, texture description, etc. === Combining spectral and spatial information === The classifier uses the grey level and pixel neighbourhood (contextual information) to assign labels to pixels. In such case the information is a combination of spectral and spatial information. === Powered by the Bayes minimum error classifier === Contextual classification of image data is based on the Bayes minimum error classifier (also known as a naive Bayes classifier). Present the pixel: A pixel is denoted as x 0 {\displaystyle x_{0}} . The neighbourhood of each pixel x 0 {\displaystyle x_{0}} is a vector and denoted as N ( x 0 ) {\displaystyle N(x_{0})} . The values in the neighbourhood vector is denoted as f ( x i ) {\displaystyle f(x_{i})} . Each pixel is presented by the vector ξ = ( f ( x 0 ) , f ( x 1 ) , … , f ( x k ) ) {\displaystyle \xi =\left(f(x_{0}),f(x_{1}),\ldots ,f(x_{k})\right)} x i ∈ N ( x 0 ) ; i = 1 , … , k {\displaystyle x_{i}\in N(x_{0});\quad i=1,\ldots ,k} The labels (classification) of pixels in the neighbourhood N ( x 0 ) {\displaystyle N(x_{0})} are presented as a vector η = ( θ 0 , θ 1 , … , θ k ) {\displaystyle \eta =\left(\theta _{0},\theta _{1},\ldots ,\theta _{k}\right)} θ i ∈ { ω 0 , ω 1 , … , ω k } {\displaystyle \theta _{i}\in \left\{\omega _{0},\omega _{1},\ldots ,\omega _{k}\right\}} ω s {\displaystyle \omega _{s}} here denotes the assigned class. A vector presents the labels in the neighbourhood N ( x 0 ) {\displaystyle N(x_{0})} without the pixel x 0 {\displaystyle x_{0}} η ^ = ( θ 1 , θ 2 , … , θ k ) {\displaystyle {\hat {\eta }}=\left(\theta _{1},\theta _{2},\ldots ,\theta _{k}\right)} The neighbourhood: Size of the neighbourhood. There is no limitation of the size, but it is considered to be relatively small for each pixel x 0 {\displaystyle x_{0}} . A reasonable size of neighbourhood would be 3 × 3 {\displaystyle 3\times 3} of 4-connectivity or 8-connectivity ( x 0 {\displaystyle x_{0}} is marked as red and placed in the centre). The calculation: Apply the minimum error classification on a pixel x 0 {\displaystyle x_{0}} , if the probability of a class ω r {\displaystyle \omega _{r}} being presenting the pixel x 0 {\displaystyle x_{0}} is the highest among all, then assign ω r {\displaystyle \omega _{r}} as its class. θ 0 = ω r if P ( ω r ∣ f ( x 0 ) ) = max s = 1 , 2 , … , R P ( ω s ∣ f ( x 0 ) ) {\displaystyle \theta _{0}=\omega _{r}\quad {\text{ if }}\quad P(\omega _{r}\mid f(x_{0}))=\max _{s=1,2,\ldots ,R}P(\omega _{s}\mid f(x_{0}))} The contextual classification rule is described as below, it uses the feature vector x 1 {\displaystyle x_{1}} rather than x 0 {\displaystyle x_{0}} . θ 0 = ω r if P ( ω r ∣ ξ ) = max s = 1 , 2 , … , R P ( ω s ∣ ξ ) {\displaystyle \theta _{0}=\omega _{r}\quad {\text{ if }}\quad P(\omega _{r}\mid \xi )=\max _{s=1,2,\ldots ,R}P(\omega _{s}\mid \xi )} Use the Bayes formula to calculate the posteriori probability P ( ω s ∣ ξ ) {\displaystyle P(\omega _{s}\mid \xi )} P ( ω s ∣ ξ ) = p ( ξ ∣ ω s ) P ( ω s ) p ( ξ ) {\displaystyle P(\omega _{s}\mid \xi )={\frac {p(\xi \mid \omega _{s})P(\omega _{s})}{p\left(\xi \right)}}} The number of vectors is the same as the number of pixels in the image. For the classifier uses a vector corresponding to each pixel x i {\displaystyle x_{i}} , and the vector is generated from the pixel's neighbourhood. The basic steps of contextual image classification: Calculate the feature vector ξ {\displaystyle \xi } for each pixel. Calculate the parameters of probability distribution p ( ξ ∣ ω s ) {\displaystyle p(\xi \mid \omega _{s})} and P ( ω s ) {\displaystyle P(\omega _{s})} Calculate the posterior probabilities P ( ω r ∣ ξ ) {\displaystyle P(\omega _{r}\mid \xi )} and all labels θ 0 {\displaystyle \theta _{0}} . Get the image classification result. == Algorithms == === Template matching === The template matching is a "brute force" implementation of this approach. The concept is first create a set of templates, and then look for small parts in the image match with a template. This method is computationally high and inefficient. It keeps an entire templates list during the whole process and the number of combinations is extremely high. For a m × n {\displaystyle m\times n} pixel image, there could be a maximum of 2 m × n {\displaystyle 2^{m\times n}} combinations, which leads to high computation. This method is a top down method and often called table look-up or dictionary look-up. === Lower-order Markov chain === The Markov chain also can be applied in pattern recognition. The pixels in an image can be recognised as a set of random variables, then use the lower order Markov chain to find the relationship among the pixels. The image is treated as a virtual line, and the method uses conditional probability. === Hilbert space-filling curves === The Hilbert curve runs in a unique pattern through the whole image, it traverses every pixel without visiting any of them twice and keeps a continuous curve. It is fast and efficient. === Markov meshes === The lower-order Markov chain and Hilbert space-filling curves mentioned above are treating the image as a line structure. The Markov meshes however will take the two dimensional information into account. === Dependency tree === The dependency tree is a method using tree dependency to approximate probability distributions.

Perry Rhodan

Perry Rhodan is a German space opera franchise, named after its hero. It commenced in 1961 and has been ongoing for decades, written by an ever-changing team of authors. Having sold approximately two billion copies (in novella format) worldwide (including over one billion in Germany alone), it is the most successful science fiction book series ever written. The first billion of worldwide sales was celebrated in 1986. The series has spun off into comic books, audio dramas, video games and the like. A reboot, Perry Rhodan NEO, was launched in 2011 and began publication in English in April 2021. == Print publication == The series has spun off into many different forms of media, but originated as a serial novella published weekly since 8 September 1961 in the Romanheft (Meaning "Magazine novel") format. These are digest-sized booklets, usually containing 66 pages, the German equivalent of the now-defunct (and generally longer) American pulp magazine. They are published by Pabel-Moewig Verlag, a subsidiary of Bauer Media Group headquartered in Hamburg. As of February 2019, 3000 booklet novels of the original series, 850 spinoff novels of the sister series Atlan and over 400 paperbacks and 200 hardcover editions have been published, totalling over 300,000 pages. == English translation == The first 126 novels (plus five novels of the spinoff series Atlan) were translated into English and published by Ace Books between 1969 and 1978, with the same translations used for the British edition published by Futura Publications which issued only 39 novels. When Ace cancelled its translation of the series, translator Wendayne Ackerman self-published the following 19 novels (under the business name 'Master Publications') and made them available by subscription only. Financial disputes with the German publishers led to the cancellation of the American translation in 1979. An attempt to revive the series in English was made in 1997–1998 by Vector Publications of the US, which published translations of four issues (1800–1803) from the current storyline being published in Germany at the time. The series and its spin-offs have captured a substantial fraction of the original German science fiction output and exert influence on many German writers in the field. == Structure == The series is told in an arc storyline structure. An arc—called a "cycle"—would have anywhere from 25 to 100 issues devoted to it. Similar subsequent cycles are referred to as a "grand-cycle". == History == ‘Perry Rhodan, der Erbe des Universums’ (Eng: ‘The Heir to the Universe’, though the American/British editions instead used the subtitle 'Peacelord of the Universe') was created by German science fiction authors K. H. Scheer and Walter Ernsting and launched in 1961 by German publishing house Arthur Moewig Verlag (now Pabel-Moewig Verlag). Originally planned as a 30 to 50 volume series, it has been published continuously every week since, celebrating the 3000th issue in 2019. Written by an ever-changing team of authors, many of whom, however, remained with the series for decades or life, Perry Rhodan is issued in weekly novella-size installments in the traditional German Heftroman (pulp booklet) format. Unlike most German Heftromane, Perry Rhodan consists not of unconnected novels but is a series with a continuous, increasingly complex plotline, with frequent back references to events. In addition to its original Heftroman form, the series now also appears in hardcovers, paperbacks, e-books, comics and audiobooks. Over the decades there have also been comic strips, numerous collectibles, several encyclopedias, audio plays, inspired music, etc. The series has seen partial translations into several languages. It also spawned the German-Italian-Spanish 1967 movie Mission Stardust, which is widely considered so terrible that many fans of the series pretend it never existed. Coinciding with the 50th-anniversary World Con, on 30 September 2011, a new series named Perry Rhodan Neo began publication, attracting new readers with a reboot of the story, starting in the year 2036 instead of 1971, and a related but independent story-line. On 2 April 2021, light novel and manga publisher J-Novel Club announced Perry Rhodan NEO as a launch title for its new J-Novel Pulp imprint, making this the first ongoing English release of new Perry Rhodan serials in over 20 years. It has become the most popular science fiction book series of all time. == Overview == === Fictional history === The story begins in 1971. During the first human Moon landing by US Space Force Major Perry Rhodan and his crew, they discover a marooned extraterrestrial space ship from the fictional planet Arkon, located in the (real) M13 cluster. Appropriating the Arkonide technology, they proceed to unify Terra and carve out a place for humanity in the galaxy and the cosmos. Two of the accomplishments that enable them to do so are positronic brains and starship drives for near-instantaneous hyperspatial translation. These were directly borrowed from Isaac Asimov's science fiction. As the series progresses, major characters, including the title character, are granted relative immortality. They are immune to age and disease, but not to violent death. The story continues over the course of millennia and includes flashbacks thousands and even millions of years into the past. The scope widens to encompass other galaxies, even more remote regions of space, parallel universes and cosmic structures, time travel, paranormal powers, a variety of aliens ranging from threatening to endearing, and bodiless entities, some of which have godlike powers. === Multiverse === The universe in which the main plot generally takes place is called the Einstein Universe (or "Meekorah"). Its laws are for the most part identical to those of the real universe, as known by late 20th century science. Newer theories about dark matter and dark energy are currently not used in the series. The laws of nature follow old theories that have been disproven, in order to protect series continuity. There are many other universes, each to a greater or lesser extent different from the familiar one, in which, for example one in which time runs slower, an anti-matter universe, a shrinking universe, etc. Each universe possesses its owntimelines, which are for the most part unreachable from each other but may be accessed by special means, thereby itself creating many more parallel timelines. The Einstein Universe is embedded in a high-dimensional manifold, called Hyperspace. This hyperspace consists of several subspaces use for faster-than-light travel by technological means. The exact traits of those higher dimensions are got yhr mode pity unexplained. The border of the universe is a dimension called the deep, once used for construction of the gigantic disc-shaped world Deepland. === Psionic Web and Moral Code === The Psionic Web crosses the whole universe, constantly emitting "vital energy" and "psionic energy", guaranteeing normal (organic among others) life and the wellbeing of higher entities. The Moral Code crosses through all universes, and is linked to the Psionic Web. It is subdivided into the Cosmogenes, which are again subdivided into the Cosmonucleotids. The Cosmonucleotids determine reality and fate for their respective parts of a given universe, via messengers. Higher beings are trying to gain control of this Code to rule reality. The Moral Code itself was not installed by the higher beings, the higher powers by themselves have no clue why or by whom the Code was made. Once the Cosmocrats ordered Perry Rhodan to find the answer to the third ultimate question: "Who initiated the LAW and what does it accomplish?" Perry Rhodan had the chance to receive the answer at the mountain of creation, but refused, as he knew that the answer would destroy his mind. The negative Superintelligence Koltoroc had received the answer to the last ultimate question, 69 million years BC at Negane Mountain, but it is not known if it made any use of the information. === Onion-shell model === An evolutionary schema, similar to the Great Chain of Being, called the "onion-shell model" is employed in relationship to all life. Here, continuous evolution is from lower to higher lifeforms, culminating in bodiless entities. Later in the series, further lifeforms, representing stages between the known shells, were introduced. The main shells are: Lifeless matter Bacteria Higher animals Intelligent species Intelligent species that have contacted other species Superintelligences (SI) Matter sources/ Matter sinks Cosmocrats / Chaotarchs (High Powers) Powers close to the "Horizon of the LAW", the essence of the Multiverse The Superintelligences are the next step above normal minds. They can be born, for example, when a species collectively gives up its bodies and unites their spirits. Such Superintelligences may claim as their domain areas consisting of up to several galaxies (the entity known as "E

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.

AI Snake Oil

AI Snake Oil: What Artificial Intelligence Can Do, What It Can't, and How to Tell the Difference is a 2024 non-fiction book written by scholars Arvind Narayanan and Sayash Kapoor. It is a critique of the tech industry's overly inflated promises and capabilities of artificial intelligence (AI) as well as a debunking of the flawed science fueling AI hype while attempting to outline both the potential positives and negatives that come with different modes of the technology. == Contents == === Publication === The book was published in September 2024 by the Princeton University Press. AI Snake Oil consists of 360 pages and features eight chapters, and sections for acknowledgements, references, and an index. An updated edition with a new preface and epilogue by the authors was published in September 2025. The authors use the term "AI snake oil" derived from the U.S. idiom for a fraudulent remedy, to describe overhyped AI systems. === Chapter one: Introduction === Narayanan and Kapoor argue that many individuals do not yet have the literacy to detect functioning aspects of AI compared to potential snake oil, which they identify as "AI that does not and cannot work as advertised". Some of the major examples utilized by the authors include Allstate's 2013 use of predictive AI, as well as the concern surrounding actors and AI attempting to replicate or use their likeness. Important discussions regarding discrimination are brought up and explored in the first chapter, including the false arrests of six Black individuals due to errors with AI facial recognition tools. The chapter concludes with a comparison to the Industrial Revolution, where Narayanan and Kapoor highlight the extensive human labour that is necessary for artificial intelligence technologies to function. === Chapter two: How Predictive AI Goes Wrong === Chapter two focuses on predictive artificial intelligence, and criticizes the overestimation of the capabilities of the technology. === Chapter three: Why Can't AI Predict the Future? === Chapter three works to inform the reader about the history of early computational prediction attempts, with examples from companies like Simulatics. === Chapter four: The Long Road to Generative AI === The fourth chapter goes in more in-depth in explorations of generative AI. Generative AI software examples include ChatGPT, Midjourney, and DALL-E. The section begins with a positive example of generative AI. As the chapter progresses, the authors begin to provide examples of harm produced by generative AI, including the suicide of a Belgian man after connecting with Chai, a generative chatbot. Issues of deepfakes and preservation of artistic property are also discussed. The use of generative AI to create non-consensual pornographic deepfake content is discussed in relation to female celebrities. === Chapter five: Is Advanced AI an Existential Threat? === The fifth chapter draws attention the AGI, or Artificial General Intelligence. The authors describe AGI as "AI that can perform most or economically relevant tasks as effectively as any human". They summarize that many contributors to the field of artificial intelligence believe AGI to be an impending threat that demands attention. However, they argue that the perceived threat of AGI would only exist if the technology continually functioned reliably. In order to better illustrate the hype surrounding AGI, Narayanan and Kapoor use the Ladder of Generality, which is described as a visual tool in which "each rung represents a way of computing that is more flexible, and more general, than the previous one". They note that we are not yet aware of the next rungs on the ladder, or if the ladder will eventually result in a dead end. The rungs that have been identified so far are as follows: (0, or floor) special purpose hardware, (1) programmable computers, (2) stored program computers, (3) machine learning, (4) deep learning, (5) pretrained models, and, finally, (6) instruction-tuned models. The potential for future rungs and what those rungs might be are currently undetermined. The chapter also discusses the ELIZA effect, which Lawrence Switzky discusses in his article "ELIZA Effects". Switzky attributes the coined term ELIZA Effect to Sherry Turke, who defined it as "our more general tendency to treat responsive computer programs as more intelligent than they really are". === Chapter six: Why Can't AI Fix Social Media? === The sixth chapter focuses on content moderation, why it is important, and how it has been and could be affected by artificial automation. The first issue raised in regard to AI-driven content moderation is the inability for computers and machines to understand context and nuance, resulting in potential for discriminatory moderation and shadow banning. While they note that there are issues with automating content moderation, Narayanan and Kapoor also highlight the psychological impact on human content moderators and their labour. They indicate the hidden labour behind moderation, which is often outsourced to less developed countries, where labourers sort through potentially traumatizing content for pay. However, the discussion focuses more heavily on why automated moderation can be problematic, including discriminatory algorithms and lack of nuance. To balance their argument, issues of discrimination and bias are also discussed in relation the human content moderators. To automate moderation, there are two types of AI used, which are fingerprint matching and machine learning. === Chapter seven: Why Do Myths about AI Persist? === The seventh chapter outlines possible factors that contribute to hype surrounding AI. Narayanan and Kapoor explain how companies often promote their new AI models without properly disclosing how the model works, and what it is learning from. They attribute hype to several different groups, including journalists, researchers, and companies. They explain the impact of companies and the misplaced hype that they spread can be attributed to greed and a desire to grow corporate funds. For journalists, one of the stated sources of hype, they argue that news media has a tendency to prioritize financial incentives over validity and quality of writing. As well, Narayanan and Kapoor point out the emergence of company statement regurgitation in news media, leading to clickbait. Hype from researchers is potentially linked to lack of reproducibility in studies as well as leakage, which occurs when AI models are tested on their training data. === Chapter eight: Where do we go from here? === The final chapter, chapter eight, turns its attention to the future. The authors express their ideas and predictions for how the technology will evolve and be utilized in the upcoming years. == Authors == Author Narayanan is a computer science professor at Princeton University. Kapoor is a doctoral candidate at the same university, and both scholars are located at the Center for Information Technology at Princeton. In 2023, Narayanan and Kapoor appeared on the TIME100 Artificial Intelligence list, which features influential figures in the field. == Reception == Nature, a science and technology peer-reviewed journal, released an article highlighting the top "10 essential reads from the past year", listing Arvind Narayanan and Sayash Kapoor's AI Snake Oil. The article states the that text is "one of the best on this controversial subject". Elizabeth Quill, in her review of the text in Science News, writes that the authors "squarely achieve their stated goal: to empower people to distinguish AI that works well from AI snake oil". Joshua Rothman of The New Yorker writes that "compared with many technologists, Narayanan, Kapoor, and Vallor [Shannon Vallor, University of Edinburgh], are deeply skeptical about today's A.I. technology and what it can achieve. Perhaps they shouldn't be". Rothman argues, following an interview with prominent computer scientist Geoffrey Hinton of University of Toronto, that the potential for AI to replicate complexity is already here and continues to be heavily funded, enhancing the prospective capabilities of the technology. However, he does praise the author's ability to address questions regarding the existential human experience. Alexya Martinez discusses the text in a book review for Journalism and Mass Communication Quarterly, critiquing AI Snake Oil for its extensive focus on the West. Martinez writes that Narayanan and Kapoor "do not fully explore how AI impacts other countries", and suggests more focus on countries outside of the United States to enhance their argument.

Display list

A display list, also called a command list in Direct3D 12 and a command buffer in Vulkan, is a series of graphics commands or instructions that are run when the list is executed. Systems that make use of display list functionality are called retained mode systems, while systems that do not are as opposed to immediate mode systems. In OpenGL, display lists are useful to redraw the same geometry or apply a set of state changes multiple times. This benefit is also used with Direct3D 12's bundle command lists. In Direct3D 12 and Vulkan, display lists are regularly used for per-frame recording and execution. == Origins in vector displays == The vector monitors or calligraphic displays of the 1960s and 1970s used electron beam deflection to draw line segments, points, and sometimes curves directly on a CRT screen. Because the image would immediately fade, it needed to be redrawn many times a second (storage tube CRTs retained the image until blanked, but they were unsuitable for interactive graphics). To refresh the display, a dedicated CPU called a Display Processor or Display Processing Unit (DPU) was used, which had a memory buffer for a "display list", "display file", or "display program" containing line segment coordinates and other information. Advanced Display Processors also supported control flow instructions, which were useful for drawing repetitive graphics such as text, and some could perform coordinate transformations such as 3D projection. == Home computer display list functionality == One of the earliest systems with a true display list was the Atari 8-bit computers. The display list (actually called so in Atari terminology) is a series of instructions for ANTIC, the video co-processor used in these machines. This program, stored in the computer's memory and executed by ANTIC in real-time, can specify blank lines, any of six text modes and eight graphics modes, which sections of the screen can be horizontally or vertically fine-scrolled, and trigger Display List Interrupts (called raster interrupts or HBI on other systems). The Amstrad PCW family contains a Display List function called the 'Roller RAM'. This is a 512-byte RAM area consisting of 256 16-bit pointers in RAM, one for each line of the 720 × 256 pixel display. Each pointer identifies the location of 90 bytes of monochrome pixels that hold the line's 720 pixel states. The 90 bytes of 8 pixel states are spaced at 8-byte intervals, so there are 7 unused bytes between each byte of pixel data. This suits how the text-orientated PCW constructs a typical screen buffer in RAM, where the first character's 8 rows are stored in the first 8 bytes, the second character's rows in the next 8 bytes, and so on. The Roller RAM was implemented to speed up display scrolling as it would have been unacceptably slow for its 3.4 MHz Z80 to move up the 23 KB display buffer 'by hand' i.e. in software. The Roller RAM starting entry used at the beginning of a screen refresh is controlled by a Z80-writable I/O register. Therefore, the screen can be scrolled simply by changing this I/O register. Another system using a Display List-like feature in hardware is the Amiga, which, not coincidentally, was also designed by some of the same people who developed the custom hardware for the Atari 8-bit computers. Once directed to produce a display mode, it would continue to do so automatically for every following scan line. The computer also included a dedicated co-processor, called "Copper", which ran a simple program or 'Copper List' intended for modifying hardware registers in sync with the display. The Copper List instructions could direct the Copper to wait for the display to reach a specific position on the screen, and then change the contents of hardware registers. In effect, it was a processor dedicated to servicing raster interrupts. The Copper was used by Workbench to mix multiple display modes (multiple resolutions and color palettes on the monitor at the same time), and by numerous programs to create rainbow and gradient effects on the screen. The Amiga Copper was also capable of reconfiguring the sprite engine mid-frame, with only one scanline of delay. This allowed the Amiga to draw more than its 8 hardware sprites, so long as the additional sprites did not share scanlines (or the one scanline gap) with more than 7 other sprites. i.e., so long as at least one sprite had finished drawing, another sprite could be added below it on the screen. Additionally, the later 32-bit AGA chipset allowed the drawing of bigger sprites (more pixels per row) while retaining the same multiplexing. The Amiga also had dedicated block-shifter ("blitter") hardware, which could draw larger objects into a framebuffer. This was often used in place of, or in addition to, sprites. In more primitive systems, the results of a display list can be simulated, though at the cost of CPU-intensive writes to certain display modes, color control, or other visual effect registers in the video device, rather than a series of rendering commands executed by the device. Thus, one must create the displayed image using some other rendering process, either before or while the CPU-driven display generation executes. In many cases, the image is also modified or re-rendered between frames. The image is then displayed in various ways, depending on the exact way in which the CPU-driven display code is implemented. Examples of the results possible on these older machines requiring CPU-driven video include effects such as Commodore 64/128's FLI mode, or Rainbow Processing on the ZX Spectrum. == Usage in OpenGL == To delimit a display list, the glNewList and glEndList functions are used, and to execute the list, the glCallList function is used. Almost all rendering commands that occur between the function calls are stored in the display list. Commands that affect the client state are not stored in display lists. Display lists are named with an integer value, and creating a display list with the same name as one already created overrides the first. The glNewList function expects two arguments: an integer representing the name of the list, and an enumeration for the compilation mode. The two modes include GL_COMPILE_AND_EXECUTE, which compiles and immediately executes, and GL_COMPILE, which only compiles the list. Display lists enable the use of the retained mode rendering pattern, which is a system in which graphics commands are recorded (retained) to execute in succession at a later time. This is contrary to immediate mode, where graphics commands are immediately executed on client calls. == Usage in Direct3D 12 == Command lists are created using the ID3D12Device::CreateCommandList function. Command lists may be created in several types: direct, bundle, compute, copy, video decode, video process, and video encoding. Direct command lists specify that a command list the GPU can execute, and doesn't inherit any GPU state. Bundles, are best used for storing and executing small sets of commands any number of times. This is used differently than regular command lists, where commands stored in a command list are typically executed only once. Compute command lists are used for general computations, with a common use being calculating mipmaps. A copy command list is strictly for copying and the video decode and video process command lists are for video decoding and processing respectively. Upon creation, command lists are in the recording state. Command lists may be re-used by calling the ID3D12GraphicsCommandList::Reset function. After recording commands, the command list must be transitioned out of the recording state by calling ID3D12GraphicsCommandList::Close. The command list is then executed by calling ID3D12CommandQueue::ExecuteCommandLists.

Sugeno integral

In mathematics, the Sugeno integral, introduced by Michio Sugeno as a fuzzy integral in work on fuzzy measures at the Tokyo Institute of Technology, is a type of integral with respect to a fuzzy measure. Let ( X , Ω ) {\displaystyle (X,\Omega )} be a measurable space and let h : X → [ 0 , 1 ] {\displaystyle h:X\to [0,1]} be an Ω {\displaystyle \Omega } -measurable function. The Sugeno integral over the crisp set A ⊆ X {\displaystyle A\subseteq X} of the function h {\displaystyle h} with respect to the fuzzy measure g {\displaystyle g} is defined by: ∫ A h ( x ) ∘ g = sup E ⊆ X [ min ( min x ∈ E h ( x ) , g ( A ∩ E ) ) ] = sup α ∈ [ 0 , 1 ] [ min ( α , g ( A ∩ F α ) ) ] {\displaystyle \int _{A}h(x)\circ g={\sup _{E\subseteq X}}\left[\min \left(\min _{x\in E}h(x),g(A\cap E)\right)\right]={\sup _{\alpha \in [0,1]}}\left[\min \left(\alpha ,g(A\cap F_{\alpha })\right)\right]} where F α = { x | h ( x ) ≥ α } {\displaystyle F_{\alpha }=\left\{x|h(x)\geq \alpha \right\}} . The Sugeno integral over the fuzzy set A ~ {\displaystyle {\tilde {A}}} of the function h {\displaystyle h} with respect to the fuzzy measure g {\displaystyle g} is defined by: ∫ A h ( x ) ∘ g = ∫ X [ h A ( x ) ∧ h ( x ) ] ∘ g {\displaystyle \int _{A}h(x)\circ g=\int _{X}\left[h_{A}(x)\wedge h(x)\right]\circ g} where h A ( x ) {\displaystyle h_{A}(x)} is the membership function of the fuzzy set A ~ {\displaystyle {\tilde {A}}} . == Usage and Relationships == Sugeno integral is related to h-index.