Data Science and Predictive Analytics

Data Science and Predictive Analytics

The first edition of the textbook Data Science and Predictive Analytics: Biomedical and Health Applications using R, authored by Ivo D. Dinov, was published in August 2018 by Springer. The second edition of the book was printed in 2023. This textbook covers some of the core mathematical foundations, computational techniques, and artificial intelligence approaches used in data science research and applications. By using the statistical computing platform R and a broad range of biomedical case-studies, the 23 chapters of the book first edition provide explicit examples of importing, exporting, processing, modeling, visualizing, and interpreting large, multivariate, incomplete, heterogeneous, longitudinal, and incomplete datasets (big data). == Structure == === First edition table of contents === The first edition of the Data Science and Predictive Analytics (DSPA) textbook is divided into the following 23 chapters, each progressively building on the previous content. === Second edition table of contents === The significantly reorganized revised edition of the book (2023) expands and modernizes the presented mathematical principles, computational methods, data science techniques, model-based machine learning and model-free artificial intelligence algorithms. The 14 chapters of the new edition start with an introduction and progressively build foundational skills to naturally reach biomedical applications of deep learning. Introduction Basic Visualization and Exploratory Data Analytics Linear Algebra, Matrix Computing, and Regression Modeling Linear and Nonlinear Dimensionality Reduction Supervised Classification Black Box Machine Learning Methods Qualitative Learning Methods—Text Mining, Natural Language Processing, and Apriori Association Rules Learning Unsupervised Clustering Model Performance Assessment, Validation, and Improvement Specialized Machine Learning Topics Variable Importance and Feature Selection Big Longitudinal Data Analysis Function Optimization Deep Learning, Neural Networks == Reception == The materials in the Data Science and Predictive Analytics (DSPA) textbook have been peer-reviewed in the Journal of the American Statistical Association, International Statistical Institute’s ISI Review Journal, and the Journal of the American Library Association. Many scholarly publications reference the DSPA textbook. As of January 17, 2021, the electronic version of the book first edition (ISBN 978-3-319-72347-1) is freely available on SpringerLink and has been downloaded over 6 million times. The textbook is globally available in print (hardcover and softcover) and electronic formats (PDF and EPub) in many college and university libraries and has been used for data science, computational statistics, and analytics classes at various institutions.

The Future of Work and Death

The Future of Work and Death is a 2016 documentary by Sean Blacknell and Wayne Walsh about the exponential growth of technology. The film showed at several film festivals including Raindance Film Festival, International Film Festival Rotterdam, Academia Film Olomouc and CPH:DOX. In May 2017 it received an official screening at the European Commission. It was distributed by First Run Features and Journeyman Pictures and was released on iTunes, Amazon Prime and On-demand on 9 May 2017. The film was made available on Sundance Now on 27 November 2017. A companion piece to the film, The Cost of Living, a documentary concerning universal basic income in Britain, was released on Amazon Prime on 8 October 2020. == Synopsis == World experts in the fields of futurology, anthropology, neuroscience, and philosophy consider the impact of technological advances on the two 'certainties' of human life; work and death. Charting human developments from Homo habilis, past the Industrial Revolution, to the digital age and beyond, the film looks at the shocking exponential rate at which mankind has managed to create technologies to ease the process of living. As we embark on the next phase of our adaptation, with automation and artificial intelligence signifying the complete move from man to machine, the film asks what the implications are for human fulfilment in an approaching era of job obsolescence and extreme longevity. == Cast == Dudley Sutton – Narrator Aubrey de Grey – Biomedical gerontologist and CSO of the SENS Research Foundation Will Self – Writer, journalist, political commentator and Professor of Contemporary Thought at Brunel University Rudolph E. Tanzi – Professor of Neurology at Harvard University and Director of the Genetics and Aging Research Unit at Massachusetts General Hospital (MGH) Martin Ford – Futurist and author Steve Fuller – Auguste Comte Chair in Social Epistemology at the Department of sociology at University of Warwick Murray Shanahan – Professor of Cognitive Robotics at Imperial College London Gray Scott – Futurist, executive producer of this production Vivek Wadhwa – Entrepreneur, academic and Director of Research at the Center for Entrepreneurship and Research Commercialization at the Pratt School of Engineering, Duke University Zoltan Istvan – Transhumanist and journalist Joanna Cook – Anthropologist, University College London Nicholas Kamara – Physician, Kable Hospital David Pearce – Transhumanist philosopher and co-founder of Humanity+ Peter Cochrane – Futurist and entrepreneur John Harris – Bioethicist, philosopher and Director of the Institute for Science, Ethics and Innovation at the University of Manchester Riva Melissa-Tez – Entrepreneur and transhumanist Ian Pearson – Futurologist Stuart Armstrong – Artificial intelligence researcher at Future of Humanity Institute

Constructive cooperative coevolution

The constructive cooperative coevolutionary algorithm (also called C3) is a global optimisation algorithm in artificial intelligence based on the multi-start architecture of the greedy randomized adaptive search procedure (GRASP). It incorporates the existing cooperative coevolutionary algorithm (CC). The considered problem is decomposed into subproblems. These subproblems are optimised separately while exchanging information in order to solve the complete problem. An optimisation algorithm, usually but not necessarily an evolutionary algorithm, is embedded in C3 for optimising those subproblems. The nature of the embedded optimisation algorithm determines whether C3's behaviour is deterministic or stochastic. The C3 optimisation algorithm was originally designed for simulation-based optimisation but it can be used for global optimisation problems in general. Its strength over other optimisation algorithms, specifically cooperative coevolution, is that it is better able to handle non-separable optimisation problems. An improved version was proposed later, called the Improved Constructive Cooperative Coevolutionary Differential Evolution (C3iDE), which removes several limitations with the previous version. A novel element of C3iDE is the advanced initialisation of the subpopulations. C3iDE initially optimises the subpopulations in a partially co-adaptive fashion. During the initial optimisation of a subpopulation, only a subset of the other subcomponents is considered for the co-adaptation. This subset increases stepwise until all subcomponents are considered. This makes C3iDE very effective on large-scale global optimisation problems (up to 1000 dimensions) compared to cooperative coevolutionary algorithm (CC) and Differential evolution. The improved algorithm has then been adapted for multi-objective optimization. == Algorithm == As shown in the pseudo code below, an iteration of C3 exists of two phases. In Phase I, the constructive phase, a feasible solution for the entire problem is constructed in a stepwise manner. Considering a different subproblem in each step. After the final step, all subproblems are considered and a solution for the complete problem has been constructed. This constructed solution is then used as the initial solution in Phase II, the local improvement phase. The CC algorithm is employed to further optimise the constructed solution. A cycle of Phase II includes optimising the subproblems separately while keeping the parameters of the other subproblems fixed to a central blackboard solution. When this is done for each subproblem, the found solution are combined during a "collaboration" step, and the best one among the produced combinations becomes the blackboard solution for the next cycle. In the next cycle, the same is repeated. Phase II, and thereby the current iteration, are terminated when the search of the CC algorithm stagnates and no significantly better solutions are being found. Then, the next iteration is started. At the start of the next iteration, a new feasible solution is constructed, utilising solutions that were found during the Phase I of the previous iteration(s). This constructed solution is then used as the initial solution in Phase II in the same way as in the first iteration. This is repeated until one of the termination criteria for the optimisation is reached, e.g. a maximum number of evaluations. {Sphase1} ← ∅ while termination criteria not satisfied do if {Sphase1} = ∅ then {Sphase1} ← SubOpt(∅, 1) end if while pphase1 not completely constructed do pphase1 ← GetBest({Sphase1}) {Sphase1} ← SubOpt(pphase1, inext subproblem) end while pphase2 ← GetBest({Sphase1}) while not stagnate do {Sphase2} ← ∅ for each subproblem i do {Sphase2} ← SubOpt(pphase2,i) end for {Sphase2} ← Collab({Sphase2}) pphase2 ← GetBest({Sphase2}) end while end while == Multi-objective optimisation == The multi-objective version of the C3 algorithm is a Pareto-based algorithm which uses the same divide-and-conquer strategy as the single-objective C3 optimisation algorithm . The algorithm again starts with the advanced constructive initial optimisations of the subpopulations, considering an increasing subset of subproblems. The subset increases until the entire set of all subproblems is included. During these initial optimisations, the subpopulation of the latest included subproblem is evolved by a multi-objective evolutionary algorithm. For the fitness calculations of the members of the subpopulation, they are combined with a collaborator solution from each of the previously optimised subpopulations. Once all subproblems' subpopulations have been initially optimised, the multi-objective C3 optimisation algorithm continues to optimise each subproblem in a round-robin fashion, but now collaborator solutions from all other subproblems' subspopulations are combined with the member of the subpopulation that is being evaluated. The collaborator solution is selected randomly from the solutions that make up the Pareto-optimal front of the subpopulation. The fitness assignment to the collaborator solutions is done in an optimistic fashion (i.e. an "old" fitness value is replaced when the new one is better). == Applications == The constructive cooperative coevolution algorithm has been applied to different types of problems, e.g. a set of standard benchmark functions, optimisation of sheet metal press lines and interacting production stations. The C3 algorithm has been embedded with, amongst others, the differential evolution algorithm and the particle swarm optimiser for the subproblem optimisations.

Supreme Commander (video game)

Supreme Commander (sometimes SupCom) is a 2007 real-time strategy video game designed by Chris Taylor and developed by his company, Gas Powered Games. The game is considered to be a spiritual successor, not a direct sequel, to Taylor's 1997 game Total Annihilation. First announced in the August 2005 edition of PC Gamer magazine, the game was released in Europe on February 16, 2007, and in North America on February 20. The standalone expansion Supreme Commander: Forged Alliance was released on November 6 of the same year. The sequel, Supreme Commander 2, was released in 2010. Nowadays, the original Supreme Commander is played through the community client called Forged Alliance Forever; the game has been further developed and balanced, and offers a wide variety of community mods. The gameplay of Supreme Commander focuses on using a giant bipedal mech called an Armored Command Unit (ACU), the so-called "Supreme Commander", to build a base, upgrading units to reach higher technology tiers, and conquering opponents. The player can command one of three factions: the Aeon Illuminate, the Cybran Nation, or the United Earth Federation (UEF). The expansion game added the Seraphim faction. Supreme Commander was highly anticipated in pre-release previews, and was well received by critics, with a Metacritic average of 86 out of 100. == Gameplay == Supreme Commander, like its spiritual predecessors, Total Annihilation and Spring, begins with the player solely possessing a single, irreplaceable construction unit called the "Armored Command Unit," or ACU, the titular Supreme Commander. Normally the loss of this unit results in the loss of the game (Skirmish missions can be set for a variety of victory conditions). These mech suits are designed to be transported through quantum gateways across the galaxy and contain all the materials and blueprints necessary to create an army from a planet's native resources in hours. All standard units except Commanders and summoned Support Commanders (sACU) are self-sufficient robots. All units and structures belong to one of four technology tiers, or "Tech" levels, each tier being stronger and/or more efficient than the previous. Certain lower-tier structures can be upgraded into higher ones without having to rebuild them. The first tier is available at the start of the game and consists of small, relatively weak units and structures. The second tier expands the player's abilities greatly, especially in terms of stationary weapons and shielding, and introduces upgraded versions of tier one units. The third tier level has very powerful assault units designed to overcome the fortifications of the most entrenched player. The fourth tier is a limited range of "experimental" technology. These are usually massive units which take a lot of time and energy to produce, but provide a significant tactical advantage. Supreme Commander features a varied skirmish AI. The typical Easy' and Normal modes are present, but the Hard difficulty level has four possible variants. Horde AI will swarm the player with hordes of lower level units, Tech AI will upgrade its units as fast as possible and assault the player with advanced units, the Balanced AI attempts to find a balance between the two, and the Supreme AI decides which of the three hard strategies is best for the map. The single player campaign consists of eighteen missions, six for each faction. The player is an inexperienced Commander who plays a key role in their faction's campaign to bring the "Infinite War" to an end. Despite the low number of campaign missions, each mission can potentially last hours. At the start of a mission, objectives are assigned for the player to complete. Once the player accomplishes them, the map is expanded, sometimes doubling or tripling in size, and new objectives are assigned. As the mission is commonly divided into three segments, the player will often have to overcome several enemy positions to achieve victory. === Resource management === Because humans have developed replication technology, making advanced use of rapid prototyping and nanotechnology, only two types of resources are required to wage war: Energy and Mass. Energy is obtained by constructing power generators on any solid surface (except fuel generators, which can only be built on fuel deposits), while Mass is obtained either by placing mass extractors on limited mass deposit spots (the most efficient method, although it requires map control) or by building mass fabricators to convert energy into mass. Constructor units can gather energy by "reclaiming" it from organic debris such as trees and mass from rocks and wrecked units. Each player has a certain amount of resource storage, which can be expanded by the construction of storage structures. This gives the player reserves in times of shortage or allows them to stockpile resources. If the resource generation exceeds the player's capacity, the material is wasted. On the contrary, if the storages are depleted and the demand of one of the resources exceeds the production, then all the productions speed is reduced. In addition, if an energy deficit occurs, shields will stop working. An adjacency system allows certain structures to benefit from being built directly adjacent to others. Energy-consuming structures will use less energy when built adjacent to power generators and power generators will produce more energy when built adjacent to power storage structures. The same applies to their mass-producing equivalents. Likewise, factories will consume less energy and mass when built adjacent to power generators and mass fabricators/extractors, respectively. However, by placing structures in close proximity, they become more vulnerable to collateral damage if an adjacent structure is destroyed. Furthermore, most resource generation structures can cause chain reactions when destroyed (especially Tier III structures, which produce large amounts of resources but often have large detonations that can wipe out a nearby army). === Warfare === Supreme Commander uses a "strategic zoom" system that allows the player to seamlessly zoom from a detailed close up view of an individual unit all the way out to a view of the entire map, at which point it resembles a fullscreen version of the minimap denoting individual units with icons. The camera also has a free movement mode and can be slaved to track a selected unit and there is a split screen mode which also supports multiple monitors. This system allows Supreme Commander to use vast maps up to 80 km x 80 km, with players potentially controlling a thousand units each. Units in Supreme Commander are built to scale as they would be in the real world. For example, battleships dwarf submarines. Late into the game, the larger "experimental" units, such as the Cybran Monkeylord, an enormous spider-shaped assault unit, can actually crush smaller enemy units by stepping on them. Because of the wide range of planets colonized by humanity in the setting, the theatres of war range from desert to arctic, and all battlespaces are employed. Technologies emerging in modern warfare are frequently employed in Supreme Commander. For example, stealth technology and both tactical and strategic missile and missile defense systems can be used. Supreme Commander introduced several innovations designed to reduce the amount of micromanagement inherent in many RTS games. Engineers units have the command "assist", that will help follow other engineers and help them finish their orders or improve production rate of factories. In addition, engineers with the order "patrol" will repair units, buildings and recycle wrecks in their along their patrol route. Holding the shift key causes any orders given to a unit (or group of units) to be queued. In this manner a unit may be ordered to attack several targets in succession, or to make best speed to a given point on the map and then attack towards a specified location engaging any hostiles it encounters along the way. After orders have been issued, holding the shift key causes all issued orders to be displayed on the map where they can be subsequently modified to accommodate a change of plan. Further, when a unit is ordered to attack a target, the player can issue an order to perform a coordinated attack to another unit. This order coordinates the arrival time of the units at the target automatically by adjusting the speed of the units involved. As in other RTS games, air transports can be used to convey units to specified destinations, in Supreme Commander though by shift queuing orders a transport containing several units can be ordered to drop specific units at subsequent waypoints. An air transport can also be ordered to create a ferry route, an airbridge wherein any land units ordered to the start of the ferry route will be conveyed by the air transport to the specified destination. The output from a production factory can be routed to a ferry route causing all units co

Resistance Database Initiative

HIV Resistance Response Database Initiative (RDI) was formed in 2002 to use artificial intelligence (AI) to predict how patients will respond to HIV drugs using data from more 250,000 patients from around 50 countries around the world. The RDI used its models to power its HIV Treatment Response Prediction System (HIV-TRePS). Launched in 2010, this free online tool enabled healthcare professionals to upload their patient’s data and obtain highly accurate predictions of how they would respond to different combinations of the 30 or more drugs available. The tool enabled physicians to individualize their patients’ treatment, using these predictions based on more than a million patient-years of treatment experience. HIV-TRePS was possibly the first ever AI-based system for medical decision-making to be developed, successfully tested, and used in clinical practice. It has since been used by thousands of healthcare professionals to optimise the treatment of tens of thousands of patients. Since the RDI’s inception the treatment of HIV infection has progressed enormously, with more effective and better tolerated drugs available in ever more convenient combination formulations. In most countries HIV is now considered a chronic, manageable condition. Moreover, the success of the drugs in reducing the amount of virus is substantially reducing the onward transmission of the virus and cases of new infections are falling in many settings. This improvement in HIV treatment means the need for sophisticated AI to support HIV treatment decisions has significantly reduced. In response, the RDI ceased development of further models and, in March 2024, withdrew its HIV-TRePS system. == Background == Human immunodeficiency virus (HIV) is the virus that causes acquired immunodeficiency syndrome (AIDS), a condition in which the immune system begins to fail, leading to life-threatening opportunistic infections. There are approximately 30 HIV antiretroviral drugs that have been approved for the treatment of HIV infection, from six different classes, based on the point in the HIV life-cycle at which they act. They are used in combination; typically 3 or more drugs from 2 or more different classes, a form of therapy known as highly active antiretroviral therapy (HAART). The aim of therapy is to suppress the virus to very low, ideally undetectable, levels in the blood. This prevents the virus from depleting the immune cells that it preferentially attacks CD4 cells and prevents or delays illness and death. Despite the expanding availability of these drugs and the impact of their use, treatments continue to fail, often involving to the development of resistance. During drug therapy, low-level virus replication may still occur, particularly when a patient misses a dose. HIV makes errors in copying its genetic material and, if a mutation makes the virus resistant to one or more of the drugs in the patient's treatment, it may begin to replicate more successfully in the presence of that drug and undermine the effect of the treatment. If this happens, the treatment needs to be changed to re-establish control over the virus. == RDI's Approach == The RDI’s approach was to use artificial intelligence (including neural network and random forest models), trained with data from hundreds of thousands of patients, treated with different drugs in a variety of clinical settings all over the world, to predict how an individual patient will respond to any new combination of HIV drugs. The models were tested with independent data sets and consistently achieved accuracy of approximately 80%.

Template matching

Template matching is a technique in digital image processing for finding small parts of an image which match a template image. It can be used for quality control in manufacturing, navigation of mobile robots, or edge detection in images. The main challenges in a template matching task are detection of occlusion, when a sought-after object is partly hidden in an image; detection of non-rigid transformations, when an object is distorted or imaged from different angles; sensitivity to illumination and background changes; background clutter; and scale changes. == Feature-based approach == The feature-based approach to template matching relies on the extraction of image features, such as shapes, textures, and colors, that match the target image or frame. This approach is usually achieved using neural networks and deep-learning classifiers such as VGG, AlexNet, and ResNet.Convolutional neural networks (CNNs), which many modern classifiers are based on, process an image by passing it through different hidden layers, producing a vector at each layer with classification information about the image. These vectors are extracted from the network and used as the features of the image. Feature extraction using deep neural networks, like CNNs, has proven extremely effective has become the standard in state-of-the-art template matching algorithms. This feature-based approach is often more robust than the template-based approach described below. As such, it has become the state-of-the-art method for template matching, as it can match templates with non-rigid and out-of-plane transformations, as well as high background clutter and illumination changes. == Template-based approach == For templates without strong features, or for when the bulk of a template image constitutes the matching image as a whole, a template-based approach may be effective. Since template-based matching may require sampling of a large number of data points, it is often desirable to reduce the number of sampling points by reducing the resolution of search and template images by the same factor before performing the operation on the resultant downsized images. This pre-processing method creates a multi-scale, or pyramid, representation of images, providing a reduced search window of data points within a search image so that the template does not have to be compared with every viable data point. Pyramid representations are a method of dimensionality reduction, a common aim of machine learning on data sets that suffer the curse of dimensionality. == Common challenges == In instances where the template may not provide a direct match, it may be useful to implement eigenspaces to create templates that detail the matching object under a number of different conditions, such as varying perspectives, illuminations, color contrasts, or object poses. For example, if an algorithm is looking for a face, its template eigenspaces may consist of images (i.e., templates) of faces in different positions to the camera, in different lighting conditions, or with different expressions (i.e., poses). It is also possible for a matching image to be obscured or occluded by an object. In these cases, it is unreasonable to provide a multitude of templates to cover each possible occlusion. For example, the search object may be a playing card, and in some of the search images, the card is obscured by the fingers of someone holding the card, or by another card on top of it, or by some other object in front of the camera. In cases where the object is malleable or poseable, motion becomes an additional problem, and problems involving both motion and occlusion become ambiguous. In these cases, one possible solution is to divide the template image into multiple sub-images and perform matching on each subdivision. == Deformable templates in computational anatomy == Template matching is a central tool in computational anatomy (CA). In this field, a deformable template model is used to model the space of human anatomies and their orbits under the group of diffeomorphisms, functions which smoothly deform an object. Template matching arises as an approach to finding the unknown diffeomorphism that acts on a template image to match the target image. Template matching algorithms in CA have come to be called large deformation diffeomorphic metric mappings (LDDMMs). Currently, there are LDDMM template matching algorithms for matching anatomical landmark points, curves, surfaces, volumes. == Template-based matching explained using cross correlation or sum of absolute differences == A basic method of template matching sometimes called "Linear Spatial Filtering" uses an image patch (i.e., the "template image" or "filter mask") tailored to a specific feature of search images to detect. This technique can be easily performed on grey images or edge images, where the additional variable of color is either not present or not relevant. Cross correlation techniques compare the similarities of the search and template images. Their outputs should be highest at places where the image structure matches the template structure, i.e., where large search image values get multiplied by large template image values. This method is normally implemented by first picking out a part of a search image to use as a template. Let S ( x , y ) {\displaystyle S(x,y)} represent the value of a search image pixel, where ( x , y ) {\displaystyle (x,y)} represents the coordinates of the pixel in the search image. For simplicity, assume pixel values are scalar, as in a greyscale image. Similarly, let T ( x t , y t ) {\textstyle T(x_{t},y_{t})} represent the value of a template pixel, where ( x t , y t ) {\textstyle (x_{t},y_{t})} represents the coordinates of the pixel in the template image. To apply the filter, simply move the center (or origin) of the template image over each point in the search image and calculate the sum of products, similar to a dot product, between the pixel values in the search and template images over the whole area spanned by the template. More formally, if ( 0 , 0 ) {\displaystyle (0,0)} is the center (or origin) of the template image, then the cross correlation T ⋆ S {\displaystyle T\star S} at each point ( x , y ) {\displaystyle (x,y)} in the search image can be computed as: ( T ⋆ S ) ( x , y ) = ∑ ( x t , y t ) ∈ T T ( x t , y t ) ⋅ S ( x t + x , y t + y ) {\displaystyle (T\star S)(x,y)=\sum _{(x_{t},y_{t})\in T}T(x_{t},y_{t})\cdot S(x_{t}+x,y_{t}+y)} For convenience, T {\displaystyle T} denotes both the pixel values of the template image as well as its domain, the bounds of the template. Note that all possible positions of the template with respect to the search image are considered. Since cross correlation values are greatest when the values of the search and template pixels align, the best matching position ( x m , y m ) {\displaystyle (x_{m},y_{m})} corresponds to the maximum value of T ⋆ S {\displaystyle T\star S} over S {\displaystyle S} . Another way to handle translation problems on images using template matching is to compare the intensities of the pixels, using the sum of absolute differences (SAD) measure. To formulate this, let I S ( x s , y s ) {\displaystyle I_{S}(x_{s},y_{s})} and I T ( x t , y t ) {\displaystyle I_{T}(x_{t},y_{t})} denote the light intensity of pixels in the search and template images with coordinates ( x s , y s ) {\displaystyle (x_{s},y_{s})} and ( x t , y t ) {\displaystyle (x_{t},y_{t})} , respectively. Then by moving the center (or origin) of the template to a point ( x , y ) {\displaystyle (x,y)} in the search image, as before, the sum of absolute differences between the template and search pixel intensities at that point is: S A D ( x , y ) = ∑ ( x t , y t ) ∈ T | I T ( x t , y t ) − I S ( x t + x , y t + y ) | {\displaystyle SAD(x,y)=\sum _{(x_{t},y_{t})\in T}\left\vert I_{T}(x_{t},y_{t})-I_{S}(x_{t}+x,y_{t}+y)\right\vert } With this measure, the lowest SAD gives the best position for the template, rather than the greatest as with cross correlation. SAD tends to be relatively simple to implement and understand, but it also tends to be relatively slow to execute. A simple C++ implementation of SAD template matching is given below. == Implementation == In this simple implementation, it is assumed that the above described method is applied on grey images: This is why Grey is used as pixel intensity. The final position in this implementation gives the top left location for where the template image best matches the search image. One way to perform template matching on color images is to decompose the pixels into their color components and measure the quality of match between the color template and search image using the sum of the SAD computed for each color separately. == Speeding up the process == In the past, this type of spatial filtering was normally only used in dedicated hardware solutions because of the computational complexity of the operation, however we can lessen this complexity b

Computer-automated design

Design Automation usually refers to electronic design automation, or Design Automation which is a Product Configurator. Extending Computer-Aided Design (CAD), automated design and Computer-Automated Design (CAutoD) are more concerned with a broader range of applications, such as automotive engineering, civil engineering, composite material design, control engineering, dynamic system identification and optimization, financial systems, industrial equipment, mechatronic systems, steel construction, structural optimisation, and the invention of novel systems. The concept of CAutoD perhaps first appeared in 1963, in the IBM Journal of Research and Development, where a computer program was written. to search for logic circuits having certain constraints on hardware design to evaluate these logics in terms of their discriminating ability over samples of the character set they are expected to recognize. More recently, traditional CAD simulation is seen to be transformed to CAutoD by biologically-inspired machine learning, including heuristic search techniques such as evolutionary computation, and swarm intelligence algorithms. == Guiding designs by performance improvements == To meet the ever-growing demand of quality and competitiveness, iterative physical prototyping is now often replaced by 'digital prototyping' of a 'good design', which aims to meet multiple objectives such as maximised output, energy efficiency, highest speed and cost-effectiveness. The design problem concerns both finding the best design within a known range (i.e., through 'learning' or 'optimisation') and finding a new and better design beyond the existing ones (i.e., through creation and invention). This is equivalent to a search problem in an almost certainly, multidimensional (multivariate), multi-modal space with a single (or weighted) objective or multiple objectives. == Normalized objective function: cost vs. fitness == Using single-objective CAutoD as an example, if the objective function, either as a cost function J ∈ [ 0 , ∞ ) {\displaystyle J\in [0,\infty )} , or inversely, as a fitness function f ∈ ( 0 , 1 ] {\displaystyle f\in (0,1]} , where f = J 1 + J {\displaystyle f={\tfrac {J}{1+J}}} , is differentiable under practical constraints in the multidimensional space, the design problem may be solved analytically. Finding the parameter sets that result in a zero first-order derivative and that satisfy the second-order derivative conditions would reveal all local optima. Then comparing the values of the performance index of all the local optima, together with those of all boundary parameter sets, would lead to the global optimum, whose corresponding 'parameter' set will thus represent the best design. However, in practice, the optimization usually involves multiple objectives and the matters involving derivatives are a lot more complex. == Dealing with practical objectives == In practice, the objective value may be noisy or even non-numerical, and hence its gradient information may be unreliable or unavailable. This is particularly true when the problem is multi-objective. At present, many designs and refinements are mainly made through a manual trial-and-error process with the help of a CAD simulation package. Usually, such a posteriori learning or adjustments need to be repeated many times until a ‘satisfactory’ or ‘optimal’ design emerges. == Exhaustive search == In theory, this adjustment process can be automated by computerised search, such as exhaustive search. As this is an exponential algorithm, it may not deliver solutions in practice within a limited period of time. == Search in polynomial time == One approach to virtual engineering and automated design is evolutionary computation such as evolutionary algorithms. === Evolutionary algorithms === To reduce the search time, the biologically-inspired evolutionary algorithm (EA) can be used instead, which is a (non-deterministic) polynomial algorithm. The EA based multi-objective "search team" can be interfaced with an existing CAD simulation package in a batch mode. The EA encodes the design parameters (encoding being necessary if some parameters are non-numerical) to refine multiple candidates through parallel and interactive search. In the search process, 'selection' is performed using 'survival of the fittest' a posteriori learning. To obtain the next 'generation' of possible solutions, some parameter values are exchanged between two candidates (by an operation called 'crossover') and new values introduced (by an operation called 'mutation'). This way, the evolutionary technique makes use of past trial information in a similarly intelligent manner to the human designer. The EA based optimal designs can start from the designer's existing design database, or from an initial generation of candidate designs obtained randomly. A number of finely evolved top-performing candidates will represent several automatically optimized digital prototypes. There are websites that demonstrate interactive evolutionary algorithms for design. allows you to evolve 3D objects online and have them 3D printed. allows you to do the same for 2D images.