AI Coding Unlimited

AI Coding Unlimited — independent reviews, comparisons, pricing and step-by-step guides on Aizhi.

  • Mobile DevOps

    Mobile DevOps

    Mobile DevOps is a set of practices that applies the principles of DevOps specifically to the development of mobile applications. Traditional DevOps focuses on streamlining the software development process in general, but mobile development has its own unique challenges that require a tailored approach. Mobile DevOps is not simply as a branch of DevOps specific to mobile app development, instead an extension and reinterpretation of the DevOps philosophy due to very specific requirements of the mobile world. == Rationale == Traditional DevOps approach has been formed around 2007-2008, close to the dates when iOS and Android mobile operating systems were released to the public. The traditional DevOps approach primarily evolved to meet the changing needs of the software development world with the paradigm shift towards continuous and rapid development and deployment (such as in web development, where interpreted languages are more prevalent than compiled languages). While traditional DevOps embraced agility and flexibility, mobile operating system providers steered towards a walled-garden approach with compiled apps with tight controls over how they can be distributed and installed on a mobile device. This difference in the mobile development mindset compared to what the traditional DevOps approach is advocating, is augmented further with the mobile applications to be deployed on a high number of varying devices and operating systems. Eventually, the concept of Mobile DevOps took off as a trend around 2014-2015, in line with the fast growth of the number of applications in mobile app stores. As individuals and corporations alike are developing and publishing more and more mobile applications, the need for efficiency and shorter release cycles increased, which is addressed by the continuous feedback and continuous development approach within the concept of DevOps, while requiring a significant level of adaptation and extension of the traditional DevOps practices. == Mindset shift from traditional DevOps to mobile DevOps == Mobile DevOps has a unique set of challenges and constraints, which solidifies the fact that it needs to be approached as a separate discipline. These challenges can be outlined as follows: Platform-specific requirements and tight controls of mobile operating system providers, where for instance a macOS device is mandatory for iOS application development and release. The walled-garden approach of distributing mobile apps, specifically applying to iOS applications, which comes with app review and app release delays that would not be needed in web development, for instance. Code signing requirements that come with the walled-garden approach, which introduce additional processes in the mobile application build pipeline along with new security concerns. An entire deployment cycle is re-run even in the slightest code change due to how applications are compiled and delivered to the users. The final product is to be deployed to a wide variety of mobile devices worldwide, which requires extensive testing and user feedback. Monitoring mobile applications require additional tools and approaches to be able to get data from an application running on a mobile device while respecting user privacy. Frequent operating system updates by mobile platforms can require rapid adaptation of apps, introducing further complexity to the development and maintenance cycles. == Benefits of mobile DevOps == Mobile DevOps is not an abstract concept and offers a range of benefits that can help improve the efficiency and effectiveness of the mobile app development process. These benefits can even be quantified by collecting the data within the mobile application development lifecycle. The benefits can be categorized into the following areas: Faster Release Cycles: By automating tasks and streamlining the development process, mobile DevOps enables teams to deliver new features and updates more frequently. Improved Quality: Automated testing and continuous monitoring help to identify and fix bugs earlier in the development cycle, leading to higher quality apps. Optimized Resource Utilization: Mobile DevOps promotes optimized resource utilization by automating tasks and streamlining workflows. Furthermore, mobile DevOps practices like containerization can help to create more efficient and scalable development environments. Increased Agility: Mobile DevOps allows teams to be more responsive to changes in the market and user feedback. == List of Dedicated Mobile DevOps Platforms == Even though it is possible to run a mobile DevOps cycle with most of the CI/CD platforms, they may require significant effort compared to non-mobile CI/CD (e.g. you need to bring your own infrastructure or it may require "reinventing the wheel" for commonly used platforms like Jenkins). To overcome the mobile-specific challenges specified, there are certain platforms that are dedicated to the lifecycle of mobile applications. These platforms exclusively focus on DevOps processes for mobile app development and are also referred as mobile CI/CD platforms. Appcircle (Multiplatform | Cloud-based & On-premise) Visual Studio App Center (Multiplatform | Cloud-based) Xcode Cloud (Apple platforms only | Cloud-based)

    Read more →
  • The Machine That Won the War (short story)

    The Machine That Won the War (short story)

    "The Machine That Won the War" is a science fiction short story by American writer Isaac Asimov. The story first appeared in the October 1961 issue of The Magazine of Fantasy & Science Fiction, and was reprinted in the collections Nightfall and Other Stories (1969) and Robot Dreams (1986). It was also printed in a contemporary edition of Reader's Digest, illustrated. It is one of a loosely connected series of such stories concerning a fictional supercomputer called Multivac. == Plot summary == Three influential leaders of the human race meet in the aftermath of a successful war against the Denebians. Discussing how the vast and powerful Multivac computer was a decisive factor in the war, each of the men admits that in fact, he falsified his part of the decision process because he felt that the situation was too complex to follow normal procedures. John Henderson, Multivac's Chief Programmer, admits that he altered the data being fed to Multivac, since the populace could not be trusted to report accurate information in the current situation. Max Jablonski then admits that he altered the data that Multivac produced, since he knew that Multivac was not in good working order due to manpower and spare parts shortage. Finally, Lamar Swift, executive director of the Solar Federation, reveals that he had not trusted the reports produced by Multivac, and had made the final decisions purely on the toss of a coin.

    Read more →
  • Random-fuzzy variable

    Random-fuzzy variable

    In measurements, the measurement obtained can suffer from two types of uncertainties. The first is the random uncertainty which is due to the noise in the process and the measurement. The second contribution is due to the systematic uncertainty which may be present in the measuring instrument. Systematic errors, if detected, can be easily compensated as they are usually constant throughout the measurement process as long as the measuring instrument and the measurement process are not changed. But it can not be accurately known while using the instrument if there is a systematic error and if there is, how much? Hence, systematic uncertainty could be considered as a contribution of a fuzzy nature. This systematic error can be approximately modeled based on our past data about the measuring instrument and the process. Statistical methods can be used to calculate the total uncertainty from both systematic and random contributions in a measurement. However, the computational complexity is very high, and hence not desirable. L.A.Zadeh introduced the concepts of fuzzy variables and fuzzy sets. Fuzzy variables are based on the theory of possibility and hence are possibility distributions. This makes them suitable to handle any type of uncertainty, i.e., both systematic and random contributions to the total uncertainty. Random-fuzzy variable (RFV) is a type 2 fuzzy variable, defined using the mathematical possibility theory, used to represent the entire information associated to a measurement result. It has an internal possibility distribution and an external possibility distribution called membership functions. The internal distribution is the uncertainty contributions due to the systematic uncertainty and the bounds of the RFV are because of the random contributions. The external distribution gives the uncertainty bounds from all contributions. == Definition == A random-fuzzy Variable (RFV) is defined as a type 2 fuzzy variable which satisfies the following conditions: Both the internal and the external functions of the RFV can be identified. Both the internal and the external functions are modeled as possibility distributions (PD). Both the internal and external functions have a unitary value for possibility to the same interval of values. An RFV can be seen in the figure. The external membership function is the distribution in blue and the internal membership function is the distribution in red. Both the membership functions are possibility distributions. Both the internal and external membership functions have a unitary value of possibility only in the rectangular part of the RFV. Therefore, all three conditions have been satisfied. If there are only systematic errors in the measurement, then the RFV simply becomes a fuzzy variable which consists of just the internal membership function. Similarly, if there is no systematic error, then the RFV becomes a fuzzy variable with just the random contributions and therefore, is just the possibility distribution of the random contributions. == Construction == A random-fuzzy variable can be constructed using an internal possibility distribution (rinternal) and a random possibility distribution (rrandom). === The random distribution (rrandom) === rrandom is the possibility distribution of the random contributions to the uncertainty. Any measurement instrument or process suffers from random error contributions due to intrinsic noise or other effects. This is completely random in nature and is a normal probability distribution when several random contributions are combined according to the central limit theorem. However, there can also be random contributions from other probability distributions, such as a uniform distribution, gamma distribution and so on. The probability distribution can be modeled from the measurement data. Then, the probability distribution can be used to model an equivalent possibility distribution using the maximally specific probability-possibility transformation. Some common probability distributions and the corresponding possibility distributions can be seen in the figures. === The internal distribution (rinternal) === rinternal is the internal distribution in the RFV which is the possibility distribution of the systematic contribution to the total uncertainty. This distribution can be built based on the information that is available about the measuring instrument and the process. The largest possible distribution is the uniform or rectangular possibility distribution. This means that every value in the specified interval is equally possible. This actually represents the state of total ignorance according to the theory of evidence which means it represents a scenario in which there is maximum lack of information. This distribution is used for the systematic error when we have absolutely no idea about the systematic error except that it belongs to a particular interval of values. This is quite common in measurements. However, in certain cases, it may be known that certain values have a higher or lower degrees of belief than certain other values. In this case, depending on the degrees of belief for the values, an appropriate possibility distribution could be constructed. === The construction of the external distribution (rexternal) and the RFV === After modeling the random and internal possibility distribution, the external membership function, rexternal, of the RFV can be constructed by using the following equation: where x ∗ {\displaystyle x^{}} is the mode of r random {\displaystyle r_{\textit {random}}} , which is the peak in the membership function of r r a n d o m {\displaystyle r_{random}} and Tmin is the minimum triangular norm. RFV can also be built from the internal and random distributions by considering the α-cuts of the two possibility distributions (PDs). An α-cut of a fuzzy variable F can be defined as Therefore, essentially an α-cut is the set of values for which the value of the membership function μ F ( a ) {\displaystyle \mu _{\rm {F}}(a)} of the fuzzy variable is greater than α. This gives the upper and lower bounds of the fuzzy variable F for each α-cut. The α-cut of an RFV, however, has 4 specific bounds and is given by R F V α = [ X a α , X b α , X c α , X d α ] {\displaystyle RFV^{\alpha }=[X_{a}^{\alpha },X_{b}^{\alpha },X_{c}^{\alpha },X_{d}^{\alpha }]} . X a α {\displaystyle X_{a}^{\alpha }} and X d α {\displaystyle X_{d}^{\alpha }} are the lower and upper bounds respectively of the external membership function (rexternal) which is a fuzzy variable on its own. X b α {\displaystyle X_{b}^{\alpha }} and X c α {\displaystyle X_{c}^{\alpha }} are the lower and upper bounds respectively of the internal membership function (rinternal) which is a fuzzy variable on its own. To build the RFV, let us consider the α-cuts of the two PDs i.e., rrandom and rinternal for the same value of α. This gives the lower and upper bounds for the two α-cuts. Let them be [ X L R α , X U R α ] {\displaystyle [X_{LR}^{\alpha },X_{UR}^{\alpha }]} and [ X L I α , X U I α ] {\displaystyle [X_{LI}^{\alpha },X_{UI}^{\alpha }]} for the random and internal distributions respectively. [ X L R α , X U R α ] {\displaystyle [X_{LR}^{\alpha },X_{UR}^{\alpha }]} can be again divided into two sub-intervals [ X L R α , x ∗ ] {\displaystyle [X_{LR}^{\alpha },x^{}]} and [ x ∗ , X U R α ] {\displaystyle [x^{},X_{UR}^{\alpha }]} where x ∗ {\displaystyle x^{}} is the mode of the fuzzy variable. Then, the α-cut for the RFV for the same value of α, R F V α = [ X a α , X b α , X c α , X d α ] {\displaystyle RFV^{\alpha }=[X_{a}^{\alpha },X_{b}^{\alpha },X_{c}^{\alpha },X_{d}^{\alpha }]} can be defined by Using the above equations, the α-cuts are calculated for every value of α which gives us the final plot of the RFV. A random-fuzzy variable is capable of giving a complete picture of the random and systematic contributions to the total uncertainty from the α-cuts for any confidence level as the confidence level is nothing but 1-α. An example for the construction of the corresponding external membership function (rexternal) and the RFV from a random PD and an internal PD can be seen in the following figure.

    Read more →
  • It's the Most Terrible Time of the Year

    It's the Most Terrible Time of the Year

    It's the Most Terrible Time of the Year is an AI-generated television commercial created for McDonald's Netherlands by TBWA\Neboko and The Sweetshop. It was released on 6 December 2025 before being pulled four days later due to negative reception over its use of generative artificial intelligence and its cynical, negative depiction of the holiday season. == Plot == On a bleak, snowy day, various people in the city experience different kinds of mishaps during the Christmas season. Among other incidents, families struggle with their huge loads of presents; Santa Claus gets stuck in traffic; a Christmas tree "redecorates" a man's home, sending him through the window; another family puts up with annoying relatives and a burnt Christmas dinner. Because of all this chaos, a man decides to find refuge in a McDonald's outlet. A Christmas choir finishes singing the jingle "It's the Most Terrible Time of the Year" with the call to action to "hide out in McDonald's till January's here". == Campaign == It's the Most Terrible Time of the Year is a 45-second television commercial made by Dutch agency TBWA\Neboko with involvement of United States-based film production studio The Sweetshop. The advertisement was produced heavily with generative artificial intelligence (AI) following the trend set by other brands such as Coca-Cola and Toys "R" Us. McDonald's Netherlands, the client, released a statement that the commercial was meant to depict "the stressful moments during the holidays in the Netherlands". The commercial also used Andy Williams's "It's the Most Wonderful Time of the Year" with lyrics changed to fit with the concept of the advertisement. According to The Sweetshop, the production of the advertisement took "seven weeks". It also added that much effort was put into the commercial compared to the traditional process. Ten people of its in-house AI engine The Gardening Club worked on the project. Los Angeles-based directors Mark Potoka and Matt Spicer were initially credited to be involved in the film but they resigned due to being sidelined from the production process. == Reception == The advertisement was released on McDonald's Netherlands' YouTube channel on 6 December 2025. It had a negative reception over the use of generative AI and the "cynical" concept of the work's story. The video was made private on 9 December 2025. The Sweetshop stated that the production of the advertisement took human effort. McDonald's Netherlands, while stating the original intent of the commercial, released a statement after its pullout that, for many of its customers, the holiday season is the "most wonderful time of the year".

    Read more →
  • Huawei Member Center

    Huawei Member Center

    Huawei Member Center is a benefits app which runs using Huawei Mobile Services. Originally launched in China, Huawei Member Center is now being developed primarily around devices such as P40 Pro and the Nova 7. == Membership Levels == The Huawei Member Center provides rewards in two primary ways, 1) device-specific & promotions and 2) via frequent use of Huawei products and apps, using points to redeem additional benefits. In China, Huawei members are already classified into three levels, the highest being “elite”. Membership level determines the level of perks received, from priority access to the service hotline, new device events & proprietary early-access opportunities. Huawei ran a number of member events in 2019 called "Huawei Member Day" to promote the Member Center including providing tips for the Mate 30 Pro and offering a 50Gb cloud storage upgrade to users. == HMC in China == Huawei Member Center Has seen significant adoption in China and the east, the rewards for use on the app have ranged from free book coupons, discounted travel and exclusive gifts of new devices, such as the Huawei Enjoy Z.

    Read more →
  • Residuated Boolean algebra

    Residuated Boolean algebra

    In mathematics, a residuated Boolean algebra is a residuated lattice whose lattice structure is that of a Boolean algebra. Examples include Boolean algebras with the monoid taken to be conjunction, the set of all formal languages over a given alphabet Σ {\displaystyle \Sigma } under concatenation, the set of all binary relations on a given set X {\displaystyle X} under relational composition, and more generally the power set of any equivalence relation, again under relational composition. The original application was to relation algebras as a finitely axiomatized generalization of the binary relation example, but there exist interesting examples of residuated Boolean algebras that are not relation algebras, such as the language example. == Definition == A residuated Boolean algebra is an algebraic structure ( L , ∧ , ∨ , ¬ , 0 , 1 , ∙ , I , / , ∖ ) {\displaystyle (L,\wedge ,\vee ,\neg ,0,1,\bullet ,\mathbf {I} ,/,\backslash )} such that An equivalent signature better suited to the relation algebra application is ( L , ∧ , ∨ , ¬ , 0 , 1 , ∙ , I , ▹ , ◃ ) {\displaystyle (L,\wedge ,\vee ,\neg ,0,1,\bullet ,\mathbf {I} ,\triangleright ,\triangleleft )} where the unary operations x ∖ {\displaystyle x\backslash } and x ▹ {\displaystyle x\triangleright } are intertranslatable in the manner of De Morgan's laws via x ∖ y = ¬ ( x ▹ ¬ y ) {\displaystyle x\backslash y=\neg (x\triangleright \neg y)} , x ▹ y = ¬ ( x ∖ ¬ y ) {\displaystyle x\triangleright y=\neg (x\backslash \neg y)} , and dually / y {\displaystyle /y} and ◃ y {\displaystyle \triangleleft y} as x / y = ¬ ( ¬ x ◃ y ) {\displaystyle x/y=\neg (\neg x\triangleleft y)} , x ◃ y = ¬ ( ¬ x / y ) {\displaystyle x\triangleleft y=\neg (\neg x/y)} , with the residuation axioms in the residuated lattice article reorganized accordingly (replacing z {\displaystyle z} by ¬ z {\displaystyle \neg z} ) to read ( x ▹ z ) ∧ y = 0 ⇔ ( x ∙ y ) ∧ z = 0 ⇔ ( z ◃ y ) ∧ x = 0 {\displaystyle (x\triangleright z)\wedge y=0\ \Leftrightarrow \ (x\bullet y)\wedge z=0\ \Leftrightarrow \ (z\triangleleft y)\wedge x=0} This De Morgan dual reformulation is motivated and discussed in more detail in the section below on conjugacy. Since residuated lattices and Boolean algebras are each definable with finitely many equations, so are residuated Boolean algebras, whence they form a finitely axiomatizable variety. == Examples == Any Boolean algebra, with the monoid multiplication ∙ {\displaystyle \bullet } taken to be conjunction and both residuals taken to be material implication x → y {\displaystyle x\to y} . Of the remaining 15 binary Boolean operations that might be considered in place of conjunction for the monoid multiplication, only five meet the monotonicity requirement, namely 0 , 1 , x , y {\displaystyle 0,1,x,y} and x ∨ y {\displaystyle x\vee y} . Setting y = z = 0 {\displaystyle y=z=0} in the residuation axiom y ≤ x ∖ z ⇔ x ∙ y ≤ z {\displaystyle y\leq x\backslash z\ \Leftrightarrow \ x\bullet y\leq z} , we have 0 ≤ x ∖ 0 ⇔ x ∙ 0 ≤ 0 {\displaystyle 0\leq x\backslash 0\ \Leftrightarrow \ x\bullet 0\leq 0} , which is falsified by taking x = 1 {\displaystyle x=1} when x ∙ y = 1 {\displaystyle x\bullet y=1} , x {\displaystyle x} , or x ∨ y {\displaystyle x\vee y} . The dual argument for z / y {\displaystyle z/y} rules out x ∙ y = y {\displaystyle x\bullet y=y} . This just leaves x ∙ y = 0 {\displaystyle x\bullet y=0} (a constant binary operation independent of x {\displaystyle x} and y {\displaystyle y} ), which satisfies almost all the axioms when the residuals are both taken to be the constant operation x / y = x ∖ y = 1 {\displaystyle x/y=x\backslash y=1} . The axiom it fails is x ∙ I = x = I ∙ x {\displaystyle x\bullet \mathbf {I} =x=\mathbf {I} \bullet x} , for want of a suitable value for I {\displaystyle \mathbf {I} } . Hence conjunction is the only binary Boolean operation making the monoid multiplication that of a residuated Boolean algebra. The power set 2 X 2 {\displaystyle 2^{X^{2}}} made a Boolean algebra as usual with ∩ {\displaystyle \cap } , ∪ {\displaystyle \cup } and complement relative to X 2 {\displaystyle X^{2}} , and made a monoid with relational composition. The monoid unit I {\displaystyle \mathbf {I} } is the identity relation { ( x , x ) | x ∈ X } {\displaystyle \{(x,x)|x\in X\}} . The right residual R ∖ S {\displaystyle R\backslash S} is defined by x ( R ∖ S ) y ⇔ ∀ z ∈ X , z R x ⇒ z S y {\displaystyle x(R\backslash S)y\ \Leftrightarrow \ \forall z\in X,zRx\Rightarrow zSy} . Dually the left residual S / R {\displaystyle S/R} is defined by y ( S / R ) x ⇔ ∀ z ∈ X , x R z ⇒ y S z {\displaystyle y(S/R)x\ \Leftrightarrow \ \forall z\in X,xRz\Rightarrow ySz} . The power set 2 Σ ∗ {\displaystyle 2^{\Sigma ^{}}} made a Boolean algebra as for Example 2, but with language concatenation for the monoid. Here the set Σ {\displaystyle \Sigma } is used as an alphabet while Σ ∗ {\displaystyle \Sigma ^{}} denotes the set of all finite (including empty) words over that alphabet. The concatenation L M {\displaystyle LM} of languages L {\displaystyle L} and M {\displaystyle M} consists of all words u v {\displaystyle uv} such that u ∈ L {\displaystyle u\in L} and v ∈ M {\displaystyle v\in M} . The monoid unit is the language { ε } {\displaystyle \{\varepsilon \}} consisting of just the empty word ε {\displaystyle \varepsilon } . The right residual M ∖ L {\displaystyle M\backslash L} consists of all words w {\displaystyle w} over Σ {\displaystyle \Sigma } such that M w ⊆ L {\displaystyle Mw\subseteq L} . The left residual L / M {\displaystyle L/M} is the same with w M {\displaystyle wM} in place of M w {\displaystyle Mw} . == Conjugacy == The De Morgan duals ▹ {\displaystyle \triangleright } and ◃ {\displaystyle \triangleleft } of residuation arise as follows. Among residuated lattices, Boolean algebras are special by virtue of having a complementation operation ¬ {\displaystyle \neg } . This permits an alternative expression of the three inequalities y ≤ x ∖ z ⇔ x ∙ y ≤ z ⇔ x ≤ z / y {\displaystyle y\leq x\backslash z\ \Leftrightarrow \ x\bullet y\leq z\ \Leftrightarrow \ x\leq z/y} in the axiomatization of the two residuals in terms of disjointness, via the equivalence x ≤ y ⇔ x ∧ ¬ y = 0 {\displaystyle x\leq y\ \Leftrightarrow \ x\wedge \neg y=0} . Abbreviating x ∧ y = 0 {\displaystyle x\wedge y=0} to x # y {\displaystyle x\#y} as the expression of their disjointness, and substituting ¬ z {\displaystyle \neg z} for z {\displaystyle z} in the axioms, they become with a little Boolean manipulation ¬ ( x ∖ ¬ z ) # y ⇔ x ∙ y # z ⇔ ¬ ( ¬ z / y ) # x {\displaystyle \neg (x\backslash \neg z)\#y\ \Leftrightarrow \ x\bullet y\#z\ \Leftrightarrow \ \neg (\neg z/y)\#x} Now ¬ ( x ∖ ¬ z ) {\displaystyle \neg (x\backslash \neg z)} is reminiscent of De Morgan duality, suggesting that x ∖ {\displaystyle x\backslash } be thought of as a unary operation f {\displaystyle f} , defined by f ( y ) = x ∖ y {\displaystyle f(y)=x\backslash y} , that has a De Morgan dual ¬ f ( ¬ y ) {\displaystyle \neg f(\neg y)} , analogous to ∀ x ϕ ( x ) = ¬ ∃ x ¬ ϕ ( x ) {\displaystyle \forall x\phi (x)=\neg \exists x\neg \phi (x)} . Denoting this dual operation as x ▹ {\displaystyle x\triangleright } , we define x ▹ z {\displaystyle x\triangleright z} as ¬ x ∖ ¬ z {\displaystyle \neg x\backslash \neg z} . Similarly we define another operation z ◃ y {\displaystyle z\triangleleft y} as ¬ ( ¬ z / y ) {\displaystyle \neg (\neg z/y)} . By analogy with x ∖ {\displaystyle x\backslash } as the residual operation associated with the operation x ∙ {\displaystyle x\bullet } , we refer to x ▹ {\displaystyle x\triangleright } as the conjugate operation, or simply conjugate, of x ∙ {\displaystyle x\bullet } . Likewise ◃ y {\displaystyle \triangleleft y} is the conjugate of ∙ y {\displaystyle \bullet y} . Unlike residuals, conjugacy is an equivalence relation between operations: if f {\displaystyle f} is the conjugate of g {\displaystyle g} then g {\displaystyle g} is also the conjugate of f {\displaystyle f} , i.e. the conjugate of the conjugate of f {\displaystyle f} is f {\displaystyle f} . Another advantage of conjugacy is that it becomes unnecessary to speak of right and left conjugates, that distinction now being inherited from the difference between x ∙ {\displaystyle x\bullet } and ∙ x {\displaystyle \bullet x} , which have as their respective conjugates x ▹ {\displaystyle x\triangleright } and ◃ x {\displaystyle \triangleleft x} . (But this advantage accrues also to residuals when x ∖ {\displaystyle x\backslash } is taken to be the residual operation to x ∙ {\displaystyle x\bullet } .) All this yields (along with the Boolean algebra and monoid axioms) the following equivalent axiomatization of a residuated Boolean algebra. y # x ▹ z ⇔ x ∙ y # z ⇔ x # z ◃ y {\displaystyle y\#x\triangleright z\ \Leftrightarrow \ x\bullet y\#z\ \Leftrightarrow \ x\#z\triangleleft y} With this signature it remains the case that this axiomatization can be expressed as

    Read more →
  • Course of Action Display and Evaluation Tool

    Course of Action Display and Evaluation Tool

    Course of Action Display and Evaluation Tool (CADET) was a research program, and the eponymous prototype software system, that applied knowledge-based techniques of Artificial Intelligence to the problem of battle planning. CADET was also known as Course of Action Display and Elaboration Tool. It was considered an early example of such systems and was funded by the United States Army and by the Defense Advanced Research Projects Agency (DARPA). CADET influenced a later DARPA program called RAID which in turn produced a technology adopted by the United States Army and the United States Marine Corps. == History == The development of Course of Action Display and Evaluation Tool (CADET) began in 1996, at the Carnegie Group, Inc., Pittsburgh PA, funded under the Small Business Innovation Research (SBIR) program. The goal of the first phase SBIR project was to produce “...a live storyboard of [Course of Action] COA development, wargaming, animation, and assessment.” In 1997, the United States Army awarded the Carnegie Group Inc. $750K for SBIR Phase II. The intent was to develop “...a war-gaming modeling and analysis Decision Support System (DSS), … CADET will consist of a combination of Knowledge-Based and decision analytic tools and technologies to provide fast nimble COA war-gaming modeling, simulation, and animation under direct control of the commander and staff. ...Phase II will result in an operations prototype (OP) suitable for use and evaluation in field exercises.” In 2000, CADET was integrated and experimentally evaluated within the framework of the Integrated Course of Action Critiquing and Elaboration System (ICCES) experiment, conducted by the Battle Command Battle Laboratory – Leavenworth (BCBL-L) within the program Concept Experimentation Program (CEP) sponsored by TRADOC. In 2000-2002, DARPA applied CADET in the program titled Command Post of the Future (CPoF) as a tool to generate a course of action. Under the umbrella of the CPoF program, CADET was integrated with the FOX GA system to provide a detailed planner, coupled with COA generation capability. In the same period, Battle Command Battle Lab-Huachuca (BCBL-H) performed an integration CADET with the system called All Source Analysis System-Light (ASAS-L); here CADET was intended to generate plans for intelligence assets, and conduct wargames of different COAs, enemy versus friendly. From 1996 through 2002, work on CADET was performed by the Carnegie Group, Inc., and supported by funding from the US Army CECOM (CADET SBIR Phase I, CADET SBIR Phase II and CADET Enhancements); DARPA (Command Post of the Future); and TRADOC BCBL-H. == Operation == CADET was intended to be used by the staff of the United States Army Brigade, within the Military Decision Making Process (MDMP). In particular, CADET helped produce, automatically or semi-automatically, the products generated within the step of MDMP called Course of Action (COA) Development and the following step of MDMP called COA Analysis and Wargaming. CADET software resided on a laptop computer. Using the computer, the staff officers entered the input to CADET, or alternatively this input arrived at CADET from upstream computer systems. The input consisted of: Order of Battle, i.e., the units constituting the friendly brigade and the enemy units participating in the battle, and their various characteristics; primary activities of the Course of Action, where each activity is typically linked to one or more geographic areas or a route, and sometimes to a major unit executing the activity; digital map of the region where the battle was to take place, including the digital description of significant features such as locations of friendly and enemy units, roads, assembly areas, objectives, and axes of attacks. Taking this input, CADET automatically performed the following tasks (not sequentially): Planning and scheduling the low-level tasks necessary for a given COA Allocating tasks to various units and assets constituting the brigade Assigning suitable locations and routes Estimating the battle losses (attrition) of friendly and enemy forces, and consumption of resources (e.g., fuel and ammunition) Predicting enemy actions or reactions. CADET produced the following outputs: Synchronization matrix, directly editable and printable; synchronization matrix is a kind of Gantt chart that shows assignments of activities to units, to locations/routes and to time periods Map overlays in PPT or JPG formats Animation output XML formally-encoded plan Textual Operation Plan (OPLAN) draft E-mail messages with attachments: XML and text versions of OPLAN == Design == The core algorithm is a planning algorithm where CADET uses a knowledge-based approach of the hierarchical-task-network type. Each task class is associated with a model of more detailed subtasks that should be performed in order to accomplish the higher-level task. Algorithms selected (heuristically) a task and then decomposes it into subtasks. Although similar to hierarchical-task-network planning algorithm, CADET’s algorithm includes elements of adversarial reasoning. After adding a subtask, the algorithm uses rules to determine the enemy’s probable actions and reactions as well as friendly counteractions This approximated the action-reaction-counteraction technique of manual wargaming used by the United States Army. When a task involves movements of a unit, the algorithm performs routing, i.e., finds a route for the movement that minimizes the time required for the movement as well as exposure to the enemy attacks. Each added tasks (subtask) normally requires a unit which would execute the task, and a time period when the task would be executed. Therefore, when a certain number of subtasks is added by the planning process, the algorithm also performs the allocation of the newly added subtasks to units and to time periods (i.e., scheduling). allocation and scheduling of tasks relies on both domain-specific and constraint-guided heuristics. A tasks may also require expenditures of fuel and ammunition. If the tasks involves engagement with the enemy, the performing units will experience lossesof personnel and weapon systems (attrition). CADET’s algorithm includes estimates of consumption of different types of consumables, and also attrition. Depending on the degree of attrition and consumption, CADET adds tasks that are needed to refuel or reconstitute the units. The algorithm continually interleaves incremental steps of planning, routing, scheduling, and attrition and consumption estimates. == Evaluation == Two evaluation experiments are described in literature. The first experiment called ICCES took three days. The subjects were Army officers from combat arms branches, with 11 to 23 years of active service, in the ranks of majors and lieutenant colonels, a total of 8. Each officer was given 4 hours of training learning to operate CADET and related computer tools. Officers were divided into two groups and given a tactical scenario. One group (the control group) used the traditional, manual process; the other used the system called ICCES, the automated core of which was CADET. Each group produced three COA sketches and statements and one COA synchronization matrix. Then, the experiment was repeated with another scenario but the control group became the automated group and vice versa. The users were generally satisfied with the quality of the ICCES-generated products. The group using ICCES made only a few changes to the product that was automatically generated, indicating that they agreed with the majority of the plan that ICCES produced. The second experiment was reminiscent of Turing test. The experiment involved one user, nine judges (active-duty officers, mainly colonels and lieutenant colonels), and five scenarios obtained from several US Army exercises. For each scenario, experimenters obtained synchronization matrices that were produced in earlier exercises, typically by a team of four to five officers in three to four hours, spending approximately 16 person-hours in total. Using these scenarios and COAs, the user had CADET generate automatically detailed plans and express them as synchronization matrices. The user, a retired US Army officer, reviewed and slightly edited the matrices. The entire process took less than two minutes of computations by and approximately 20 minutes of review and post-editing, approximately 0.4 person-hour in total per product. The experimenters gave the resulting matrices the same visual style as those produced by humans. The judges, who did not know whether a planning product was a traditional product of humans, or with computerized aids, were asked to grade the products. The result was that the average grades for manual products and CADET-generated products were statistically indistinguishable, even though CADET-generated products required far less time to produce. == Legacy == CADET served as “...an example of how even relatively basic A

    Read more →
  • Warframe

    Warframe

    Warframe is a free-to-play action role-playing third-person shooter multiplayer online game developed and published by Digital Extremes. First released for Windows in March 2013, it was later ported to PlayStation 4 in November 2013, Xbox One in September 2014, Nintendo Switch in November 2018, PlayStation 5 in November 2020, Xbox Series X/S in April 2021, iOS in February 2024, Android in Canada on February 11, 2026 followed by a global release on February 18, 2026, and was released on Nintendo Switch 2 on March 25, 2026. Support for cross-platform play was released in 2022. Cross-platform save began in December 2023, rolling out in waves to different groups of players before becoming fully available to all players in January 2024. In Warframe, a player controls a member of the Tenno, a caste of ancient warriors who have awoken from centuries of suspended animation far into Earth's future to find themselves at war with different factions in the Origin System. The Tenno use their powered Warframes, along with a variety of weapons and abilities, to complete missions. While many of the game's missions use procedurally generated levels, it also includes large open world areas similar to other massively multiplayer online games, as well as some story-specific missions with fixed level design. The game includes elements of shooting and melee games, parkour, and role-playing to allow players to advance their Tenno with improved gear. The game features both player versus environment and player versus player elements. It is supported by microtransactions, allowing players to purchase in-game items with money, while also offering the option to earn them at no cost through grinding. The concept for Warframe originated in 2000 when Digital Extremes began work on a new game titled Dark Sector. At the time, the company had been successful in supporting other developers and publishers but wanted to develop its own game in-house. Dark Sector suffered several delays and was eventually released in 2008, incorporating some of the initial framework but differing significantly from the original plan. By 2012, in the wake of the success of free-to-play games, the developers took their earlier Dark Sector ideas and art assets and incorporated them into a new project, their self-published Warframe. Initially, the growth of Warframe was slow, hindered by moderate critical reviews and low player counts. However, since its release, the game has experienced significant growth. It is one of Digital Extremes' most successful titles, reaching nearly 50 million registered players by 2019. == Plot == Warframe is set in a far future version of the Solar System, now known as the Origin System. At the start of the game players are given control of members of the Tenno, warriors who have awoken from a millennia-long cryosleep on Earth by the Lotus, who acts as a guide for the player. They join an interplanetary war between the Grineer, a violent war-driven matriarchal race of militarized human clones; the Corpus, a cult-like megacorporation dedicated to profit; the Infested, disfigured victims of the Technocyte virus; the Sentients, a race of self-replicating machines made by a long-dead transhuman race known as the Orokin; and the Corrupted, brainwashed variants of the previous three factions' units defending ancient Orokin towers. All of the factions encountered in the game, including the Tenno, were created by or are splinter groups of the old Orokin Empire, which the Tenno learns was an ancient fallen civilization and former reigning power in the Origin System. Although virtually all of them are long dead by the time of the Tenno's awakening, their lingering presence can still be felt throughout the Origin System. Before their fall, the Orokin had realized the Origin System was becoming dangerously depleted of resources, and their solution to keep their empire alive was to colonize new star systems. The Orokin sent out colony ships through the Void, a trans-dimensional space that enabled fast travel between stellar systems. They had also sent out the Sentients beforehand, to arrive in the Tau system first, and terraform it, so the colonists would arrive to garden worlds, capable of supporting human life. None of these residential ships returned, and those they had loaded with Sentients returned with the Sentients now deciding to wipe out the Orokin, leading to the Old War, the creation of the Tenno, and finally, the collapse of the Empire. In the game's "The Second Dream" quest, which was introduced in December 2015, the player discovers that the Lotus is a Sentient known as Natah, rebelling against the Sentients to protect the Tenno, desiring to have surrogate children after losing her ability to procreate. The Lotus' father, Hunhow, sends a vengeful assassin called the Stalker to Lua (the remains of Earth's Moon), which the Lotus had hidden in the Void, to find its secret. The Lotus dispatches the Tenno there to stop the Stalker, arriving too late as the Stalker unveils the entity that the Lotus had protected: a human child known as the Operator, who is the real Tenno controlling the Warframes through the course of the game. The Operator is one of several Tenno children that survived the passage of the Zariman Ten 0 colony ship through the Void; the adults have all gone mad from its travel. When the ship returned to the Orokin Empire, the children had all been put to sleep for thousands of years, outlasting the fall of the Empire, to be found by the Lotus and becoming the Tenno (Tenno short for the "Ten Zero" of the ship's name). The power of the Void gave these children the power of Transference, an ability that allows them to control Warframes. From this point forward, the player can then engage in missions both as the Warframe and the Operator. Throughout various updates, various quests have been released after the Second Dream that elaborates on the story. "The War Within" quest introduced the Grineer Queens, rulers of the Grineer, and their asteroid-based Kuva Fortress, also giving the Operator the ability to act fully on their own as another playable entity, rather than a single-use attack. Quests afterward would introduce figures such as "The Man In The Wall," a mysterious entity, presumably from the Void, who takes on the visage of whoever sees them, most often as the playable Operator, and Ballas, one of the last living Orokin, assumed to be responsible for creating the Warframes. == Gameplay == Warframe is an online action game that includes elements of shooters, RPG, and stealth games. The player starts with a silent pseudo-protagonist in the form of an anthropomorphous biomechanical combat unit called a 'Warframe', possessing supernatural agility and special abilities, a selection of weapons (primary, secondary, and melee) and a space ship called an 'Orbiter'. The Orbiter is supported by a Cephalon, a type of Artificial Intelligence created from the minds of living people. The Cephalon in the player's Orbiter is named Ordis, and refers to the player as 'Operator'. The player's primary goal from this point is to explore the Origin System. Later in the course of the game, the player unlocks the ability to gain direct control of the Operator, which is the true Tenno protagonist in physical form. The Operator can physically manifest themselves in the environment by projecting out of the Warframe, and disappear by resuming control of it through a telekinetic process called 'Transference'. The Operator also possesses weapons and abilities of their own. After that, the Operator can use Transference to control a larger, purely mechanical combat unit called a 'Necramech', which is the technological precursor to the Warframes. Players can engage in space-bound combat using an auxiliary combat platform called 'Archwing', mounted on a Warframe, which comes with a unique set of abilities. 'Archguns' are heavy weapons designed for Archwings and Necramechs, but can be adapted for Warframe use. Late in 2019, an update to the game allowed players to pilot and manage a spacefaring gunship called the 'Railjack', which is deployed in combat, unlike the Orbiter. Railjack was designed as a co-op experience with up to four people working together, performing different tasks to keep the ship operational while destroying enemy ships and completing objectives. A Railjack-focused update was released in 2021, which brought expanded content and a new skill tree system aimed at making solo play more accessible. Through the Orbiter's console, the player can select any of the missions available to them. To progress through the Solar System, players must complete mission 'nodes' on each planet to reach Junctions, and use these Junctions to travel to other planets. Other missions rotate over time as part of the game's living universe; these can include missions with special rewards and community challenges to allow all players to reap benefits if they are successfully met. High-di

    Read more →
  • Computational intelligence

    Computational intelligence

    In computer science, computational intelligence (CI) refers to concepts, paradigms, algorithms and implementations of systems that are designed to show "intelligent" behavior in complex and changing environments. These systems are aimed at mastering complex tasks in a wide variety of technical or commercial areas and offer solutions that recognize and interpret patterns, control processes, support decision-making or autonomously manoeuvre vehicles or robots in unknown environments, among other things. These concepts and paradigms are characterized by the ability to learn or adapt to new situations, to generalize, to abstract, to discover and associate. Nature-analog or nature-inspired methods play a key role in this. CI approaches primarily address those complex real-world problems for which traditional or mathematical modeling is not appropriate for various reasons: the processes cannot be described exactly with complete knowledge, the processes are too complex for mathematical reasoning, they contain some uncertainties during the process, such as unforeseen changes in the environment or in the process itself, or the processes are simply stochastic in nature. Thus, CI techniques are properly aimed at processes that are ill-defined, complex, nonlinear, time-varying and/or stochastic. A recent definition of the IEEE Computational Intelligence Societey describes CI as the theory, design, application and development of biologically and linguistically motivated computational paradigms. Traditionally the three main pillars of CI have been Neural Networks, Fuzzy Systems and Evolutionary Computation. ... CI is an evolving field and at present in addition to the three main constituents, it encompasses computing paradigms like ambient intelligence, artificial life, cultural learning, artificial endocrine networks, social reasoning, and artificial hormone networks. ... Over the last few years there has been an explosion of research on Deep Learning, in particular deep convolutional neural networks. Nowadays, deep learning has become the core method for artificial intelligence. In fact, some of the most successful AI systems are based on CI. However, as CI is an emerging and developing field there is no final definition of CI, especially in terms of the list of concepts and paradigms that belong to it. The general requirements for the development of an “intelligent system” are ultimately always the same, namely the simulation of intelligent thinking and action in a specific area of application. To do this, the knowledge about this area must be represented in a model so that it can be processed. The quality of the resulting system depends largely on how well the model was chosen in the development process. Sometimes data-driven methods are suitable for finding a good model and sometimes logic-based knowledge representations deliver better results. Hybrid models are usually used in real applications. According to actual textbooks, the following methods and paradigms, which largely complement each other, can be regarded as parts of CI: Fuzzy systems Neural networks and, in particular, convolutional neural networks Evolutionary computation and, in particular, multi-objective evolutionary optimization Swarm intelligence Bayesian networks Artificial immune systems Learning theory Probabilistic methods == Relationship between hard and soft computing and artificial and computational intelligence == Artificial intelligence (AI) is used in the media, but also by some of the scientists involved, as a kind of umbrella term for the various techniques associated with it or with CI. Craenen and Eiben state that attempts to define or at least describe CI can usually be assigned to one or more of the following groups: "Relative definition” comparing CI to AI Conceptual treatment of key notions and their roles in CI Listing of the (established) areas that belong to it The relationship between CI and AI has been a frequently discussed topic during the development of CI. While the above list implies that they are synonyms, the vast majority of AI/CI researchers working on the subject consider them to be distinct fields, where either CI is an alternative to AI AI includes CI CI includes AI The view of the first of the above three points goes back to Zadeh, the founder of the fuzzy set theory, who differentiated machine intelligence into hard and soft computing techniques, which are used in artificial intelligence on the one hand and computational intelligence on the other. In hard computing (HC) and traditional AI (e.g. expert systems), inaccuracy and uncertainty are undesirable characteristics of a system, while soft computing (SC) and thus CI focus on dealing with these characteristics. The adjacent figure illustrates this view and lists the most important CI techniques. Another frequently mentioned distinguishing feature is the representation of information in symbolic form in AI and in sub-symbolic form in CI techniques. Hard computing is a conventional computing method based on the principles of certainty and accuracy and it is deterministic. It requires a precisely stated analytical model of the task to be processed and a prewritten program, i.e. a fixed set of instructions. The models used are based on Boolean logic (also called crisp logic), where e.g. an element can be either a member of a set or not and there is nothing in between. When applied to real-world tasks, systems based on HC result in specific control actions defined by a mathematical model or algorithm. If an unforeseen situation occurs that is not included in the model or algorithm used, the action will most likely fail. Soft computing, on the other hand, is based on the fact that the human mind is capable of storing information and processing it in a goal-oriented way, even if it is imprecise and lacks certainty. SC is based on the model of the human brain with probabilistic thinking, fuzzy logic and multi-valued logic. Soft computing can process a wealth of data and perform a large number of computations, which may not be exact, in parallel. For hard problems for which no satisfying exact solutions based on HC are available, SC methods can be applied successfully. SC methods are usually stochastic in nature i.e., they are a randomly defined processes that can be analyzed statistically but not with precision. Up to now, the results of some CI methods, such as deep learning, cannot be verified and it is also not clear what they are based on. This problem represents an important scientific issue for the future. AI and CI are catchy terms, but they are also so similar that they can be confused. The meaning of both terms has developed and changed over a long period of time, with AI being used first. Bezdek describes this impressively and concludes that such buzzwords are frequently used and hyped by the scientific community, science management and (science) journalism. Not least because AI and biological intelligence are emotionally charged terms and it is still difficult to find a generally accepted definition for the basic term intelligence. == History == In 1950, Alan Turing, one of the founding fathers of computer science, developed a test for computer intelligence known as the Turing test. In this test, a person can ask questions via a keyboard and a monitor without knowing whether his counterpart is a human or a computer. A computer is considered intelligent if the interrogator cannot distinguish the computer from a human. This illustrates the discussion about intelligent computers at the beginning of the computer age. The term Computational Intelligence was first used as the title of the journal of the same name in 1985 and later by the IEEE Neural Networks Council (NNC), which was founded 1989 by a group of researchers interested in the development of biological and artificial neural networks. On November 21, 2001, the NNC became the IEEE Neural Networks Society, to become the IEEE Computational Intelligence Society two years later by including new areas of interest such as fuzzy systems and evolutionary computation. The NNC helped organize the first IEEE World Congress on Computational Intelligence in Orlando, Florida in 1994. On this conference the first clear definition of Computational Intelligence was introduced by Bezdek: A system is computationally intelligent when it: deals with only numerical (low-level) data, has pattern-recognition components, does not use knowledge in the AI sense; and additionally when it (begins to) exhibit (1) computational adaptivity; (2) computational fault tolerance; (3) speed approaching human-like turnaround and (4) error rates that approximate human performance. Today, with machine learning and deep learning in particular utilizing a breadth of supervised, unsupervised, and reinforcement learning approaches, the CI landscape has been greatly enhanced, with novell intelligent approaches. == The main algorithmic approaches of CI and their applicati

    Read more →
  • TCEC Season 14

    TCEC Season 14

    The 14th season of the Top Chess Engine Championship took place between 17 November 2018 and 24 February 2019. Stockfish was the defending champion, having defeated Komodo in the previous season's superfinal. The season is notable for two things: the emergence of two strong, new engines, the Komodo variant Komodo Monte Carlo tree search (MCTS) and the neural network engine Leela Chess Zero, and the dramatic superfinal. Komodo MCTS and Leela fought their way from Division 4 and Division 3 respectively to the Premier Division, with Leela further qualifying for the superfinal against Stockfish. The superfinal was a topsy-turvy affair with the lead changing hands several times. It finished as the closest superfinal TCEC has ever seen, with Stockfish winning by a single game, 50.5–49.5 (+10 =81 -9). == Overview == === Structure === The season comprised five divisions: from the lowest Division 4 to the Premier Division. The top two engines of each division promote to the division above, while the bottom two engines relegate. The top two engines of the Premier Division contest a 100-game superfinal. The lengths of the opening books used increases as the divisions progress. The superfinal itself used a custom opening book designed by Jeroen Noomen. === Rules === The TCEC draw and win rules were slightly modified for Season 14. The game is now adjudicated as drawn if, after move 30, both engines have evals ±0.08 for five consecutive moves, and there are neither pawn moves nor a capture. Win adjudication now occurs if both engines have an eval of ±10 for five consecutive moves. Following the controversy over DeusX's participation last season, the uniqueness rule for neural networks was modified such that at least two of the following three hallmarks must be unique: The code for training the neural network The neural network (and weights file) itself The engine that executes this network This change meant DeusX did not meet the uniqueness criteria and therefore did not participate. Aside from this change, the season used the standard rules of the TCEC. == Results == === Division 4 === New entrant Komodo MCTS dominated Division 4, winning by a clear four points, although it did lose a game to second-place finisher rofChade. Fellow new entrant Scorpio NN performed badly and finished last, drawing only one game and losing the rest. === Division 3 === The neural network engine Leela Chess Zero had just missed promotion to Division 2 in the previous season. Since its relatively weak performance last season was partly due to hardware problems, and since it had shown a lot of improvement in strength, it was the hot favourite in this division. Leela lived up to its billing by comprehensively defeating everyone else. In a portent of future divisions however, Leela surprisingly dropped a game to third-place Arasan. Komodo MCTS was also improving quickly, and an updated version finished second behind Leela. The gap between second and third was 6.5 points, illustrating the gulf in class. === Division 2 === Although Division 2 engines are significantly stronger than Division 3, Leela and Komodo MCTS continued to dominate the competition, and again finished first and second. Komodo MCTS only lost one game to Leela, while Leela's tendency to occasionally lose to weaker engines saw her losing a game to 4th-placed Booot. Third place finisher Xiphos gave Leela and Komodo MCTS a run for their money, and was in the running up until the final rounds when it lost a crucial game to Leela. This loss left it one point behind Komodo MCTS in the final standings. === Division 1 === Leela and Komodo MCTS's rampage through the lower divisions continued, and they again finished first and second. In a demonstration of how much it had improved, Leela scored 20/28 in this division, the same score it had achieved in Division 2. This was also a TCEC points record for this division. However, Leela dropped a game against fourth-place finisher Chiron. Komodo MCTS, which had yet to lose a game in the lower divisions except to Leela, also conceded its first loss to third-place Fizbo. At the other end of the table, former champions Jonny and Fritz, which had not been updated, found themselves outclassed and finished second-last and last respectively; however with fellow competitor Ginkgo crashing five times (and therefore being disqualified), Jonny managed to stay in the division. The penultimate game for this division set a new TCEC moves record for a decisive game: 308 moves before Leela defeated Fritz. === Premier division === This was the strongest premier division ever, with multiple-time champions Stockfish, Komodo, and Houdini in the mix. Right from the start it became clear that Stockfish was in a league of its own, and it dominated the division, scoring wins against every other engine without losing a game. Second place however was a hotly-contested affair, with Leela, Komodo and Houdini neck-and-neck for most of the division. Houdini took the early lead, but Komodo gained second after winning two games by forfeit when its sibling Komodo MCTS crashed. This led to murmurs of a "Konspiracy". However, when both Komodo and Houdini failed to score more wins against the lower half of the field, Leela was able to take the lead. Halfway through the division the race was upended again when Leela went through a bad streak, losing three games in a row to Stockfish, Komodo, and Fire. This led to Komodo regaining second place, only for Komodo MCTS to crash yet again. By TCEC rules this meant Komodo MCTS was disqualified and all its scores were zeroed out, which put Leela back in second place. With three games left, Leela missed a win against Andscacs, which would've more or less secured her a place in the superfinal. Meanwhile, Komodo kept the division interesting by winning two of its last three games. Because Komodo had superior tiebreakers to Leela, this meant Komodo would qualify for the superfinal unless Leela managed to hold Stockfish to a draw with Black in the last game of the division. In a tense final game, Stockfish came close to winning, but missed the winning line. Leela managed to draw and qualified for the superfinal. At the other end of the table, it was quickly apparent that Ethereal and Andscacs were the weakest engines and would likely relegate. However, when Komodo MCTS was disqualified (and therefore relegated), it threw both engines a lifeline, since they could now stay in the division by beating the other. Andscacs was able to score a head-to-head win against Ethereal, but was crushed by Stockfish (+0 =2 -4) and Leela (+0 =3 -3). Ethereal didn't manage to score a win in the entire division, but did manage to score more draws than Andscacs, condemning Andscacs to relegation. === Superfinal === Going into the superfinal expectations were high for Leela: she had received a new network and had just won her first major competition when she defeated Houdini in the second TCEC cup. However, she had won the tournament without having played Stockfish (who had been surprisingly eliminated by Houdini in the semifinals). That, plus the fact that Stockfish dominated Premier Division and had never lost a match to Leela, left it unclear which engine was superior, although most spectators favored Stockfish. The superfinal turned out to be a roller-coaster. It began with Stockfish drawing first blood in game 7, and then scoring another win in game 10. Leela hit back with wins in game 11 and 13, but then lost games 20, 21, and 22. This gave Stockfish a 3-point lead. However, in the next 30 games, Leela was the only one to score wins: it first equalized by winning games 25, 27, and 29, and then took the lead by winning games 49 and 53. Stockfish won game 56, but Leela won game 63, maintaining her lead. There followed two dramatic games. In game 65, Leela built up a winning position. Stockfish showed a +153 evaluation, indicating that it had found a forced line leading to an endgame tablebase win; indeed analysis with 7-piece tablebases showed that Leela's position was winning. Under previous seasons' rules, the game would have been adjudicated as a win because Leela's evaluation was above 6.5. However under the new rules, Leela's +8.92 evaluation was not enough to adjudicate. It turned out that Leela could not see the winning line, and shuffled her pieces aimlessly, leading to a 50-move draw. In game 66, Stockfish was given a substantial advantage by the opening, but failed to make the most of it. The evaluations were leveling out to zero when the internet connection to the GPU servers was cut off. By tournament rules, this meant the game was replayed from scratch. After a further internet disconnection and restart, Stockfish handled the opening better and won, leaving Leela with a 1-point lead. In the last third of the superfinal, there followed more drama as Leela often built up strong advantages, but Stockfish showed great resourcefulness in defending inferior positions. Meanwh

    Read more →
  • Anytime algorithm

    Anytime algorithm

    In computer science, an anytime algorithm is an algorithm that can return a valid solution to a problem even if it is interrupted before it ends. The algorithm is expected to find better and better solutions the longer it keeps running. Most algorithms run to completion: they provide a single answer after performing some fixed amount of computation. In some cases, however, the user may wish to terminate the algorithm prior to completion. The amount of computation required may be substantial, for example, and computational resources might need to be reallocated. Most algorithms either run to completion or they provide no useful solution information. Anytime algorithms, however, are able to return a partial answer, whose quality depends on the amount of computation they were able to perform. The answer generated by anytime algorithms is an approximation of the correct answer. == Names == An anytime algorithm may be also called an "interruptible algorithm". They are different from contract algorithms, which must declare a time in advance; in an anytime algorithm, a process can just announce that it is terminating. == Goals == The goal of anytime algorithms are to give intelligent systems the ability to make results of better quality in return for turn-around time. They are also supposed to be flexible in time and resources. They are important because artificial intelligence or AI algorithms can take a long time to complete results. This algorithm is designed to complete in a shorter amount of time. Also, these are intended to have a better understanding that the system is dependent and restricted to its agents and how they work cooperatively. An example is the Newton–Raphson iteration applied to finding the square root of a number. Another example that uses anytime algorithms is trajectory problems when you're aiming for a target; the object is moving through space while waiting for the algorithm to finish and even an approximate answer can significantly improve its accuracy if given early. What makes anytime algorithms unique is their ability to return many possible outcomes for any given input. An anytime algorithm uses many well defined quality measures to monitor progress in problem solving and distributed computing resources. It keeps searching for the best possible answer with the amount of time that it is given. It may not run until completion and may improve the answer if it is allowed to run longer. This is often used for large decision set problems. This would generally not provide useful information unless it is allowed to finish. While this may sound similar to dynamic programming, the difference is that it is fine-tuned through random adjustments, rather than sequential. Anytime algorithms are designed so that it can be told to stop at any time and would return the best result it has found so far. This is why it is called an interruptible algorithm. Certain anytime algorithms also maintain the last result, so that if they are given more time, they can continue from where they left off to obtain an even better result. == Decision trees == When the decider has to act, there must be some ambiguity. Also, there must be some idea about how to solve this ambiguity. This idea must be translatable to a state to action diagram. == Performance profile == The performance profile estimates the quality of the results based on the input and the amount of time that is allotted to the algorithm. The better the estimate, the sooner the result would be found. Some systems have a larger database that gives the probability that the output is the expected output. One algorithm can have several performance profiles. Most of the time performance profiles are constructed using mathematical statistics using representative cases. For example, in the traveling salesman problem, the performance profile was generated using a user-defined special program to generate the necessary statistics. In this example, the performance profile is the mapping of time to the expected results. This quality can be measured in several ways: certainty: where probability of correctness determines quality accuracy: where error bound determines quality specificity: where the amount of particulars determine quality == Algorithm prerequisites == Initial behavior: While some algorithms start with immediate guesses, others take a more calculated approach and have a start up period before making any guesses. Growth direction: How the quality of the program's "output" or result, varies as a function of the amount of time ("run time") Growth rate: Amount of increase with each step. Does it change constantly, such as in a bubble sort or does it change unpredictably? End condition: The amount of runtime needed

    Read more →
  • Theaitre

    Theaitre

    Theaitre (stylized as THEaiTRE) is an interdisciplinary research project investigating to what extent artificial intelligence is able to generate theatre play scripts. The first theatre play produced within the project, AI: When a Robot Writes a Play, premiered online on February 26, 2021. == Goal == Following similar previous projects such as Sunspring, a short sci-fi movie with an automatically generated script, the THEaiTRE project investigates whether current language generation approaches are mature enough to generate a theatre play script that could be successfully performed in front of an audience. The project falls within the area of generative art, famously represented e.g. by the portrait of Edmond de Belamy which was generated by an artificial neural network. In this field, artists are trying to use automated techniques to create "art", questioning the modern definition of art itself. More broadly, the project aims at promoting cooperation rather than competition of humans and artificial intelligence as the more beneficial approach for both. The first theatre play created within the project, titled AI: When a Robot Writes a Play, was presented in February 2021 at the 100th anniversary of the premiere of the R.U.R. theatre play by the Czech author Karel Čapek to celebrate the invention of the word "robot". While R.U.R. was a play written by a human about robots (and humans), THEaiTRE tried to reverse this idea by presenting a play written by a "robot" (artificial intelligence) about humans (and robots). The script of the play was published online, with marked parts of the text which were written manually or manually post-edited. The analysis shows that 90% of the script is automatically generated, with 10% manually written or manually post-edited. The project also plans to produce a second play in 2022, addressing some of the many shortcomings of the approach used to generate the first play, as well as attempting to further minimize the amount of human influence on the script. == Approach == At the core of the project is the GPT-2 language model by OpenAI with various adjustments motivated by the task of generating theatre play scripts, for which the model is not particularly trained. The GPT-2 model is used in the usual way, providing it with a start of a document and prompting it to generate a continuation of the document. Specifically, the input for GPT-2 in this project is typically a short description of the scene setting, followed by a few lines to introduce the characters and start the dialogue. The model then generates 10 continuation lines, and hands control to the user, who can then either ask the model to continue generating, or make various edits before letting the model to generate further, deleting some parts of the script or adding new lines into the script. The adjustments include restricting the generator to only produce lines pertaining to characters appearing in the input prompt, limiting the repetitiveness of the generated text, and employing automatic summarization of the input prompt and the generated text to overcome the limitation of the GPT-2 model which only attends to the last 1,024 subword tokens. The limitations of the model include, among other, a lack of distinctiveness and self-consistency of the characters, an inability to generate the script for the whole play (scripts for individual scenes are generated independently), and errors due to the employment of automated machine translation, as GPT-2 generates English texts but the final play script is being produced in Czech language. The source codes of the project are available under the MIT licence. The project has also published some sample outputs. == Team == The project is a cooperation of the following experts, all based in Prague, Czech Republic: computational linguists from the Faculty of Mathematics and Physics, Charles University theatre experts from the Švanda Theatre and from the Theatre Faculty of the Academy of Performing Arts in Prague hackers from CEE Hacks The project is financially supported by the Technology Agency of the Czech Republic.

    Read more →
  • Speech recognition

    Speech recognition

    Speech recognition (automatic speech recognition (ASR), computer speech recognition, or speech-to-text (STT)) is a sub-field of computational linguistics concerned with methods and technologies that translate spoken language into text or other interpretable forms. Speech recognition applications include voice user interfaces, where the user speaks to a device, which "listens" and processes the audio. Common voice applications include interpreting commands for calling, call routing, home automation, and aircraft control. These applications are called direct voice input. Productivity applications include searching audio recordings, creating transcripts, and dictation. Speech recognition can be used to analyse speaker characteristics, such as identifying native language using pronunciation assessment. Voice recognition (speaker identification) refers to identifying the speaker, rather than speech contents. Recognizing the speaker can simplify the task of translating speech in systems trained on a specific person's voice. It can also be used to authenticate the speaker as part of a security process. == History == Applications for speech recognition developed over many decades, with progress accelerated due to advances in deep learning and the use of big data. These advances are reflected in an increase in academic papers, and greater system adoption. Key areas of growth include vocabulary size, more accurate recognition for unfamiliar speakers (speaker independence), and faster processing speed. === Pre-1970 === 1952 – Bell Labs researchers, Stephen Balashek, R. Biddulph, and K. H. Davis, built Audrey for single-speaker digit recognition. Their system located the formants in the power spectrum of each utterance. 1960 – Gunnar Fant developed and published the source–filter model of speech production. 1962 – IBM's 16-word "Shoebox" machine's speech recognition debuted at the 1962 World's Fair. 1966 – Linear predictive coding, a speech coding method, was proposed by Fumitada Itakura of Nagoya University and Shuzo Saito of Nippon Telegraph and Telephone. 1969 – Funding at Bell Labs came to a halt for several years after the company's head engineer, John R. Pierce, wrote an open letter criticizing speech recognition research. This defunding lasted until Pierce retired and James L. Flanagan took over. Raj Reddy was the first person to work on continuous speech recognition, as a graduate student at Stanford University in the late 1960s. Previous systems required users to pause after each word. Reddy's system issued spoken commands for playing chess. Around this time, Soviet researchers invented the dynamic time warping (DTW) algorithm and used it to create a recognizer capable of operating on a 200-word vocabulary. DTW processed speech by dividing it into short frames (e.g. 10 ms segments) and treating each frame as a unit. Speaker independence, however, remained unsolved. === 1970–1990 === 1971 – DARPA funded a five-year speech recognition research project, Speech Understanding Research, seeking a minimum vocabulary size of 1,000 words. The project considered speech understanding a key to achieving progress in speech recognition, which was later disproved. BBN, IBM, Carnegie Mellon (CMU), and Stanford Research Institute participated. 1972 – The IEEE Acoustics, Speech, and Signal Processing group held a conference in Newton, Massachusetts. 1976 – The first ICASSP was held in Philadelphia, which became a major venue for publishing on speech recognition. During the late 1960s, Leonard Baum developed the mathematics of Markov chains at the Institute for Defense Analysis. A decade later, at CMU, Raj Reddy's students James Baker and Janet M. Baker began using the hidden Markov model (HMM) for speech recognition. James Baker had learned about HMMs while at the Institute for Defense Analysis. HMMs enabled researchers to combine sources of knowledge, such as acoustics, language, and syntax, in a unified probabilistic model. By the mid-1980s, Fred Jelinek's team at IBM created a voice-activated typewriter called Tangora, which could handle a 20,000-word vocabulary. Jelinek's statistical approach placed less emphasis on emulating human brain processes in favor of statistical modelling. (Jelinek's group independently discovered the application of HMMs to speech.) This was controversial among linguists since HMMs are too simplistic to account for many features of human languages. However, the HMM proved to be a highly useful way for modelling speech and replaced dynamic time warping as the dominant speech recognition algorithm in the 1980s. 1982 – Dragon Systems, founded by James and Janet M. Baker, was one of IBM's few competitors. === Practical speech recognition === The 1980s also saw the introduction of the n-gram language model. 1987 – The back-off model enabled language models to use multiple-length n-grams, and CSELT used HMM to recognize languages (in software and hardware, e.g. RIPAC). At the end of the DARPA program in 1976, the best computer available to researchers was the PDP-10 with 4 MB of RAM. It could take up to 100 minutes to decode 30 seconds of speech. Practical products included: 1984 – the Apricot Portable was released with up to 4096 words support, of which only 64 could be held in RAM at a time. 1987 – a recognizer from Kurzweil Applied Intelligence 1990 – Dragon Dictate, a consumer product released in 1990. AT&T deployed the Voice Recognition Call Processing service in 1992 to route telephone calls without a human operator. The technology was developed by Lawrence Rabiner and others at Bell Labs. By the early 1990s, the vocabulary of the typical commercial speech recognition system had exceeded the average human vocabulary. Reddy's former student, Xuedong Huang, developed the Sphinx-II system at CMU. Sphinx-II was the first to do speaker-independent, large vocabulary, continuous speech recognition, and it won DARPA's 1992 evaluation. Handling continuous speech with a large vocabulary was a major milestone. Huang later founded the speech recognition group at Microsoft in 1993. Reddy's student Kai-Fu Lee joined Apple, where, in 1992, he helped develop the Casper speech interface prototype. Lernout & Hauspie, a Belgium-based speech recognition company, acquired other companies, including Kurzweil Applied Intelligence in 1997 and Dragon Systems in 2000. L&H was used in Windows XP. L&H was an industry leader until an accounting scandal destroyed it in 2001. L&H speech technology was bought by ScanSoft, which became Nuance in 2005. Apple licensed Nuance software for its digital assistant Siri. ==== 2000s ==== In the 2000s, DARPA sponsored two speech recognition programs: Effective Affordable Reusable Speech-to-Text (EARS) in 2002, followed by Global Autonomous Language Exploitation (GALE) in 2005. Four teams participated in EARS: IBM; a team led by BBN with LIMSI and the University of Pittsburgh; Cambridge University; and a team composed of ICSI, SRI, and the University of Washington. EARS funded the collection of the Switchboard telephone speech corpus, which contained 260 hours of recorded conversations from over 500 speakers. The GALE program focused on Arabic and Mandarin broadcast news. Google's first effort at speech recognition came in 2007 after recruiting Nuance researchers. Its first product, GOOG-411, was a telephone-based directory service. Since at least 2006, the U.S. National Security Agency has employed keyword spotting, allowing analysts to index large volumes of recorded conversations and identify speech containing "interesting" keywords. Other government research programs focused on intelligence applications, such as DARPA's EARS program and IARPA's Babel program. In the early 2000s, speech recognition was dominated by hidden Markov models combined with feed-forward artificial neural networks (ANN). Later, speech recognition was taken over by long short-term memory (LSTM), a recurrent neural network (RNN) published by Sepp Hochreiter & Jürgen Schmidhuber in 1997. LSTM RNNs avoid the vanishing gradient problem and can learn "Very Deep Learning" tasks that require memories of events that happened thousands of discrete time steps earlier, which is important for speech. Around 2007, LSTMs trained with Connectionist Temporal Classification (CTC) began to outperform. In 2015, Google reported a 49 percent error‑rate reduction in its speech recognition via CTC‑trained LSTM. Transformers, a type of neural network based solely on attention, were adopted in computer vision and language modelling, and then to speech recognition. Deep feed-forward (non-recurrent) networks for acoustic modelling were introduced in 2009 by Geoffrey Hinton and his students at the University of Toronto, and by Li Deng and colleagues at Microsoft Research. In contrast to the prioer incremental improvements, deep learning decreased error rates by 30%. Both shallow and deep forms (e.g., recurrent nets) of ANNs had been explored since the 1980s. Howev

    Read more →
  • Fuzzy finite element

    Fuzzy finite element

    The fuzzy finite element method combines the well-established finite element method with the concept of fuzzy numbers, the latter being a special case of a fuzzy set. The advantage of using fuzzy numbers instead of real numbers lies in the incorporation of uncertainty (on material properties, parameters, geometry, initial conditions, etc.) in the finite element analysis. One way to establish a fuzzy finite element (FE) analysis is to use existing FE software (in-house or commercial) as an inner-level module to compute a deterministic result, and to add an outer-level loop to handle the fuzziness (uncertainty). This outer-level loop comes down to solving an optimization problem. If the inner-level deterministic module produces monotonic behavior with respect to the input variables, then the outer-level optimization problem is greatly simplified, since in this case the extrema will be located at the vertices of the domain.

    Read more →
  • Smartglasses

    Smartglasses

    Smartglasses or smart glasses are eye or head-worn wearable computers. Many smartglasses include displays that add information alongside or to what the wearer sees. Alternatively, smartglasses are sometimes defined as glasses that are able to change their optical properties, such as smart sunglasses that are programmed to change tint by electronic means. Alternatively, smartglasses are sometimes defined as glasses that include headphone functionality. A pair of smartglasses can be considered an augmented reality device if it performs pose tracking. Superimposing information onto a field of view is achieved through an optical head-mounted display (OHMD) or embedded wireless glasses with transparent heads-up display (HUD) or augmented reality (AR) overlay. These systems have the capability to reflect projected digital images as well as allowing the user to see through it or see better with it. While early models can perform basic tasks, such as serving as a front end display for a remote system, as in the case of smartglasses utilizing cellular technology or Wi-Fi, modern smart glasses are effectively wearable computers which can run self-contained mobile apps. Some are handsfree and can communicate with the Internet via natural language voice commands, while others use touch buttons. Like other computers, smartglasses may collect information from internal or external sensors. It may control or retrieve data from other instruments or computers. In most cases, it supports wireless technologies like Bluetooth, Wi-Fi, and GPS. A small number of models run a mobile operating system and function as portable media players to send audio and video files to the user via a Bluetooth or WiFi headset. Some smartglasses models also feature full lifelogging and activity tracker capability. Smartglasses devices may also have features found on a smartphone. Some have activity tracker functionality features (also known as "fitness tracker") as seen in some GPS watches. == Features and applications == As with other lifelogging and activity tracking devices, the GPS tracking unit and digital camera of some smartglasses can be used to record historical data. For example, after the completion of a workout, data can be uploaded into a computer or online to create a log of exercise activities for analysis. Some smart watches can serve as full GPS navigation devices, displaying maps and current coordinates. Users can "mark" their current location and then edit the entry's name and coordinates, which enables navigation to those new coordinates. Although some smartglasses models manufactured in the 21st century are completely functional as standalone products, most manufacturers recommend or even require that consumers purchase mobile phone handsets that run the same operating system so that the two devices can be synchronized for additional and enhanced functionality. The smartglasses can work as an extension, for head-up display (HUD) or remote control of the phone and alert the user to communication data such as calls, SMS messages, emails, and calendar invites. === Security applications === Smart glasses could be used as a body camera. In 2018, Chinese police in Zhengzhou and Beijing were using smart glasses to take photos which are compared against a government database using facial recognition to identify suspects, retrieve an address, and track people moving beyond their home areas. === Sport applications === Smart glasses are used in sports like cycling, running, skiing, golf, tennis, or sailing, giving athletes real-time, heads-up data without looking down at the screen of a watch or smartphone. In 2025, Meta has announced a new partnership with sports eyewear brand Oakley. === Healthcare applications === Several proofs of concept for Google Glasses have been proposed in healthcare. In July 2013, Lucien Engelen started research on the usability and impact of Google Glass in health care. Engelen, who is based at Singularity University and in Europe at Radboud University Medical Center, is participating in the Glass Explorer program. Key findings of Engelen's research included: The quality of pictures and video are usable for healthcare education, reference, and remote consultation. The camera needs to be tilted to different angle for most of the operative procedures Tele-consultation is possible—depending on the available bandwidth—during operative procedures. A stabilizer should be added to the video function to prevent choppy transmission when a surgeon looks to screens or colleagues. Battery life can be easily extended with the use of an external battery. Controlling the device and/or programs from another device is needed for some features because of a sterile environment. Text-to-speech ("Take a Note" to Evernote) exhibited a correction rate of 60 percent, without the addition of a medical thesaurus. A protocol or checklist displayed on the screen of Google Glass can be helpful during procedures. Dr. Phil Haslam and Dr. Sebastian Mafeld demonstrated the first concept for Google Glass in the field of interventional radiology. They demonstrated the manner in which the concept of Google Glass could assist a liver biopsy and fistulaplasty, and the pair stated that Google Glass has the potential to improve patient safety, operator comfort, and procedure efficiency in the field of interventional radiology. In June 2013, surgeon Dr. Rafael Grossmann was the first person to integrate Google Glass into the operating theater, when he wore the device during a PEG (percutaneous endoscopic gastrostomy) procedure. In August 2013, Google Glass was also used at Wexner Medical Center at Ohio State University. Surgeon Dr. Christopher Kaeding used Google Glass to consult with a colleague in a distant part of Columbus, Ohio. A group of students at The Ohio State University College of Medicine also observed the operation on their laptop computers. Following the procedure, Kaeding stated, "To be honest, once we got into the surgery, I often forgot the device was there. It just seemed very intuitive and fit seamlessly." 16 November 2013, in Santiago de Chile, the maxillofacial team led by Dr.gn Antonio Marino conducted the first orthognathic surgery assisted with Google Glass in Latin America, interacting with them and working with simultaneous three-dimensional navigation. The surgical team was interviewed by ADN radio. In January 2014, Indian Orthopedic Surgeon Selene G. Parekh conducted the foot and ankle surgery using Google Glass in Jaipur, which was broadcast live on Google website via the internet. The surgery was held during a three-day annual Indo-US conference attended by a team of experts from the US and co-organized by Ashish Sharma. Sharma said Google Glass allows looking at an X-Ray or MRI without taking the eye off of the patient and allows a doctor to communicate with a patient's family or friends during a procedure. In Australia, during January 2014, Melbourne tech startup Small World Social collaborated with the Australian Breastfeeding Association to create the first hands-free breastfeeding Google Glass application for new mothers. The application, named Google Glass Breastfeeding app trial, allows mothers to nurse their baby while viewing instructions about common breastfeeding issues (latching on, posture etc.) or call a lactation consultant via a secure Google Hangout, who can view the issue through the mother's Google Glass camera. The trial was successfully concluded in Melbourne in April 2014, and 100% of participants were breastfeeding confidently. == Display types == Various techniques have existed for see-through HMDs. Most of these techniques can be summarized into two main families: "Curved Mirror" (or Curved Combiner) based and "Waveguide" or "Light-guide" based. The mirror technique has been used in EyeTaps, by Meta in their Meta 1, by Vuzix in their Star 1200 product, by Olympus, and by Laster Technologies. Various waveguide techniques have existed for some time. These techniques include diffraction optics, holographic optics, polarized optics, reflective optics, and projection: Diffractive waveguide – slanted diffraction grating elements (nanometric 10E-9). Nokia technique now licensed to Vuzix. Holographic waveguide – 3 holographic optical elements (HOE) sandwiched together (RGB). Used by Sony and Konica Minolta. Reflective waveguide – A thick light guide with single semi-reflective mirror is used by Epson in their Moverio product. A curved light guide with partial-reflective segmented mirror array to out-couple the light is used by tooz technologies GmbH. Virtual retinal display (VRD) – Also known as a retinal scan display (RSD) or retinal projector (RP), is a display technology that draws a raster display (like a television) directly onto the retina of the eye - developed by MicroVision, Inc. OLED microdisplays for near-eye applications (outdoor optical equipment, night vision glasses, ocular equipment for medical devices, augme

    Read more →