Levenshtein automaton

Levenshtein automaton

In computer science, a Levenshtein automaton for a string w and a number n is a finite-state automaton that can recognize the set of all strings whose Levenshtein distance from w is at most n. That is, a string x is in the formal language recognized by the Levenshtein automaton if and only if x can be transformed into w by at most n single-character insertions, deletions, and substitutions. == Applications == Levenshtein automata may be used for spelling correction, by finding words in a given dictionary that are close to a misspelled word. In this application, once a word is identified as being misspelled, its Levenshtein automaton may be constructed, and then applied to all of the words in the dictionary to determine which ones are close to the misspelled word. If the dictionary is stored in compressed form as a trie, the time for this algorithm (after the automaton has been constructed) is proportional to the number of nodes in the trie, significantly faster than using dynamic programming to compute the Levenshtein distance separately for each dictionary word. It is also possible to find words in a regular language, rather than a finite dictionary, that are close to a given target word, by computing the Levenshtein automaton for the word, and then using a Cartesian product construction to combine it with an automaton for the regular language, giving an automaton for the intersection language. Alternatively, rather than using the product construction, both the Levenshtein automaton and the automaton for the given regular language may be traversed simultaneously using a backtracking algorithm. Levenshtein automata are used in Lucene for full-text searches that can return relevant documents even if the query is misspelled. == Construction == For any fixed constant n, the Levenshtein automaton for w and n may be constructed in time O(|w|). Mitankin studies a variant of this construction called the universal Levenshtein automaton, determined only by a numeric parameter n, that can recognize pairs of words (encoded in a certain way by bitvectors) that are within Levenshtein distance n of each other. Touzet proposed an effective algorithm to build this automaton. Yet a third finite automaton construction of Levenshtein (or Damerau–Levenshtein) distance are the Levenshtein transducers of Hassan et al., who show finite state transducers implementing edit distance one, then compose these to implement edit distances up to some constant.

Google Messages

Google Messages (formerly known as Messenger, Android Messages, and Messages by Google) is a text messaging software application developed by Google for its Android and Wear OS mobile operating systems. It is also available as a web app. Google's official universal messaging platform for the Android ecosystem, Messages employs SMS, MMS, and Rich Communication Services (RCS). Starting in 2023, Google has RCS activated by default on participating Android devices, similar to the implementation of iMessage on Apple devices. Samsung Messages will be discontinued on July 6th 2026, with Samsung transitioning users to Google Messages as the default messaging application. == History == The original code for Android SMS messaging was released in 2009 integrated into the operating system. It was released as a standalone application independent of Android with the release of Android 5.0 Lollipop in 2014, replacing Google Hangouts as the default SMS app on Google's Nexus line of phones. In 2018, Messages adopted RCS messages and evolved to send larger data files, sync with other apps, and even create mass messages. This was in preparation for when Google launched Messages for web. In December 2019, Google began to introduce support for Rich Communication Services (RCS) messaging via an RCS service hosted by Google, referred to in the user interface as "chat features". This was followed by a wider global rollout throughout 2020. The app surpassed 1 billion installs in April 2020, doubling its number of installs in less than a year. Initially, RCS did not support end-to-end encryption. In June 2021, Google introduced end-to-end encryption in Messages by default using the Signal Protocol, for all one-to-one RCS-based conversations, for all RCS group chats in December 2022 for beta users, and for all RCS users by August 2023, as well as enabling RCS for all users by default to encourage encryption. In July 2023, Google announced it would build the Message Layer Security (MLS) end-to-end encryption protocol into Google Messages. Beginning with the Samsung Galaxy S21, Messages replaces Samsung's in-house Messages app as the default text messaging app for One UI for some regions and carriers. In April 2021, the app began to receive UI modifications on Samsung devices to follow aspects of One UI, including pushing the top of the message list towards the middle of the screen to improve ergonomics. In February 2023, Google began to replace references to "chat features" in the Messages user interface with "RCS". In August 2023, Google announced that Messages will use RCS by default for all users unless they opt out, to allow them to benefit from secure messaging. In December 2023, with the arrival of several new features, the app was renamed "Google Messages". In July 2024, Samsung announced it would no longer pre-install Samsung Messages on its Galaxy devices in some regions, starting with the Galaxy Z Fold 6 and Flip, favoring Google Messages instead. In April 2026, Samsung announced that Samsung Messages would be discontinued in July 2026. It encouraged users to switch to Google Messages. == Features == Some of the most important features in Google Messages are: Send instant text and voice messages in 1:1 or group chat conversations over mobile data and Wi-Fi, via Android, Wear OS or the web. End-to-end encryption for RCS chats. Typing, sent, delivered and read status Reply and react to specific messages Share files and high-resolution photos Voice message transcriptions Schedule messages In-app reminders for birthdays and messages you didn't respond to after some time with Nudges Tight integration with the Google ecosystem, e.g. Google Calendar, Meet, Maps, YouTube, Photos, Contacts, Assistant, Search, Safe Browsing etc. Web interface: Users can visit https://messages.google.com/web and either sign in with their Google account or scan the QR code that is shown with their smartphone to access a limited web version of the app that allows them to send and receive messages, provided the smartphone remains connected. Phone number recognition: The app shows the country and province of the caller. Additionally, it can show the company's name or a warning for spam calls if the number is registered in a data base. Access to the Gemini chatbot on select Pixel, Galaxy and Android devices.

Evolutionary acquisition of neural topologies

Evolutionary acquisition of neural topologies (EANT/EANT2) is an evolutionary reinforcement learning method that evolves both the topology and weights of artificial neural networks. It is closely related to the works of Angeline et al. and Stanley and Miikkulainen. Like the work of Angeline et al., the method uses a type of parametric mutation that comes from evolution strategies and evolutionary programming (now using the most advanced form of the evolution strategies CMA-ES in EANT2), in which adaptive step sizes are used for optimizing the weights of the neural networks. Similar to the work of Stanley (NEAT), the method starts with minimal structures which gain complexity along the evolution path. == Contribution of EANT to neuroevolution == Despite sharing these two properties, the method has the following important features which distinguish it from previous works in neuroevolution. It introduces a genetic encoding called common genetic encoding (CGE) that handles both direct and indirect encoding of neural networks within the same theoretical framework. The encoding has important properties that makes it suitable for evolving neural networks: It is complete in that it is able to represent all types of valid phenotype networks. It is closed, i.e. every valid genotype represents a valid phenotype. (Similarly, the encoding is closed under genetic operators such as structural mutation and crossover.) These properties have been formally proven. For evolving the structure and weights of neural networks, an evolutionary process is used, where the exploration of structures is executed at a larger timescale (structural exploration), and the exploitation of existing structures is done at a smaller timescale (structural exploitation). In the structural exploration phase, new neural structures are developed by gradually adding new structures to an initially minimal network that is used as a starting point. In the structural exploitation phase, the weights of the currently available structures are optimized using an evolution strategy. == Performance == EANT has been tested on some benchmark problems such as the double-pole balancing problem, and the RoboCup keepaway benchmark. In all the tests, EANT was found to perform very well. Moreover, a newer version of EANT, called EANT2, was tested on a visual servoing task and found to outperform NEAT and the traditional iterative Gauss–Newton method. Further experiments include results on a classification problem.

Xaitment

xaitment is a German-based company that develops and sells artificial intelligence (AI) software to video game developers and simulation developers. The company was founded in 2004 by Dr. Andreas Gerber, and is a spin-off of the German Research Centre for Artificial Intelligence, or DFKI. xaitment has its main office in Quierschied, Germany, and field offices in San Francisco and China. == Products == xaitment currently sells two AI software modules: xaitMap and xaitControl. xaitMap provides runtime libraries and graphical tools for navigation mesh generation (also called NavMesh generation), pathfinding, dynamic collision avoidance, and individual and crowd movement. xaitControl is a finite-state machine for game logic and character behavior modeling that also includes a real-time debugger. On January 11, 2012, xaitment announced that it making its source code for these modules available to "all current and future US and European licensees". On February 22, 2012 xaitment released two new plug-ins, xaitMap and xaitControl for the Unity Game Engine. The full versions are available for PC (Windows and Linux), PlayStation 3, Xbox 360 and Wii. The pathfinding plug-in is available with a Windows dev environment, but can deployed on iOS, Mac, Android and the Unity Web Player. == Partners == xaitment's AI software is currently integrated into the Unity game engine, Havok's Vision Engine, Bohemia Interactive's VBS2 Simulation Engine, GameBase's Gamebryo game engine. == Customers == xaitment sells its AI software products to video game developers and military and civil simulation developers. Current customers include Tencent, gamania, TML Studios, Emobi Games, IP Keys and others. A full list of customers can be found on xaitment's website.

Degree of truth

In classical logic, propositions are typically unambiguously considered as being true or false. For instance, the proposition one is both equal and not equal to itself is regarded as simply false, being contrary to the Law of Noncontradiction; while the proposition one is equal to one is regarded as simply true, by the Law of Identity. However, some mathematicians, computer scientists, and philosophers have been attracted to the idea that a proposition might be more or less true, rather than wholly true or wholly false. Consider this pizza is hot. In mathematics, this idea can be developed in terms of fuzzy logic. In computer science, it has found application in artificial intelligence. In philosophy, the idea has proved particularly appealing in the case of vagueness. Degrees of truth is an important concept in law. The term is an older concept than conditional probability. Instead of determining the objective probability, only a subjective assessment is defined. In adjudicative processes, 'substantive truth' is distinct from 'formal legal truth' which comes in four degrees: hearsay, balance of probabilities, proven beyond reasonable doubt and absolute truth (knowledge reserved unto God).

Structured-light 3D scanner

A structured-light 3D scanner is a device used to capture the three-dimensional shape of an object by projecting light patterns, such as grids or stripes, onto its surface. The deformation of these patterns is recorded by cameras and processed using specialized algorithms to generate a detailed 3D model. Structured-light 3D scanning is widely employed in fields such as industrial design, quality control, cultural heritage preservation, augmented reality gaming, and medical imaging. Compared to laser-based 3D scanning, structured-light scanners use non-coherent light sources, such as LEDs or projectors, which enable faster data acquisition and eliminate potential safety concerns associated with lasers. However, the accuracy of structured-light scanning can be influenced by external factors, including ambient lighting conditions and the reflective properties of the scanned object. == Principle == Projecting a narrow band of light onto a three-dimensional surface creates a line of illumination that appears distorted when viewed from perspectives other than that of the projector. This distortion can be analyzed to reconstruct the geometry of the surface, a technique known as light sectioning. Projecting patterns composed of multiple stripes or arbitrary fringes simultaneously enables the acquisition of numerous data points at once, improving scanning speed. While various structured light projection techniques exist, parallel stripe patterns are among the most commonly used. By analyzing the displacement of these stripes, the three-dimensional coordinates of surface details can be accurately determined. === Generation of light patterns === Two major methods of stripe pattern generation have been established: Laser interference and projection. The laser interference method works with two wide planar laser beam fronts. Their interference results in regular, equidistant line patterns. Different pattern sizes can be obtained by changing the angle between these beams. The method allows for the exact and easy generation of very fine patterns with unlimited depth of field. Disadvantages are high cost of implementation, difficulties providing the ideal beam geometry, and laser typical effects like speckle noise and the possible self interference with beam parts reflected from objects. Typically, there is no means of modulating individual stripes, such as with Gray codes. The projection method uses incoherent light and basically works like a video projector. Patterns are usually generated by passing light through a digital spatial light modulator, typically based on one of the three currently most widespread digital projection technologies, transmissive liquid crystal, reflective liquid crystal on silicon (LCOS) or digital light processing (DLP; moving micro mirror) modulators, which have various comparative advantages and disadvantages for this application. Other methods of projection could be and have been used, however. Patterns generated by digital display projectors have small discontinuities due to the pixel boundaries in the displays. Sufficiently small boundaries however can practically be neglected as they are evened out by the slightest defocus. A typical measuring assembly consists of one projector and at least one camera. For many applications, two cameras on opposite sides of the projector have been established as useful. Invisible (or imperceptible) structured light uses structured light without interfering with other computer vision tasks for which the projected pattern will be confusing. Example methods include the use of infrared light or of extremely high framerates alternating between two exact opposite patterns. === Calibration === Geometric distortions by optics and perspective must be compensated by a calibration of the measuring equipment, using special calibration patterns and surfaces. A mathematical model is used for describing the imaging properties of projector and cameras. Essentially based on the simple geometric properties of a pinhole camera, the model also has to take into account the geometric distortions and optical aberration of projector and camera lenses. The parameters of the camera as well as its orientation in space can be determined by a series of calibration measurements, using photogrammetric bundle adjustment. === Analysis of stripe patterns === There are several depth cues contained in the observed stripe patterns. The displacement of any single stripe can directly be converted into 3D coordinates. For this purpose, the individual stripe has to be identified, which can for example be accomplished by tracing or counting stripes (pattern recognition method). Another common method projects alternating stripe patterns, resulting in binary Gray code sequences identifying the number of each individual stripe hitting the object. An important depth cue also results from the varying stripe widths along the object surface. Stripe width is a function of the steepness of a surface part, i.e. the first derivative of the elevation. Stripe frequency and phase deliver similar cues and can be analyzed by a Fourier transform. Finally, the wavelet transform has recently been discussed for the same purpose. In many practical implementations, series of measurements combining pattern recognition, Gray codes and Fourier transform are obtained for a complete and unambiguous reconstruction of shapes. Another method also belonging to the area of fringe projection has been demonstrated, utilizing the depth of field of the camera. It is also possible to use projected patterns primarily as a means of structure insertion into scenes, for an essentially photogrammetric acquisition. === Precision and range === The optical resolution of fringe projection methods depends on the width of the stripes used and their optical quality. It is also limited by the wavelength of light. An extreme reduction of stripe width proves inefficient due to limitations in depth of field, camera resolution and display resolution. Therefore, the phase shift method has been widely established: A number of at least 3, typically about 10 exposures are taken with slightly shifted stripes. The first theoretical deductions of this method relied on stripes with a sine wave shaped intensity modulation, but the methods work with "rectangular" modulated stripes, as delivered from LCD or DLP displays as well. By phase shifting, surface detail of e.g. 1/10 the stripe pitch can be resolved. Current optical stripe pattern profilometry hence allows for detail resolutions down to the wavelength of light, below 1 micrometer in practice or, with larger stripe patterns, to approx. 1/10 of the stripe width. Concerning level accuracy, interpolating over several pixels of the acquired camera image can yield a reliable height resolution and also accuracy, down to 1/50 pixel. Arbitrarily large objects can be measured with accordingly large stripe patterns and setups. Practical applications are documented involving objects several meters in size. Typical accuracy figures are: Planarity of a 2-foot (0.61 m) wide surface, to 10 micrometres (0.00039 in). Shape of a motor combustion chamber to 2 micrometres (7.9×10−5 in) (elevation), yielding a volume accuracy 10 times better than with volumetric dosing. Shape of an object 2 inches (51 mm) large, to about 1 micrometre (3.9×10−5 in) Radius of a blade edge of e.g. 10 micrometres (0.00039 in), to ±0.4 μm === Navigation === As the method can measure shapes from only one perspective at a time, complete 3D shapes have to be combined from different measurements in different angles. This can be accomplished by attaching marker points to the object and combining perspectives afterwards by matching these markers. The process can be automated, by mounting the object on a motorized turntable on robotic inspection cell, or CNC positioning device. Markers can as well be applied on a positioning device instead of the object itself. The 3D data gathered can be used to retrieve CAD (computer aided design) data and models from existing components (reverse engineering), hand formed samples or sculptures, natural objects or artifacts. === Challenges === As with all optical methods, reflective or transparent surfaces raise difficulties. Reflections cause light to be reflected either away from the camera or right into its optics. In both cases, the dynamic range of the camera can be exceeded. Transparent or semi-transparent surfaces also cause major difficulties. In these cases, coating the surfaces with a thin opaque lacquer just for measuring purposes is a common practice. A recent method handles highly reflective and specular objects by inserting a 1-dimensional diffuser between the light source (e.g., projector) and the object to be scanned. Alternative optical techniques have been proposed for handling perfectly transparent and specular objects. Double reflections and inter-reflections can cause the stripe pattern to be overlaid with unwanted ligh

Futuresport

Futuresport is a 1998 American made-for-television sports film directed by Ernest Dickerson, starring Dean Cain, Vanessa Williams, and Wesley Snipes. It originally aired on ABC in October 1998, was released on VHS and DVD in March 1999 and then distributed outside of the U.S. by Minerva Pictures. == Plot == The film is set in 2025, and centers on a sport called "Futuresport" (a combination of basketball, baseball and hockey that uses hoverboards and rollerblades) created as a non-lethal way to reduce gang warfare. Tre Ramzey (Dean Cain) along with his ex-girlfriend Alex Torres (Vanessa Williams) and his old coach Obike Fixx (Wesley Snipes) must prevent an all out war between the North American Alliance and the Pan-Pacific Commonwealth (The Com). At stake is who rules over the Hawaiian Islands—which are being terrorized by Eric Sythe (JR Bourne) and his gang the Hawaiian Liberation Organization (Hilo). It takes a revolutionary sport to stop a revolution. == Cast ==