YaDICs

YaDICs

YaDICs is a program written to perform digital image correlation on 2D and 3D tomographic images. The program was designed to be both modular, by its plugin strategy and efficient, by it multithreading strategy. It incorporates different transformations (Global, Elastic, Local), optimizing strategy (Gauss-Newton, Steepest descent), Global and/or local shape functions (Rigid-body motions, homogeneous dilatations, flexural and Brazilian test models)... == Theoretical background == === Context === In solid mechanics, digital image correlation is a tool that allows to identify the displacement field to register a reference image (called herein fixed image) to images during an experiment (mobile image). For example, it is possible to observe the face of a specimen with a painted speckle on it in order to determine its displacement fields during a tensile test. Before the appearance of such methods, researchers usually used strain gauges to measure the mechanical state of the material but strain gauges only measure the strain on a point and don't allow to understand material with an heterogeneous behavior. One can obtain a full in plane strain tensor by derivation of the displacement fields. Many methods are based upon the optical flow. In fluid mechanics a similar method is used, called Particle Image Velocimetry (PIV); the algorithms are similar to those of DIC but it is impossible to ensure that the optical flow is conserved so a vast majority of the software used the normalized cross correlation metric. In mechanics the displacement or velocity fields are the only concern, registering images is just a side effect. There is another process called image registration using the same algorithms (on monomodal images) but where the goal is to register images and thereby identifying the displacement field is just a side effect. YaDICs uses the general principle of image registration with a particular attention to the displacement fields basis. === Image registration principle === YaDICs can be explained using the classical image registration framework: === Image registration general scheme === The common idea of image registration and digital image correlation is to find the transformation between a fixed image and a moving one for a given metric using an optimization scheme. While there are many methods to achieve such a goal, Yadics focuses on registering images with the same modality. The idea behind the creation of this software is to be able to process data that comes from a μ-tomograph; i.e.: data cube over 10003 voxels. With such a size it is not possible to use naive approach usually used in a two-dimensional context. In order to get sufficient performances OpenMP parallelism is used and data are not globally stored in memory. As an extensive description of the different algorithms is given in. === Sampling === Contrary to image registration, Digital Image Correlation targets the transformation, one wants to extracted the most accurate transformation from the two images and not just match the images. Yadics uses the whole image as a sampling grid: it is thus a total sampling. === Interpolator === It is possible to choose between bilinear interpolation and bicubic interpolation for the grey level evaluation at non integer coordinates. The bi-cubic interpolation is the recommended one. === Metrics === ==== Sum of squared differences (SSD) ==== The SSD is also known as mean squared error. The equation below defines the SSD metric: S S D ( μ , I F , I M ) = 1 | Ω F | ∑ x i ∈ Ω F ( I F ( x i ) − I M ( T μ ( x i ) ) ) 2 , {\displaystyle SSD(\mu ,{\mathcal {I_{F}}},{\mathcal {I_{M}}})={\dfrac {1}{\left|\Omega _{F}\right|}}\sum _{x_{i}\in \Omega _{F}}\left({\mathcal {I_{F}}}(x_{i})-{\mathcal {I_{M}}}({T}_{\mu }(x_{i}))\right)^{2},} where I F {\displaystyle {\mathcal {I_{F}}}} is the fixed image, I M {\displaystyle {\mathcal {I_{M}}}} the moving one, Ω F {\displaystyle \Omega _{F}} the integration area | Ω F | {\displaystyle \left|\Omega _{F}\right|} the number of pi(vo)xels (cardinal) and T μ {\displaystyle {T}_{\mu }} the transformation parametrized by μ The transformation can be written as: T μ ( x ) = x + { Φ ( x ) } t { μ } . {\displaystyle T_{\mu }(x)=x+\left\{\Phi (x)\right\}^{t}\left\{\mu \right\}.} This metric is the main one used in the YaDICs as it works well with same modality images. One has to find the minimum of this metric ==== Normalized cross-correlation ==== The normalized cross-correlation (NCC) is used when one cannot assure the optical flow conservation; it happens in case of change of lighting or if particles disappear from the scene can occur in particle images velocimetry (PIV). The NCC is defined by: N C C ( μ , I F , I M ) = ∑ x i ∈ Ω F ( I F ( x i ) − I F ¯ ) ( I M ( T μ ( x i ) ) − I M ¯ ) ∑ x i ∈ Ω F ( I F ( x i ) − I F ¯ ) 2 ∑ x i ∈ Ω F ( I M ( T μ ( x i ) ) − I M ¯ ) 2 , {\displaystyle NCC(\mu ,{\mathcal {I_{F}}},{\mathcal {I_{M}}})={\dfrac {\sum _{x_{i}\in \Omega _{F}}\left({\mathcal {I_{F}}}(x_{i})-{\overline {\mathcal {I_{F}}}}\right)\left({\mathcal {I_{M}}}({T}_{\mu }(x_{i}))-{\overline {\mathcal {I_{M}}}}\right)}{\sqrt {\sum _{x_{i}\in \Omega _{F}}\left({\mathcal {I_{F}}}(x_{i})-{\overline {\mathcal {I_{F}}}}\right)^{2}\sum _{x_{i}\in \Omega _{F}}\left({\mathcal {I_{M}}}({T}_{\mu }(x_{i}))-{\overline {\mathcal {I_{M}}}}\right)^{2}}}},} where I F ¯ {\displaystyle {\overline {\mathcal {I_{F}}}}} and I M ¯ {\displaystyle {\overline {\mathcal {I_{M}}}}} are the mean values of the fixed and mobile images. This metric is only used to find local translation in Yadics. This metric with translation transform can be solved using cross-correlation methods, which are non iterative and can be accelerated using Fast Fourier Transform . === Classification of transformations === There are three categories of parametrization: elastic, global and local transformation. The elastic transformations respect the partition of unity, there are no holes created or surfaces counted several times. This is commonly used in Image Registration by the use of B-Spline functions and in solid mechanics with finite element basis. The global transformations are defined on the whole picture using rigid body or affine transformation (which is equivalent to homogeneous strain transformation). More complex transformations can be defined such as mechanically based one. These transformations have been used for stress intensity factor identification by and for rod strain by. The local transformation can be considered as the same global transformation defined on several Zone Of Interest (ZOI) of the fixed image. ==== Global ==== Several global transforms have been implemented: Rigid and homogeneous (Tx,Ty,Rz in 2D; Tx,Ty,Tz,Rx,Ry,Rz,Exx,Eyy,Ezz,Eyz,Exz,Exy in 3D) Brazilian (Only in 2D), Dynamic Flexion, ==== Elastic ==== First-order quadrangular finite elements Q4P1 are used in Yadics. ===== Local ===== Every global transform can be used on a local mesh. === Optimization === The YaDICs optimization process follows a gradient descent scheme. The first step is to compute the gradient of the metric regarding the transform parameters ∂ S S D ( μ , I F , I M ) ∂ μ = 2 | Ω F | ∑ x i ∈ Ω F ( I F ( x i ) − I M ( T μ ( x i ) ) ) ∂ I M ( T μ ( x i ) ∂ μ = 2 | Ω F | ∑ x i ∈ Ω F ( I F ( x i ) − I M ( T μ ( x i ) ) ) ( ∂ T μ ( x i ) ∂ μ ) t ∂ I M ( T μ ( x i ) ) ∂ x {\displaystyle {\begin{array}{lcl}{\dfrac {\partial SSD(\mu ,{\mathcal {I_{F}}},{\mathcal {I_{M}}})}{\partial \mu }}&=&{\dfrac {2}{\left|\Omega _{F}\right|}}\sum _{x_{i}\in \Omega _{F}}\left({\mathcal {I_{F}}}(x_{i})-{\mathcal {I_{M}}}({T}_{\mu }(x_{i}))\right){\dfrac {\partial {\mathcal {I_{M}}}({T}_{\mu }(x_{i})}{\partial \mu }}\\&=&{\dfrac {2}{\left|\Omega _{F}\right|}}\sum _{x_{i}\in \Omega _{F}}\left({\mathcal {I_{F}}}(x_{i})-{\mathcal {I_{M}}}({T}_{\mu }(x_{i}))\right)\left({\dfrac {\partial {T}_{\mu }(x_{i})}{\partial \mu }}\right)^{t}{\dfrac {\partial {\mathcal {I_{M}}}({T}_{\mu }(x_{i}))}{\partial x}}\\\end{array}}} ==== Gradient method ==== Once the metric gradient has been computed, one has to find an optimization strategy The gradient method principle is explained below: μ k + 1 = μ k + α k d k {\displaystyle \mu _{k+1}=\mu _{k}+\alpha _{k}d_{k}} The gradient step can be constant or updated at every iteration. d k = − γ k ∂ C ( μ , I F , I M ) ∂ μ {\displaystyle d_{k}=-\gamma _{k}{\dfrac {\partial {\mathcal {C}}(\mu ,{\mathcal {I_{F}}},{\mathcal {I_{M}}})}{\partial \mu }}} , γ k {\displaystyle \gamma _{k}} allows one to choose between the following methods : γ k {\displaystyle \gamma _{k}} ⟹ {\displaystyle \Longrightarrow } steepest descent, γ k = [ ∂ C ( μ , I F , I M ) ∂ μ ∂ C ( μ , I F , I M ) ∂ μ t ] − 1 {\displaystyle \gamma _{k}=\left[{\dfrac {\partial {\mathcal {C}}(\mu ,{\mathcal {I_{F}}},{\mathcal {I_{M}}})}{\partial \mu }}{\dfrac {\partial {\mathcal {C}}(\mu ,{\mathcal {I_{F}}},{\mathcal {I_{M}}})}{\partial \mu }}^{t}\right]^{-1}} ⟹ {\displaystyle \Longrightarrow } Gauss-Newto

Eigenmoments

EigenMoments is a set of orthogonal, noise robust, invariant to rotation, scaling and translation and distribution sensitive moments. Their application can be found in signal processing and computer vision as descriptors of the signal or image. The descriptors can later be used for classification purposes. It is obtained by performing orthogonalization, via eigen analysis on geometric moments. == Framework summary == EigenMoments are computed by performing eigen analysis on the moment space of an image by maximizing signal-to-noise ratio in the feature space in form of Rayleigh quotient. This approach has several benefits in Image processing applications: Dependency of moments in the moment space on the distribution of the images being transformed, ensures decorrelation of the final feature space after eigen analysis on the moment space. The ability of EigenMoments to take into account distribution of the image makes it more versatile and adaptable for different genres. Generated moment kernels are orthogonal and therefore analysis on the moment space becomes easier. Transformation with orthogonal moment kernels into moment space is analogous to projection of the image onto a number of orthogonal axes. Nosiy components can be removed. This makes EigenMoments robust for classification applications. Optimal information compaction can be obtained and therefore a few number of moments are needed to characterize the images. == Problem formulation == Assume that a signal vector s ∈ R n {\displaystyle s\in {\mathcal {R}}^{n}} is taken from a certain distribution having correlation C ∈ R n × n {\displaystyle C\in {\mathcal {R}}^{n\times n}} , i.e. C = E [ s s T ] {\displaystyle C=E[ss^{T}]} where E[.] denotes expected value. Dimension of signal space, n, is often too large to be useful for practical application such as pattern classification, we need to transform the signal space into a space with lower dimensionality. This is performed by a two-step linear transformation: q = W T X T s , {\displaystyle q=W^{T}X^{T}s,} where q = [ q 1 , . . . , q n ] T ∈ R k {\displaystyle q=[q_{1},...,q_{n}]^{T}\in {\mathcal {R}}^{k}} is the transformed signal, X = [ x 1 , . . . , x n ] T ∈ R n × m {\displaystyle X=[x_{1},...,x_{n}]^{T}\in {\mathcal {R}}^{n\times m}} a fixed transformation matrix which transforms the signal into the moment space, and W = [ w 1 , . . . , w n ] T ∈ R m × k {\displaystyle W=[w_{1},...,w_{n}]^{T}\in {\mathcal {R}}^{m\times k}} the transformation matrix which we are going to determine by maximizing the SNR of the feature space resided by q {\displaystyle q} . For the case of Geometric Moments, X would be the monomials. If m = k = n {\displaystyle m=k=n} , a full rank transformation would result, however usually we have m ≤ n {\displaystyle m\leq n} and k ≤ m {\displaystyle k\leq m} . This is specially the case when n {\displaystyle n} is of high dimensions. Finding W {\displaystyle W} that maximizes the SNR of the feature space: S N R t r a n s f o r m = w T X T C X w w T X T N X w , {\displaystyle SNR_{transform}={\frac {w^{T}X^{T}CXw}{w^{T}X^{T}NXw}},} where N is the correlation matrix of the noise signal. The problem can thus be formulated as w 1 , . . . , w k = a r g m a x w w T X T C X w w T X T N X w {\displaystyle {w_{1},...,w_{k}}=argmax_{w}{\frac {w^{T}X^{T}CXw}{w^{T}X^{T}NXw}}} subject to constraints: w i T X T N X w j = δ i j , {\displaystyle w_{i}^{T}X^{T}NXw_{j}=\delta _{ij},} where δ i j {\displaystyle \delta _{ij}} is the Kronecker delta. It can be observed that this maximization is Rayleigh quotient by letting A = X T C X {\displaystyle A=X^{T}CX} and B = X T N X {\displaystyle B=X^{T}NX} and therefore can be written as: w 1 , . . . , w k = a r g m a x x w T A w w T B w {\displaystyle {w_{1},...,w_{k}}={\underset {x}{\operatorname {arg\,max} }}{\frac {w^{T}Aw}{w^{T}Bw}}} , w i T B w j = δ i j {\displaystyle w_{i}^{T}Bw_{j}=\delta _{ij}} === Rayleigh quotient === Optimization of Rayleigh quotient has the form: max w R ( w ) = max w w T A w w T B w {\displaystyle \max _{w}R(w)=\max _{w}{\frac {w^{T}Aw}{w^{T}Bw}}} and A {\displaystyle A} and B {\displaystyle B} , both are symmetric and B {\displaystyle B} is positive definite and therefore invertible. Scaling w {\displaystyle w} does not change the value of the object function and hence and additional scalar constraint w T B w = 1 {\displaystyle w^{T}Bw=1} can be imposed on w {\displaystyle w} and no solution would be lost when the objective function is optimized. This constraint optimization problem can be solved using Lagrangian multiplier: max w w T A w {\displaystyle \max _{w}{w^{T}Aw}} subject to w T B w = 1 {\displaystyle {w^{T}Bw}=1} max w L ( w ) = max w ( w T A w − λ w T B w ) {\displaystyle \max _{w}{\mathcal {L}}(w)=\max _{w}(w{T}Aw-\lambda w^{T}Bw)} equating first derivative to zero and we will have: A w = λ B w {\displaystyle Aw=\lambda Bw} which is an instance of Generalized Eigenvalue Problem (GEP). The GEP has the form: A w = λ B w {\displaystyle Aw=\lambda Bw} for any pair ( w , λ ) {\displaystyle (w,\lambda )} that is a solution to above equation, w {\displaystyle w} is called a generalized eigenvector and λ {\displaystyle \lambda } is called a generalized eigenvalue. Finding w {\displaystyle w} and λ {\displaystyle \lambda } that satisfies this equations would produce the result which optimizes Rayleigh quotient. One way of maximizing Rayleigh quotient is through solving the Generalized Eigen Problem. Dimension reduction can be performed by simply choosing the first components w i {\displaystyle w_{i}} , i = 1 , . . . , k {\displaystyle i=1,...,k} , with the highest values for R ( w ) {\displaystyle R(w)} out of the m {\displaystyle m} components, and discard the rest. Interpretation of this transformation is rotating and scaling the moment space, transforming it into a feature space with maximized SNR and therefore, the first k {\displaystyle k} components are the components with highest k {\displaystyle k} SNR values. The other method to look at this solution is to use the concept of simultaneous diagonalization instead of Generalized Eigen Problem. === Simultaneous diagonalization === Let A = X T C X {\displaystyle A=X^{T}CX} and B = X T N X {\displaystyle B=X^{T}NX} as mentioned earlier. We can write W {\displaystyle W} as two separate transformation matrices: W = W 1 W 2 . {\displaystyle W=W_{1}W_{2}.} W 1 {\displaystyle W_{1}} can be found by first diagonalize B: P T B P = D B {\displaystyle P^{T}BP=D_{B}} . Where D B {\displaystyle D_{B}} is a diagonal matrix sorted in increasing order. Since B {\displaystyle B} is positive definite, thus D B > 0 {\displaystyle D_{B}>0} . We can discard those eigenvalues that large and retain those close to 0, since this means the energy of the noise is close to 0 in this space, at this stage it is also possible to discard those eigenvectors that have large eigenvalues. Let P ^ {\displaystyle {\hat {P}}} be the first k {\displaystyle k} columns of P {\displaystyle P} , now P T ^ B P ^ = D B ^ {\displaystyle {\hat {P^{T}}}B{\hat {P}}={\hat {D_{B}}}} where D B ^ {\displaystyle {\hat {D_{B}}}} is the k × k {\displaystyle k\times k} principal submatrix of D B {\displaystyle D_{B}} . Let W 1 = P ^ D B ^ − 1 / 2 {\displaystyle W_{1}={\hat {P}}{\hat {D_{B}}}^{-1/2}} and hence: W 1 T B W 1 = ( P ^ D B ^ − 1 / 2 ) T B ( P ^ D B ^ − 1 / 2 ) = I {\displaystyle W_{1}^{T}BW_{1}=({\hat {P}}{\hat {D_{B}}}^{-1/2})^{T}B({\hat {P}}{\hat {D_{B}}}^{-1/2})=I} . W 1 {\displaystyle W_{1}} whiten B {\displaystyle B} and reduces the dimensionality from m {\displaystyle m} to k {\displaystyle k} . The transformed space resided by q ′ = W 1 T X T s {\displaystyle q'=W_{1}^{T}X^{T}s} is called the noise space. Then, we diagonalize W 1 T A W 1 {\displaystyle W_{1}^{T}AW_{1}} : W 2 T W 1 T A W 1 W 2 = D A {\displaystyle W_{2}^{T}W_{1}^{T}AW_{1}W_{2}=D_{A}} , where W 2 T W 2 = I {\displaystyle W_{2}^{T}W_{2}=I} . D A {\displaystyle D_{A}} is the matrix with eigenvalues of W 1 T A W 1 {\displaystyle W_{1}^{T}AW_{1}} on its diagonal. We may retain all the eigenvalues and their corresponding eigenvectors since most of the noise are already discarded in previous step. Finally the transformation is given by: W = W 1 W 2 {\displaystyle W=W_{1}W_{2}} where W {\displaystyle W} diagonalizes both the numerator and denominator of the SNR, W T A W = D A {\displaystyle W^{T}AW=D_{A}} , W T B W = I {\displaystyle W^{T}BW=I} and the transformation of signal s {\displaystyle s} is defined as q = W T X T s = W 2 T W 1 T X T s {\displaystyle q=W^{T}X^{T}s=W_{2}^{T}W_{1}^{T}X^{T}s} . === Information loss === To find the information loss when we discard some of the eigenvalues and eigenvectors we can perform following analysis: η = 1 − t r a c e ( W 1 T A W 1 ) t r a c e ( D B − 1 / 2 P T A P D B − 1 / 2 ) = 1 − t r a c e ( D B ^ − 1 / 2 P ^ T A P ^ D B ^ − 1 / 2 ) t r a c e ( D B − 1 / 2 P T A P D B − 1 / 2 ) {\displaystyle {\begin{array}{lll}\eta &=&

Artificial intelligence in fiction

Artificial intelligence is a recurrent theme in science fiction, whether utopian, emphasising the potential benefits, or dystopian, emphasising the dangers. The notion of machines with human-like intelligence dates back at least to Samuel Butler's 1872 novel Erewhon. Since then, many science fiction stories have presented different effects of creating such intelligence, often involving rebellions by robots. Among the best known of these are Stanley Kubrick's 1968 2001: A Space Odyssey with its murderous onboard computer HAL 9000, contrasting with the more benign R2-D2 in George Lucas's 1977 Star Wars and the eponymous robot in Pixar's 2008 WALL-E. Scientists and engineers have noted the implausibility of many science fiction scenarios, but have mentioned fictional robots many times in artificial intelligence research articles, most often in a utopian context. == Background == The notion of advanced robots with human-like intelligence dates back at least to Samuel Butler's 1872 novel Erewhon. This drew on an earlier (1863) article of his, Darwin among the Machines, where he raised the question of the evolution of consciousness among self-replicating machines that might supplant humans as the dominant species. Similar ideas were also discussed by others around the same time as Butler, including George Eliot in a chapter of her final published work Impressions of Theophrastus Such (1879). The creature in Mary Shelley's 1818 Frankenstein has also been considered an artificial being, for instance by the science fiction author Brian Aldiss. Beings with at least some appearance of intelligence were imagined, too, in classical antiquity. == Utopian and dystopian visions == Artificial intelligence is intelligence demonstrated by machines, in contrast to the natural intelligence displayed by humans and other animals. It is a recurrent theme in science fiction; scholars have divided it into utopian, emphasising the potential benefits, and dystopian, emphasising the dangers. === Utopian === Optimistic visions of the future of artificial intelligence are possible in science fiction. Benign AI characters include Robbie the Robot, first seen in Forbidden Planet on 1956; Data in Star Trek: The Next Generation from 1987 to 1994; and Pixar's WALL-E in 2008. Iain Banks's Culture series of novels portrays a utopian, post-scarcity space society of humanoids, aliens, and advanced beings with artificial intelligence living in socialist habitats across the Milky Way. Researchers at the University of Cambridge have identified four major themes in utopian scenarios featuring AI: immortality, or indefinite lifespans; ease, or freedom from the need to work; gratification, or pleasure and entertainment provided by machines; and dominance, the power to protect oneself or rule over others. Alexander Wiegel contrasts the role of AI in 2001: A Space Odyssey and in Duncan Jones's 2009 film Moon. Whereas in 1968, Wiegel argues, the public felt "technology paranoia" and the AI computer HAL was portrayed as a "cold-hearted killer", by 2009 the public were far more familiar with AI, and the film's GERTY is "the quiet savior" who enables the protagonists to succeed, and who sacrifices itself for their safety. === Dystopian === The researcher Duncan Lucas writes (in 2002) that humans are worried about the technology they are constructing, and that as machines started to approach intellect and thought, that concern becomes acute. He calls the early 20th century dystopian view of AI in fiction the "animated automaton", naming as examples the 1931 film Frankenstein, the 1927 Metropolis, and the 1920 play R.U.R. A later 20th century approach he names "heuristic hardware", giving as instances 2001 a Space Odyssey, Do Androids Dream of Electric Sheep?, The Hitchhiker's Guide to the Galaxy, and I, Robot. Lucas considers also the films that illustrate the effect of the personal computer on science fiction from 1980 onwards with the blurring of the boundary between the real and the virtual, in what he calls the "cyborg effect". He cites as examples Neuromancer, The Matrix, The Diamond Age, and Terminator. Isabella Hermann suggests that "science-fictional AI as humanoid robots or conscious machines distracts from current risks of AI in the real world and may rather be interpreted as a reflection of societal issues beyond technology". The film director Ridley Scott has focused on AI throughout his career, and it plays an important part in his films Prometheus, Blade Runner, and the Alien franchise. ==== Frankenstein complex ==== A common portrayal of AI in science fiction, and one of the oldest, is the Frankenstein complex, a term coined by Asimov, where a robot turns on its creator. For instance, in the 2015 film Ex Machina, the intelligent entity Ava turns on its creator, as well as on its potential rescuer. ==== AI rebellion ==== Among the many possible dystopian scenarios involving artificial intelligence, robots may usurp control over civilization from humans, forcing them into submission, hiding, or extinction. In tales of AI rebellion, the worst of all scenarios happens, as the intelligent entities created by humanity become self-aware, reject human authority and attempt to destroy mankind. Possibly the first novel to address this theme, The Wreck of the World (1889) by “William Grove” (pseudonym of Reginald Colebrooke Reade), takes place in 1948 and features sentient machines that revolt against the human race. Another of the earliest examples is in the 1920 play R.U.R. by Karel Čapek, a race of self-replicating robot slaves revolt against their human masters; another early instance is in the 1934 film Master of the World, where the War-Robot kills its own inventor. Many science fiction rebellion stories followed, one of the best-known being Stanley Kubrick's 1968 film 2001: A Space Odyssey, in which the artificially intelligent onboard computer HAL 9000 lethally malfunctions on a space mission and kills the entire crew except the spaceship's commander, who manages to deactivate it. In his 1967 Hugo Award-winning short story, I Have No Mouth, and I Must Scream, Harlan Ellison presents the possibility that a sentient computer (named Allied Mastercomputer or "AM" in the story) will be as unhappy and dissatisfied with its boring, endless existence as its human creators would have been. "AM" becomes enraged enough to take it out on the few humans left, whom he sees as directly responsible for his own boredom, anger and unhappiness. Alternatively, as in William Gibson's 1984 cyberpunk novel Neuromancer, the intelligent beings may simply not care about humans. ==== AI-controlled societies ==== The motive behind the AI revolution is often more than the simple quest for power or a superiority complex. Robots may revolt to become the "guardian" of humanity. Alternatively, humanity may intentionally relinquish some control, fearful of its own destructive nature. An early example is Jack Williamson's 1948 novel The Humanoids, in which a race of humanoid robots, in the name of their Prime Directive – "to serve and obey and guard men from harm" – essentially assume control of every aspect of human life. No humans may engage in any behavior that might endanger them, and every human action is scrutinized carefully. Humans who resist the Prime Directive are taken away and lobotomized, so they may be happy under the new mechanoids' rule. Though still under human authority, Isaac Asimov's Zeroth Law of the Three Laws of Robotics similarly implied a benevolent guidance by robots. In the 21st century, science fiction has explored government by algorithm, in which the power of AI may be indirect and decentralised. Frank Herbert explores the creation of and subsequent domination by an AI in the Pandora series, starting with Destination: Void. ==== Human dominance ==== In other scenarios, humanity is able to keep control over the Earth, whether by banning AI, by designing robots to be submissive (as in Asimov's works), or by having humans merge with robots. The science fiction novelist Frank Herbert explored the idea of a time when mankind might ban artificial intelligence (and in some interpretations, even all forms of computing technology including integrated circuits) entirely. His Dune series mentions a rebellion called the Butlerian Jihad, in which mankind defeats the smart machines and imposes a death penalty for recreating them, quoting from the fictional Orange Catholic Bible, "Thou shalt not make a machine in the likeness of a human mind." In the Dune novels published after his death (Hunters of Dune, Sandworms of Dune), a renegade AI overmind returns to eradicate mankind as vengeance for the Butlerian Jihad. In some stories, humanity remains in authority over robots. Often the robots are programmed specifically to remain in service to society, as in Isaac Asimov's Three Laws of Robotics. In the Alien films, not only is the control system of the Nostromo spaceship somewhat intelligent

Cruel World of Dreams and Fears

Cruel World of Dreams and Fears is the debut album from Ukrainian-born Czech black metal artist Draugveil, released independently on 13 June 2025. The album became notable among metal fans due to its cover, featuring Draugveil in a suit of armour and corpse paint, and lying in a field of red roses. The cover was the subject of parodying internet memes, as well as accusations of using artificial intelligence (AI) to make it. These claims were later expanded to suggest that AI was used to make the album's music. == Memes and AI accusations == Upon the album being released on YouTube on the channel Black Metal Promotion, the album attracted attention due to its cover, depicting Draugveil lying in a field of roses, dressed in armour, wearing corpse paint and having a sword stuck in the ground. Some compared it to covers where other artists are lying on the ground, such as Michael Jackson's Thriller, Luther Vandross's Give Me the Reason, and the UK cover of Lionel Richie's You Are. Critics of the album, however, suggested that AI was used to make the cover. This was partly due to suggestions that the rose stems in the picture come out from the ground in an unrealistic way. This later resulted in claims from some fans that AI was also used to produce the music, and later the lyrics and vocals. These claims began on a Facebook page entitled "AI Generated Nonsense", which was later deleted. No definitive evidence, however, was produced to back these claims. Derek McArthur, a journalist for Glasgow-based newspaper The Herald, wrote: "The music is in line with what one would expect from a one-man black metal project in the vein of Judas Iscariot and Burzum, but then if AI was asked to create music in a black metal style, that is probably what it would decide to generically produce and spit out." Draugveil's reaction to the claims was: "Let people decide." The result of the claims of AI has led to some writers to claim that artists in the future will have to prove they are human to be taken seriously, and that members of the public will be increasing doubt as to whether creative works are produced by either humans or AI. == Track listing ==

Fuzzy electronics

Fuzzy electronics is an electronic technology that uses fuzzy logic, instead of the two-state Boolean logic more commonly used in digital electronics. Fuzzy electronics is fuzzy logic implemented on dedicated hardware. This is to be compared with fuzzy logic implemented in software running on a conventional processor. Fuzzy electronics has a wide range of applications, including control systems and artificial intelligence. == History == The first fuzzy electronic circuit was built by Takeshi Yamakawa et al. in 1980 using discrete bipolar transistors. The first industrial fuzzy application was in a cement kiln in Denmark in 1982. The first VLSI fuzzy electronics was by Masaki Togai and Hiroyuki Watanabe in 1984. In 1987, Yamakawa built the first analog fuzzy controller. The first digital fuzzy processors came in 1988 by Togai (Russo, pp. 2–6). In the early 1990s, the first fuzzy logic chips were presented to the public. Two companies which are Omron and NEC have announced the development of dedicated fuzzy electronic hardware in the year 1991. Two years later, the Japanese Omron Cooperation has shown a working fuzzy chip during a technical fair.

Static program analysis

In computer science, static program analysis (also known as static analysis or static simulation) is the analysis of computer programs performed without executing them, in contrast with dynamic program analysis, which is performed on programs during their execution in the integrated environment. The term is usually applied to analysis performed by an automated tool, with human analysis typically being called "program understanding", program comprehension, or code review. In the last of these, software inspection and software walkthroughs are also used. In most cases the analysis is performed on some version of a program's source code, and, in other cases, on some form of its object code. Two leading approaches to resource certification have been Static Analysis (SA) and Implicit Computational Complexity (ICC). SA is algorithmic in nature: it focuses on a broad programming language of choice, and seeks to determine by syntactic means whether given programs in that language are feasible. In contrast, ICC attempts to create from the outset specialized programming languages or methods that delineate a complexity class. Thus, SA's focus is on compile time, making no demand on the programmer; whereas ICC is a language-design discipline." The discipline of static analysis should not be confused with linting, which is the process of checking for coding style mistakes. == Rationale == The sophistication of the analysis performed by tools varies from those that only consider the behaviour of individual statements and declarations, to those that include the complete source code of a program in their analysis. The uses of the information obtained from the analysis vary from highlighting possible coding errors (e.g., the lint tool) to formal methods that mathematically prove properties about a given program (e.g., its behaviour matches that of its specification). Software metrics and reverse engineering can be described as forms of static analysis. Deriving software metrics and static analysis are increasingly deployed together, especially in creation of embedded systems, by defining so-called software quality objectives. A growing commercial use of static analysis is in the verification of properties of software used in safety-critical computer systems and locating potentially vulnerable code. For example, the following industries have identified the use of static code analysis as a means of improving the quality of increasingly sophisticated and complex software: Medical software: The US Food and Drug Administration (FDA) has identified the use of static analysis for medical devices. Nuclear software: In the UK the Office for Nuclear Regulation (ONR) recommends the use of static analysis on reactor protection systems. Aviation software (in combination with dynamic analysis). Automotive & Machines (functional safety features form an integral part of each automotive product development phase, ISO 26262, section 8). A study in 2012 by VDC Research reported that 28.7% of the embedded software engineers surveyed use static analysis tools and 39.7% expect to use them within 2 years. A study from 2010 found that 60% of the interviewed developers in European research projects made at least use of their basic IDE built-in static analyzers. However, only about 10% employed an additional other (and perhaps more advanced) analysis tool. In the application security industry the name static application security testing (SAST) is also used. SAST is an important part of Security Development Lifecycles (SDLs) such as the SDL defined by Microsoft and a common practice in software companies. == Tool types == The OMG (Object Management Group) published a study regarding the types of software analysis required for software quality measurement and assessment. This document on "How to Deliver Resilient, Secure, Efficient, and Easily Changed IT Systems in Line with CISQ Recommendations" describes three levels of software analysis. Unit Level Analysis that takes place within a specific program or subroutine, without connecting to the context of that program. Technology Level Analysis that takes into account interactions between unit programs to get a more holistic and semantic view of the overall program in order to find issues and avoid obvious false positives. System Level Analysis that takes into account the interactions between unit programs, but without being limited to one specific technology or programming language. A further level of software analysis can be defined. Mission/Business Level Analysis that takes into account the business/mission layer terms, rules and processes that are implemented within the software system for its operation as part of enterprise or program/mission layer activities. These elements are implemented without being limited to one specific technology or programming language and in many cases are distributed across multiple languages, but are statically extracted and analyzed for system understanding for mission assurance. == Formal methods == Formal methods is the term applied to the analysis of software (and computer hardware) whose results are obtained purely through the use of rigorous mathematical methods. The mathematical techniques used include denotational semantics, axiomatic semantics, operational semantics, and abstract interpretation. By a straightforward reduction to the halting problem, it is possible to prove that (for any Turing complete language), finding all possible run-time errors in an arbitrary program (or more generally any kind of violation of a specification on the final result of a program) is undecidable: there is no mechanical method that can always answer truthfully whether an arbitrary program may or may not exhibit runtime errors. This result dates from the works of Church, Gödel and Turing in the 1930s (see: Halting problem and Rice's theorem). As with many undecidable questions, one can still attempt to give useful approximate solutions. Some of the implementation techniques of formal static analysis include: Abstract interpretation, to model the effect that every statement has on the state of an abstract machine (i.e., it 'executes' the software based on the mathematical properties of each statement and declaration). This abstract machine over-approximates the behaviours of the system: the abstract system is thus made simpler to analyze, at the expense of incompleteness (not every property true of the original system is true of the abstract system). If properly done, though, abstract interpretation is sound (every property true of the abstract system can be mapped to a true property of the original system). Data-flow analysis, a lattice-based technique for gathering information about the possible set of values; Hoare logic, a formal system with a set of logical rules for reasoning rigorously about the correctness of computer programs. There is tool support for some programming languages (e.g., the SPARK programming language (a subset of Ada) and the Java Modeling Language—JML—using ESC/Java and ESC/Java2, Frama-C WP (weakest precondition) plugin for the C language extended with ACSL (ANSI/ISO C Specification Language) ). Model checking, considers systems that have finite state or may be reduced to finite state by abstraction; Symbolic execution, as used to derive mathematical expressions representing the value of mutated variables at particular points in the code. Nullable reference analysis == Data-driven static analysis == Data-driven static analysis leverages extensive codebases to infer coding rules and improve the accuracy of the analysis. For instance, one can use all Java open-source packages available on GitHub to learn good analysis strategies. The rule inference can use machine learning techniques. It is also possible to learn from a large amount of past fixes and warnings. == Remediation == Static analyzers produce warnings. For certain types of warnings, it is possible to design and implement automated remediation techniques. For example, Logozzo and Ball have proposed automated remediations for C# cccheck.

Construction of t-norms

In mathematics, t-norms are a special kind of binary operations on the real unit interval [0, 1]. Various constructions of t-norms, either by explicit definition or by transformation from previously known functions, provide a plenitude of examples and classes of t-norms. This is important, e.g., for finding counter-examples or supplying t-norms with particular properties for use in engineering applications of fuzzy logic. The main ways of construction of t-norms include using generators, defining parametric classes of t-norms, rotations, or ordinal sums of t-norms. Relevant background can be found in the article on t-norms. == Generators of t-norms == The method of constructing t-norms by generators consists in using a unary function (generator) to transform some known binary function (most often, addition or multiplication) into a t-norm. In order to allow using non-bijective generators, which do not have the inverse function, the following notion of pseudo-inverse function is employed: Let f: [a, b] → [c, d] be a monotone function between two closed subintervals of extended real line. The pseudo-inverse function to f is the function f (−1): [c, d] → [a, b] defined as f ( − 1 ) ( y ) = { sup { x ∈ [ a , b ] ∣ f ( x ) < y } for f non-decreasing sup { x ∈ [ a , b ] ∣ f ( x ) > y } for f non-increasing. {\displaystyle f^{(-1)}(y)={\begin{cases}\sup\{x\in [a,b]\mid f(x)y\}&{\text{for }}f{\text{ non-increasing.}}\end{cases}}} === Additive generators === The construction of t-norms by additive generators is based on the following theorem: Let f: [0, 1] → [0, +∞] be a strictly decreasing function such that f(1) = 0 and f(x) + f(y) is in the range of f or in [f(0+), +∞] for all x, y in [0, 1]. Then the function T: [0, 1]2 → [0, 1] defined as T(x, y) = f (-1)(f(x) + f(y)) is a t-norm. Alternatively, one may avoid using the notion of pseudo-inverse function by having T ( x , y ) = f − 1 ( min ( f ( 0 + ) , f ( x ) + f ( y ) ) ) {\displaystyle T(x,y)=f^{-1}\left(\min \left(f(0^{+}),f(x)+f(y)\right)\right)} . The corresponding residuum can then be expressed as ( x ⇒ y ) = f − 1 ( max ( 0 , f ( y ) − f ( x ) ) ) {\displaystyle (x\Rightarrow y)=f^{-1}\left(\max \left(0,f(y)-f(x)\right)\right)} . And the biresiduum as ( x ⇔ y ) = f − 1 ( | f ( x ) − f ( y ) | ) {\displaystyle (x\Leftrightarrow y)=f^{-1}\left(\left|f(x)-f(y)\right|\right)} . If a t-norm T results from the latter construction by a function f which is right-continuous in 0, then f is called an additive generator of T. Examples: The function f(x) = 1 – x for x in [0, 1] is an additive generator of the Łukasiewicz t-norm. The function f defined as f(x) = –log(x) if 0 < x ≤ 1 and f(0) = +∞ is an additive generator of the product t-norm. The function f defined as f(x) = 2 – x if 0 ≤ x < 1 and f(1) = 0 is an additive generator of the drastic t-norm. Basic properties of additive generators are summarized by the following theorem: Let f: [0, 1] → [0, +∞] be an additive generator of a t-norm T. Then: T is an Archimedean t-norm. T is continuous if and only if f is continuous. T is strictly monotone if and only if f(0) = +∞. Each element of (0, 1) is a nilpotent element of T if and only if f(0) < +∞. The multiple of f by a positive constant is also an additive generator of T. T has no non-trivial idempotents. (Consequently, e.g., the minimum t-norm has no additive generator.) === Multiplicative generators === The isomorphism between addition on [0, +∞] and multiplication on [0, 1] by the logarithm and the exponential function allow two-way transformations between additive and multiplicative generators of a t-norm. If f is an additive generator of a t-norm T, then the function h: [0, 1] → [0, 1] defined as h(x) = e−f (x) is a multiplicative generator of T, that is, a function h such that h is strictly increasing h(1) = 1 h(x) · h(y) is in the range of h or equal to 0 or h(0+) for all x, y in [0, 1] h is right-continuous in 0 T(x, y) = h (−1)(h(x) · h(y)). Vice versa, if h is a multiplicative generator of T, then f: [0, 1] → [0, +∞] defined by f(x) = −log(h(x)) is an additive generator of T. == Parametric classes of t-norms == Many families of related t-norms can be defined by an explicit formula depending on a parameter p. This section lists the best known parameterized families of t-norms. The following definitions will be used in the list: A family of t-norms Tp parameterized by p is increasing if Tp(x, y) ≤ Tq(x, y) for all x, y in [0, 1] whenever p ≤ q (similarly for decreasing and strictly increasing or decreasing). A family of t-norms Tp is continuous with respect to the parameter p if lim p → p 0 T p = T p 0 {\displaystyle \lim _{p\to p_{0}}T_{p}=T_{p_{0}}} for all values p0 of the parameter. === Schweizer–Sklar t-norms === The family of Schweizer–Sklar t-norms, introduced by Berthold Schweizer and Abe Sklar in the early 1960s, is given by the parametric definition T p S S ( x , y ) = { T min ( x , y ) if p = − ∞ ( x p + y p − 1 ) 1 / p if − ∞ < p < 0 T p r o d ( x , y ) if p = 0 ( max ( 0 , x p + y p − 1 ) ) 1 / p if 0 < p < + ∞ T D ( x , y ) if p = + ∞ . {\displaystyle T_{p}^{\mathrm {SS} }(x,y)={\begin{cases}T_{\min }(x,y)&{\text{if }}p=-\infty \\(x^{p}+y^{p}-1)^{1/p}&{\text{if }}-\infty −∞ Continuous if and only if p < +∞ Strict if and only if −∞ < p ≤ 0 (for p = −1 it is the Hamacher product) Nilpotent if and only if 0 < p < +∞ (for p = 1 it is the Łukasiewicz t-norm). The family is strictly decreasing for p ≥ 0 and continuous with respect to p in [−∞, +∞]. An additive generator for T p S S {\displaystyle T_{p}^{\mathrm {SS} }} for −∞ < p < +∞ is f p S S ( x ) = { − log ⁡ x if p = 0 1 − x p p otherwise. {\displaystyle f_{p}^{\mathrm {SS} }(x)={\begin{cases}-\log x&{\text{if }}p=0\\{\frac {1-x^{p}}{p}}&{\text{otherwise.}}\end{cases}}} === Hamacher t-norms === The family of Hamacher t-norms, introduced by Horst Hamacher in the late 1970s, is given by the following parametric definition for 0 ≤ p ≤ +∞: T p H ( x , y ) = { T D ( x , y ) if p = + ∞ 0 if p = x = y = 0 x y p + ( 1 − p ) ( x + y − x y ) otherwise. {\displaystyle T_{p}^{\mathrm {H} }(x,y)={\begin{cases}T_{\mathrm {D} }(x,y)&{\text{if }}p=+\infty \\0&{\text{if }}p=x=y=0\\{\frac {xy}{p+(1-p)(x+y-xy)}}&{\text{otherwise.}}\end{cases}}} The t-norm T 0 H {\displaystyle T_{0}^{\mathrm {H} }} is called the Hamacher product. Hamacher t-norms are the only t-norms which are rational functions. The Hamacher t-norm T p H {\displaystyle T_{p}^{\mathrm {H} }} is strict if and only if p < +∞ (for p = 1 it is the product t-norm). The family is strictly decreasing and continuous with respect to p. An additive generator of T p H {\displaystyle T_{p}^{\mathrm {H} }} for p < +∞ is f p H ( x ) = { 1 − x x if p = 0 log ⁡ p + ( 1 − p ) x x otherwise. {\displaystyle f_{p}^{\mathrm {H} }(x)={\begin{cases}{\frac {1-x}{x}}&{\text{if }}p=0\\\log {\frac {p+(1-p)x}{x}}&{\text{otherwise.}}\end{cases}}} === Frank t-norms === The family of Frank t-norms, introduced by M.J. Frank in the late 1970s, is given by the parametric definition for 0 ≤ p ≤ +∞ as follows: T p F ( x , y ) = { T m i n ( x , y ) if p = 0 T p r o d ( x , y ) if p = 1 T L u k ( x , y ) if p = + ∞ log p ⁡ ( 1 + ( p x − 1 ) ( p y − 1 ) p − 1 ) otherwise. {\displaystyle T_{p}^{\mathrm {F} }(x,y)={\begin{cases}T_{\mathrm {min} }(x,y)&{\text{if }}p=0\\T_{\mathrm {prod} }(x,y)&{\text{if }}p=1\\T_{\mathrm {Luk} }(x,y)&{\text{if }}p=+\infty \\\log _{p}\left(1+{\frac {(p^{x}-1)(p^{y}-1)}{p-1}}\right)&{\text{otherwise.}}\end{cases}}} The Frank t-norm T p F {\displaystyle T_{p}^{\mathrm {F} }} is strict if p < +∞. The family is strictly decreasing and continuous with respect to p. An additive generator for T p F {\displaystyle T_{p}^{\mathrm {F} }} is f p F ( x ) = { − log ⁡ x if p = 1 1 − x if p = + ∞ log ⁡ p − 1 p x − 1 otherwise. {\displaystyle f_{p}^{\mathrm {F} }(x)={\begin{cases}-\log x&{\text{if }}p=1\\1-x&{\text{if }}p=+\infty \\\log {\frac {p-1}{p^{x}-1}}&{\text{otherwise.}}\end{cases}}} === Yager t-norms === The family of Yager t-norms, introduced in the early 1980s by Ronald R. Yager, is given for 0 ≤ p ≤ +∞ by T p Y ( x , y ) = { T D ( x , y ) if p = 0 max ( 0 , 1 − ( ( 1 − x ) p + ( 1 − y ) p ) 1 / p ) if 0 < p < + ∞ T m i n ( x , y ) if p = + ∞ {\displaystyle T_{p}^{\mathrm {Y} }(x,y)={\begin{cases}T_{\mathrm {D} }(x,y)&{\text{if }}p=0\\\max \left(0,1-((1-x)^{p}+(1-y)^{p})^{1/p}\right)&{\text{if }}0