Lyapunov optimization

This article describes Lyapunov optimization for dynamical systems. It gives an example application to optimal control in queueing networks.
Introduction.
Lyapunov optimization refers to the use of a Lyapunov function to optimally control a dynamical system. Lyapunov functions are used extensively in control theory to ensure different forms of system stability. The state of a system at a particular time is often described by a multi-dimensional vector. A Lyapunov function is a nonnegative scalar measure of this multi-dimensional state. Typically, the function is defined to grow large when the system moves towards undesirable states. System stability is achieved by taking control actions that make the Lyapunov function drift in the negative direction towards zero.
Lyapunov drift is central to the study of optimal control in queueing networks. A typical goal is to stabilize all network queues while optimizing some performance objective, such as minimizing average energy or maximizing average throughput. Minimizing the drift of a quadratic Lyapunov function leads to the
backpressure routing algorithm for network stability, also called the "max-weight algorithm".
Adding a weighted penalty term to the Lyapunov drift and minimizing the sum leads to the drift-plus-penalty algorithm for joint network stability and penalty minimization. The drift-plus-penalty procedure can also be used to compute solutions to convex programs and linear programs.
Lyapunov drift for queueing networks.
Consider a queueing network that evolves in discrete time with normalized time slots formula_1 Suppose there are formula_2 queues in the network, and define the vector of queue backlogs at time formula_3 by:
Quadratic Lyapunov functions.
For each slot formula_5 define:
This function is a scalar measure of the total queue backlog in the network. It is called "quadratic Lyapunov function" on the queue state. Define the "Lyapunov drift" as the change in this function from one slot to the next:
Bounding the Lyapunov drift.
Suppose the queue backlogs change over time according to the following equation:
where formula_9 and formula_10 are arrivals and service opportunities, respectively, in queue formula_11 on slot formula_12 This equation can be used to compute a bound on the Lyapunov drift for any slot t:
Rearranging this inequality, summing over all formula_14 and dividing by 2 leads to:
where:
Suppose the second moments of arrivals and service in each queue are bounded, so that there is a finite constant formula_17 such that for all formula_3 and all possible queue vectors formula_19 the following property holds:
Taking conditional expectations of (Eq. 1) leads to the following bound on the "conditional expected Lyapunov drift":
A basic Lyapunov drift theorem.
In many cases, the network can be controlled so that the difference between arrivals and service at each queue satisfies the following property for some real number formula_22:
If the above holds for the same epsilon for all queues formula_14 all slots formula_5 and all possible vectors formula_26 then (Eq. 2) reduces to the drift condition used in the following Lyapunov drift theorem. The theorem below can be viewed as a variation on Foster's theorem for Markov chains. However, it does not require a Markov chain structure.
Proof. Taking expectations of both sides of the drift inequality and using the law of iterated expectations yields:
Summing the above expression over formula_34 and using the law of telescoping sums gives:
Using the fact that formula_36 is non-negative and rearranging the terms in the above expression proves the result.
Lyapunov optimization for queueing networks.
Consider the same queueing network as in the above section. Now define formula_37 as a "network penalty" incurred on slot formula_12 Suppose the goal is to stabilize the queueing network while minimizing the time average of formula_39 For example, to stabilize the network while minimizing time average power, formula_37 can be defined as the total power incurred by the network on slot t. To treat problems of maximizing the time average of some desirable "reward" formula_41 the penalty can be defined formula_42 This is useful for maximizing network throughout utility subject to stability.
To stabilize the network while minimizing the time average of the penalty formula_43 network algorithms can be designed to make control actions that greedily minimize a bound on the following drift-plus-penalty expression on each slot formula_3:
where formula_46 is a non-negative weight that is chosen as desired to affect a performance tradeoff. A key feature of this approach is that it typically does not require knowledge of the probabilities of the random network events (such as random job arrivals or channel realizations). Choosing formula_47 reduces to minimizing a bound on the drift every slot and, for routing in multi-hop queueing networks, reduces to the backpressure routing algorithm developed by Tassiulas and Ephremides. Using formula_48 and defining formula_37 as the network power use on slot formula_3 leads to the drift-plus-penalty algorithm for minimizing average power subject to network stability developed by Neely. Using formula_48 and using formula_37 as the negative of an admission control utility metric leads to the drift-plus-penalty algorithm for joint flow control and network routing developed by Neely, Modiano, and Li.
A generalization of the Lyapunov drift theorem of the previous section is important in this context. For simplicity of exposition, assume formula_37 is bounded from below:
For example, the above is satisfied with formula_55 in cases when the penalty formula_37 is always non-negative. Let formula_57 represent a desired target for the time average of formula_39 Let formula_46 be a parameter used to weight the importance of meeting the target. The following theorem shows that if a drift-plus-penalty condition is met, then the time average penalty is at most O(1/V) above the desired target, while average queue size is O(V). The formula_46 parameter can be tuned to make time average penalty as close to (or below) the target as desired, with a corresponding queue size tradeoff.
Proof. Taking expectations of both sides of the posited drift-plus-penalty and using the law of iterated expectations we have:
Summing the above over the first formula_3 slots and using the law of telescoping sums gives:
Dividing by formula_72 and rearranging terms proves the time average penalty bound. A similar argument proves the time average queue size bound.


Pairwise summation

In numerical analysis, pairwise summation, also called cascade summation, is a technique to sum a sequence of finite-precision floating-point numbers that substantially reduces the accumulated round-off error compared to naively accumulating the sum in sequence. Although there are other techniques such as Kahan summation that typically have even smaller round-off errors, pairwise summation is nearly as good (differing only by a logarithmic factor) while having much lower computational cost—it can be implemented so as to have nearly the same cost (and exactly the same number of arithmetic operations) as naive summation.
In particular, pairwise summation of a sequence of "n" numbers "xn" works by recursively breaking the sequence into two halves, summing each half, and adding the two sums: a divide and conquer algorithm. Its worst-case roundoff errors grow asymptotically as at most "O"(ε log "n"), where ε is the machine precision (assuming a fixed condition number, as discussed below). In comparison, the naive technique of accumulating the sum in sequence (adding each "xi" one at a time for "i" = 1, ..., "n") has roundoff errors that grow at worst as "O"(ε"n"). Kahan summation has a worst-case error of roughly "O"(ε), independent of "n", but requires several times more arithmetic operations. If the roundoff errors are random, and in particular have random signs, then they form a random walk and the error growth is reduced to an average of formula_1 for pairwise summation.
A very similar recursive structure of summation is found in many fast Fourier transform (FFT) algorithms, and is responsible for the same slow roundoff accumulation of those FFTs.
The algorithm.
In pseudocode, the pairwise summation algorithm for an array of length ≥ 0 can be written:
 "s" = pairwise("x"[1…"n"])
 if "n" ≤ "N" "base case: naive summation for a sufficiently small array"
 "s" = 0
 for "i" = 1 to "n"
 "s" = "s" + "x"["i"]
 else "divide and conquer: recursively sum two halves of the array"
 "m" = floor("n" / 2)
 "s" = pairwise("x"[1…"m"]) + pairwise("x"["m"+1…"n"])
 end if
For some sufficiently small , this algorithm switches to a naive loop-based summation as a base case, whose error bound is O(Nε). The entire sum has a worst-case error that grows asymptotically as "O"(ε log "n") for large "n", for a given condition number (see below).
In an algorithm of this sort (as for divide and conquer algorithms in general), it is desirable to use a larger base case in order to amortize the overhead of the recursion. If "N" = 1, then there is roughly one recursive subroutine call for every input, but more generally there is one recursive call for (roughly) every "N"/2 inputs if the recursion stops at exactly "n" = "N". By making "N" sufficiently large, the overhead of recursion can be made negligible (precisely this technique of a large base case for recursive summation is employed by high-performance FFT implementations).
Regardless of "N", exactly "n"−1 additions are performed in total, the same as for naive summation, so if the recursion overhead is made negligible then pairwise summation has essentially the same computational cost as for naive summation.
A variation on this idea is to break the sum into "b" blocks at each recursive stage, summing each block recursively, and then summing the results, which was dubbed a "superblock" algorithm by its proposers. The above pairwise algorithm corresponds to "b" = 2 for every stage except for the last stage which is "b" = "N".
Accuracy.
Suppose that one is summing "n" values "x""i", for "i" = 1, ..., "n". The exact sum is:
(computed with infinite precision).
With pairwise summation for a base case "N" = 1, one instead obtains formula_3, where the error formula_4 is bounded above by:
where ε is the machine precision of the arithmetic being employed (e.g. ε ≈ 10−16 for standard double precision floating point). Usually, the quantity of interest is the relative error formula_6, which is therefore bounded above by:
In the expression for the relative error bound, the fraction (Σ|"xi"|/|Σ"xi"|) is the condition number of the summation problem. Essentially, the condition number represents the "intrinsic" sensitivity of the summation problem to errors, regardless of how it is computed. The relative error bound of "every" (backwards stable) summation method by a fixed algorithm in fixed precision (i.e. not those that use arbitrary-precision arithmetic, nor algorithms whose memory and time requirements change based on the data), is proportional to this condition number. An "ill-conditioned" summation problem is one in which this ratio is large, and in this case even pairwise summation can have a large relative error. For example, if the summands "xi" are uncorrelated random numbers with zero mean, the sum is a random walk and the condition number will grow proportional to formula_8. On the other hand, for random inputs with nonzero mean the condition number asymptotes to a finite constant as formula_9. If the inputs are all non-negative, then the condition number is 1.
Note that the formula_10 denominator is effectively 1 in practice, since formula_11 is much smaller than 1 until "n" becomes of order 21/ε, which is roughly 101015 in double precision.
In comparison, the relative error bound for naive summation (simply adding the numbers in sequence, rounding at each step) grows as formula_12 multiplied by the condition number. In practice, it is much more likely that the rounding errors have a random sign, with zero mean, so that they form a random walk; in this case, naive summation has a root mean square relative error that grows as formula_13 and pairwise summation has an error that grows as formula_1 on average.
Software implementations.
Pairwise summation is the default summation algorithm in NumPy and the Julia technical-computing language, where in both cases it was found to have comparable speed to naive summation (thanks to the use of a large base case).
Other software implementations include the HPCsharp library for the C Sharp language and the standard library summation in D.


NC-CAM

NC-CAM is a computer-aided manufacturing software program introduced in 1989, and used by printed circuit board manufacturers to create, modify, and optimize the CNC program files used by printed circuit board drilling and routing machines. In particular, NC-CAM is used to optimize the RS-274C Excellon format files used to program Excellon, Hitachi and other printed circuit board drilling and routing machines.
NC-CAM was first developed for MS-DOS by Robert Henningsgard, and it is today developed and supplied for Microsoft Windows by FASTechnologies, Corp. of Big Lake, Minnesota, USA.


Stable polynomial

In the context of the characteristic polynomial of a differential equation or difference equation, a polynomial is said to be stable if either:
The first condition provides stability for continuous-time linear systems, and the second case relates to stability
of discrete-time linear systems. A polynomial with the first property is called at times a Hurwitz polynomial and with the second property a Schur polynomial. Stable polynomials arise in control theory and in mathematical theory
of differential and difference equations. A linear, time-invariant system (see LTI system theory) is said to be BIBO stable if every bounded input produces bounded output. A linear system is BIBO stable if its characteristic polynomial is stable. The denominator is required to be Hurwitz stable if the system is in continuous-time and Schur stable if it is in discrete-time. In practice, stability is determined by applying any one of several stability criteria.


Additive state decomposition

Additive state decomposition occurs when a system is decomposed into two or more subsystems with the same dimension as that of the original system. A commonly used decomposition in the control field is to decompose a system into two or more lower-order subsystems, called lower-order subsystem decomposition here. In contrast, additive state decomposition is to decompose a system into two or more subsystems with the same dimension as that of the original system.
Taking a system for example, it is decomposed into two subsystems: and , where and , respectively. The lower-order subsystem decomposition satisfies
By contrast, the additive state decomposition satisfies
On a dynamical control system.
Consider an 'original' system as follows:
where formula_3.
First, a 'primary' system is brought in, having the same dimension as the original system:
where formula_4
From the original system and the primary system, the following 'secondary' system is derived:
New variables formula_6 are defined as follows:
Then the secondary system can be further written as follows:
From the definition , it follows
The process is shown in this picture:
Examples.
Example 1.
In fact, the idea of the additive state decomposition has been implicitly mentioned in existing literature. An existing example is the tracking controller design, which often requires a reference system to derive error dynamics. The reference system (primary system) is assumed to be given as follows:
Based on the reference system, the error dynamics (secondary system) are derived as follows:
where formula_13
This is a commonly used step to transform a tracking problem to a stabilization problem when adaptive control is used.
Example 2.
Consider a class of systems as follows:
Choose  as the original system and design the primary system as follows:
Then the secondary system is determined by the rule :
By additive state decomposition
Since
the tracking error can be analyzed by and separately. If and are bounded and small, then so is . Fortunately, note that  is a linear time-invariant system and is independent of the secondary system , for the analysis of which many tools such as the transfer function are available. By contrast, the transfer function tool cannot be directly applied to the original system  as it is time-varying.
Example 3.
Consider a class of nonlinear systems as follows:
where represent the state, output and input, respectively; the function is nonlinear. The objective is to design such that as . Choose  as the original system and design the primary system as follows:
Then the secondary system is determined by the rule :
where . Then and
. Here, the task is assigned to the linear time-invariant system  (a linear time-invariant system being simpler than a nonlinear one). On the other hand, the task is assigned to the nonlinear system  (a stabilizing control problem is simpler than a tracking problem). If the two tasks are accomplished, then . The basic idea is to decompose an original system into two subsystems in charge of simpler subtasks. Then one designs controllers for two subtasks, and finally combines them to achieve the original control task. The process is shown in this picture:
Comparison with superposition principle.
A well-known example implicitly using additive state decomposition is the superposition principle, widely used in physics and engineering.The superposition principle states: For all linear systems, the net response at a given place and time caused by two or more stimuli is the sum of the responses which would have been caused by each stimulus individually. For a simple linear system:
the statement of the superposition principle means , where
Obviously, this result can also be derived from the additive state decomposition. Moreover, the superposition principle and additive state decomposition have the following relationship.
From Table 1, additive state decomposition can be applied not only to linear systems but also nonlinear systems.
Applications.
Additive state decomposition is used in stabilizing control, and can be extended to additive output decomposition.


System identification

The field of system identification uses statistical methods to build mathematical models of dynamical systems from measured data. System identification also includes the optimal design of experiments for efficiently generating informative data for fitting such models as well as model reduction. A common approach is to start from measurements of the behavior of the system and the external influences (inputs to the system) and try to determine a mathematical relation between them without going into many details of what is actually happening inside the system; this approach is called black box system identification.
Overview.
A dynamic mathematical model in this context is a mathematical description of the dynamic behavior of a system or process in either the time or frequency domain. Examples include:
One of the many possible applications of system identification is in control systems. For example, it is the basis for modern data-driven control systems, in which concepts of system identification are integrated into the controller design, and lay the foundations for formal controller optimality proofs.
Input-output vs output-only.
System identification techniques can utilize both input and output data (e.g. eigensystem realization algorithm) or can include only the output data (e.g. frequency domain decomposition). Typically an input-output technique would be more accurate, but the input data is not always available.
Optimal design of experiments.
The quality of system identification depends on the quality of the inputs, which are under the control of the systems engineer. Therefore, systems engineers have long used the principles of the design of experiments. In recent decades, engineers have increasingly used the theory of optimal experimental design to specify inputs that yield maximally precise estimators.
White- and black-box.
One could build a so-called white-box model based on first principles, e.g. a model for a physical process from the Newton equations, but in many cases, such models will be overly complex and possibly even impossible to obtain in reasonable time due to the complex nature of many systems and processes.
A much more common approach is therefore to start from measurements of the behavior of the system and the external influences (inputs to the system) and try to determine a mathematical relation between them without going into the details of what is actually happening inside the system. This approach is called system identification. Two types of models are common in the field of system identification:
In the context of nonlinear system identification Jin et al. describe grey-box modeling by assuming a model structure a priori and then estimating the model parameters. Parameter estimation is relatively easy if the model form is known but this is rarely the case. Alternatively, the structure or model terms for both linear and highly complex nonlinear models can be identified using NARMAX methods. This approach is completely flexible and can be used with grey box models where the algorithms are primed with the known terms, or with completely black-box models where the model terms are selected as part of the identification procedure. Another advantage of this approach is that the algorithms will just select linear terms if the system under study is linear, and nonlinear terms if the system is nonlinear, which allows a great deal of flexibility in the identification.
Identification for control.
In control systems applications, the objective of engineers is to obtain a good performance of the closed-loop system, which is the one comprising the physical system, the feedback loop and the controller. This performance is typically achieved by designing the control law relying on a model of the system, which needs to be identified starting from experimental data. If the model identification procedure is aimed at control purposes, what really matters is not to obtain the best possible model that fits the data, as in the classical system identification approach, but to obtain a model satisfying enough for the closed-loop performance. This more recent approach is called identification for control, or I4C in short.
The idea behind I4C can be better understood by considering the following simple example. Consider a system with "true" transfer function formula_1:
and an identified model formula_3:
From a classical system identification perspective, formula_3 is "not", in general, a "good" model for formula_1. In fact, modulus and phase of formula_3 are different from those of formula_1 at low frequency. What is more, while formula_1 is an asymptotically stable system, formula_3 is a simply stable system. However, formula_3 may still be a model good enough for control purposes. In fact, if one wants to apply a purely proportional negative feedback controller with high gain formula_12, the closed-loop transfer function from the reference to the output is, for formula_1
and for formula_3
Since formula_12 is very large, one has that formula_18. Thus, the two closed-loop transfer functions are indistinguishable. In conclusion, formula_3 is a "perfectly acceptable" identified model for the "true" system if such feedback control law has to be applied. Whether or not a model is "appropriate" for control design depends not only on the plant/model mismatch but also on the controller that will be implemented. As such, in the I4C framework, given a control performance objective, the control engineer has to design the identification phase in such a way that the performance achieved by the model-based controller on the "true" system is as high as possible.
Sometimes, it is even more convenient to design a controller without explicitly identifying a model of the system, but directly working on experimental data. This is the case of "direct" data-driven control systems.
Forward model.
A common understanding in Artificial Intelligence is that the controller has to generate the next move for a robot. For example, the robot starts in the maze and then the robot decides to move forward. Model predictive control determines the next action indirectly. The term “model” is referencing to a forward model which doesn't provide the correct action but simulates a scenario. A forward model is equal to a physics engine used in game programming. The model takes an input and calculates the future state of the system.
The reason why dedicated forward models are constructed is because it allows one to divide the overall control process. The first question is how to predict the future states of the system. That means, to simulate a plant over a timespan for different input values. And the second task is to search for a sequence of input values which brings the plant into a goal state. This is called predictive control.
The forward model is the most important aspect of a MPC-controller. It has to be created before the solver can be realized. If it's unclear what the behavior of a system is, it's not possible to search for meaningful actions. The workflow for creating a forward model is called system identification. The idea is to formalize a system in a set of equations which will behave like the original system. The error between the real system and the forward model can be measured.
There are many techniques available to create a forward model: ordinary differential equations is the classical one which is used in physics engines like Box2d. A more recent technique is a neural network for creating the forward model.


Multiaxis machining

Multiaxis machining is a manufacturing process that involves tools that move in 4 or more directions and are used to manufacture parts out of metal or other materials by milling away excess material, by water jet cutting or by laser cutting. This type of machining was originally performed mechanically on large complex machines. These machines operated on 4, 5, 6, and even 12 axes which were controlled individually via levers that rested on cam plates. The cam plates offered the ability to control the tooling device, the table in which the part is secured, as well as rotating the tooling or part within the machine. Due to the machines size and complexity it took extensive amounts of time to set them up for production. Once computer numerically controlled machining was introduced it provided a faster, more efficient method for machining complex parts.
Typical CNC tools support translation in 3 axis; multiaxis machines also support rotation around one or multiple axis. 5-axis machines are commonly used in industry in which the workpiece is translated linearly along three axes (typically x, y, and z) and the tooling spindle is capable of rotation about an addition 2 axes.
There are now many CAM (computer aided manufacturing) software systems available to support multiaxis machining including software that can automatically convert 3-axis toolpaths into 5-axis toolpaths. Prior to the advancement of Computer Aided Manufacturing, transferring information from design to production often required extensive manual labor, generating errors and resulting in wasted time and material.
There are three main components to multiaxis machines:
Multiaxis machines offer several improvements over other CNC tools, at the cost of increased complexity and price of the machine:
The number of axes for multiaxis machines varies from 4 to 9. Each axis of movement is implemented either by moving the table (into which the workpiece is attached), or by moving the tool. The actual configuration of axes varies, therefore machines with the same number of axes can differ in the movements that can be performed.
Applications.
Multiaxis CNC machines are used in many industries including:
Multiaxis machining is also commonly used for rapid prototyping as it can create strong, high quality models out of metal, plastic, and wood while still being easily programmable.
Computer-aided manufacturing (CAM) software.
CAM software automates the process of converting 3D models into tool paths, the route the multiaxis machine takes to mill a part (Fig. 1). This software takes into account the different parameters of the tool head (in the case of a CNC router, this would be the bit size), dimensions of the blank, and any constraints the machine may have. The tool paths for multiple passes can be generated to produce a higher level of detail on the parts. The first few passes remove large amounts of material, while the final, most important pass creates the surface finish. In the case of the CNC lathe, the CAM software will optimize the tool path to have the central axis of the part align with the rotary of the lathe. Once the tool paths have been generated, the CAM software will convert them into G-code, allowing the CNC machine to begin milling.
CAM software is currently the limiting factor in the capabilities of a multiaxis machine with ongoing development. Recent breakthroughs in this space include:


Enterprise messaging system

An enterprise messaging system (EMS) or messaging system in brief is a set of published enterprise-wide standards that allows organizations to send semantically precise messages between computer systems. EMS systems promote loosely coupled architectures that allow changes in the formats of messages to have minimum impact on message subscribers. EMS systems are facilitated by the use of structured messages (such as using XML or JSON), and appropriate protocols, such as DDS, MSMQ, AMQP or SOAP with web services.
EMS usually takes into account the following considerations:
EMS are also known as Message-Oriented Middleware (MOM)
Separation of message header and message body.
The design of an EMS is usually broken down into two sections:
Comparisons.
The commonalities between messaging systems (in terms of capabilities and architecture) have been captured in a platform-independent fashion as enterprise integration patterns (a.k.a. messaging patterns).
Although similar in concept to an enterprise service bus (ESB), an EMS places emphasis on design of messaging protocols (for instance, using DDS, MSMQ or AMQP), not the implementation of the services using a specific technology such as web services, DDS APIs for C/C++ and Java, .NET or Java Message Service (JMS).
Note that an Enterprise Messaging System should not be confused with an electronic mail system used for delivering human readable text messages to individual people.
An example of a specific application programming interface (API) that implements an enterprise messaging system is the Java Message Service. Although this is an API it embodies many of the same issues involved in setting up a full EMS.
Policy statements may also be extracted from a centralized policy server. These policy statements can be expressed in the XML Access Control Markup Language (XACML).


ISO/IEC JTC 1/SC 38

ISO/IEC JTC 1/SC 38 Cloud Computing and Distributed Platforms is a standardization subcommittee, which is part of the Joint Technical Committee ISO/IEC JTC 1 of the International Organization for Standardization (ISO) and the International Electrotechnical Commission (IEC).
ISO/IEC JTC 1/SC 38 serves as the focus, proponent, and systems integration entity on Cloud Computing, Distributed Platforms, and the application of these technologies. ISO/IEC JTC 1/SC 38 provides guidance to JTC 1, IEC, ISO and other entities developing standards in these areas. The Subcommittee is addressing the demand pull from users, especially governments, for standards to assist them in specifying, acquiring and applying Cloud Computing and distribute platform technologies and services.
History.
ISO/IEC JTC 1/SC 38 was formed at the October 2009 ISO/IEC JTC 1 Plenary Meeting in Tel Aviv via approval of Resolution 36. The international secretariat of ISO/IEC JTC 1/SC 38 is the American National Standards Institute (ANSI), located in the United States. The first meeting of the subcommittee took place in Beijing, China in May 2010. ISO/IEC JTC 1/SC 38 approved its scope, established three working groups and developed terms of reference for each at this inaugural meeting.
Established to address three related areas of technology - Web Services, Service Oriented Architecture (SOA), and Cloud Computing - ISO/IEC JTC 1/SC 38 was initially titled Distributed Application Platforms and Services (DAPS). Meeting in Plenary 2 times per year during its first 6 years, with interim electronic and face-to-face meetings of its Working Groups, ISO/IEC JTC 1/SC 38 completed work in Web Services and SOA and increased its focus on Cloud Computing. To reflect this evolution in focus, the JTC 1 2014 Plenary Meeting in Abu Dhabi approved a revised scope and new title for ISO/IEC JTC 1/SC 38, Cloud Computing and Distributed Platforms.
Scope and mission.
The scope of ISO/IEC JTC 1/SC 38 is the “Standardization in the area of Cloud Computing and Distributed Platforms”. This includes:
Structure.
ISO/IEC JTC 1/SC 38 is made up of two working groups (WGs). Each working group carries out specific tasks in standards development within the field of Cloud Computing and Distributed Platforms, where the focus of each working group is described in the group’s terms of reference. The two active working groups of ISO/IEC JTC 1/SC 38 are:
Terms of Reference:
Terms of Reference:
Collaborations.
ISO/IEC JTC 1/SC 38 works closely with a number of other JTC 1 subcommittees, including ISO/IEC JTC 1/SC 7, Software and Systems Engineering, and ISO/IEC JTC 1/SC 27, IT Security Techniques. In addition, the subcommittee works with a number of external forums, including the Cloud Security Alliance, Distributed Management Task Force (DMTF), the Open Grid Forum and The Open Group. Together, ISO/IEC JTC 1/SC 38 (specifically WG 3: Cloud Computing) and ITU-T/SG 13 formed Collaborative Teams on Cloud Computing Overview and Vocabulary (CT-CCVOCAB) and Cloud Computing Reference Architecture (CT-CCRA) that developed two standards: ISO/IEC JTC 1 17788 – Cloud Computing Vocabulary and ISO/IEC JTC 1 17789 – Cloud Computing Reference Architecture.
Organizations internal to ISO or IEC that collaborate with or are in liaison to ISO/IEC JTC 1/SC 38 include:
Organizations external to ISO or IEC that collaborate with or are in liaison to ISO/IEC JTC 1/SC 38 include:
Member countries.
Countries pay a fee to ISO to be members of subcommittees.
The 29 "P" (participating) members of ISO/IEC JTC 1/SC 38 are: Australia, Austria, Belgium, Brazil, Canada, China, Denmark, Finland, France, Germany, India, Ireland, Israel, Italy, Japan, Republic of Korea, Luxembourg, Netherlands, Poland, Portugal, Russian Federation, Singapore, Slovakia, South Africa, Spain, Sweden, Switzerland, United Kingdom, and United States of America.
The 8 "O" (observing) members of ISO/IEC JTC 1/SC 38 are: Argentina, Bosnia and Herzegovina, Czech Republic, Hong Kong, New Zealand, Norway, Serbia, and Uruguay.
Standards.
As of 2019, ISO/IEC JTC 1/SC 38 has 15 published standards. Some standards related to the work in ISO/IEC JTC 1/SC 38 include:


Industrial process control

An industrial process control or simply process control in continuous production processes is a discipline that uses industrial control systems and control theory to achieve a production level of consistency, economy and safety which could not be achieved purely by human manual control. It is implemented widely in industries such as automotive, mining, dredging, oil refining, pulp and paper manufacturing, chemical processing and power generating plants.
There is a wide range of size, type and complexity, but it enables a small number of operators to manage complex processes to a high degree of consistency. The development of large industrial process control systems was instrumental in enabling the design of large high volume and complex processes, which could not be otherwise economically or safely operated.
The applications can range from controlling the temperature and level of a single process vessel, to a complete chemical processing plant with several thousand control loops.
History.
Early process control breakthroughs came most frequently in the form of water control devices. Ktesibios of Alexandria is credited for inventing float valves to regulate water level of water clocks in the 3rd century BC. In the 1st century AD, Heron of Alexandria invented a water valve similar to the fill valve used in modern toilets.
Later process controls inventions involved basic physics principles. In 1620, Cornelis Drebbel invented a bimetallic thermostat for controlling the temperature in a furnace. In 1681, Denis Papin discovered the pressure inside a vessel could be regulated by placing weights on top of the vessel lid. In 1745, Edmund Lee created the fantail to improve windmill efficiency; a fantail was a smaller windmill placed 90° of the larger fans to keep the face of the windmill pointed directly into the oncoming wind.
With the dawn of the Industrial Revolution in the 1760s, process controls inventions were aimed to replace human operators with mechanized processes. In 1784, Oliver Evans created a water-powered flourmill which operated using buckets and screw conveyors. Henry Ford applied the same theory in 1910 when the assembly line was created to decrease human intervention in the automobile production process.
For continuously variable process control it was not until 1922 that a formal control law for what we now call PID control or three-term control was first developed using theoretical analysis, by Russian American engineer Nicolas Minorsky. Minorsky was researching and designing automatic ship steering for the US Navy and based his analysis on observations of a helmsman. He noted the helmsman steered the ship based not only on the current course error, but also on past error, as well as the current rate of change; this was then given a mathematical treatment by Minorsky.
His goal was stability, not general control, which simplified the problem significantly. While proportional control provided stability against small disturbances, it was insufficient for dealing with a steady disturbance, notably a stiff gale (due to steady-state error), which required adding the integral term. Finally, the derivative term was added to improve stability and control.
Development of modern process control operations.
Process control of large industrial plants has evolved through many stages. Initially, control would be from panels local to the process plant. However this required a large manpower resource to attend to these dispersed panels, and there was no overall view of the process. The next logical development was the transmission of all plant measurements to a permanently-staffed central control room. Effectively this was the centralisation of all the localised panels, with the advantages of lower manning levels and easier overview of the process. Often the controllers were behind the control room panels, and all automatic and manual control outputs were transmitted back to plant. However, whilst providing a central control focus, this arrangement was inflexible as each control loop had its own controller hardware, and continual operator movement within the control room was required to view different parts of the process.
With the coming of electronic processors and graphic displays it became possible to replace these discrete controllers with computer-based algorithms, hosted on a network of input/output racks with their own control processors. These could be distributed around plant, and communicate with the graphic display in the control room or rooms. The distributed control system (DCS) was born.
The introduction of DCSs allowed easy interconnection and re-configuration of plant controls such as cascaded loops and interlocks, and easy interfacing with other production computer systems. It enabled sophisticated alarm handling, introduced automatic event logging, removed the need for physical records such as chart recorders, allowed the control racks to be networked and thereby located locally to plant to reduce cabling runs, and provided high level overviews of plant status and production levels.
Hierarchy.
The accompanying diagram is a general model which shows functional manufacturing levels in a large process using processor and computer-based control.
Referring to the diagram: Level 0 contains the field devices such as flow and temperature sensors (process value readings - PV), and final control elements (FCE), such as control valves; Level 1 contains the industrialised Input/Output (I/O) modules, and their associated distributed electronic processors; Level 2 contains the supervisory computers, which collate information from processor nodes on the system, and provide the operator control screens; Level 3 is the production control level, which does not directly control the process, but is concerned with monitoring production and monitoring targets; Level 4 is the production scheduling level.
Control model.
To determine the fundamental model for any process, the inputs and outputs of the system are defined differently than for other chemical processes. The balance equations are defined by the control inputs and outputs rather than the material inputs. The control model is a set of equations used to predict the behavior of a system and can help determine what the response to change will be. The state variable (x) is a measurable variable that is a good indicator of the state of the system, such as temperature (energy balance), volume (mass balance) or concentration (component balance). Input variable (u) is a specified variable that commonly include flow rates.
It is important to note that the entering and exiting flows are both considered control inputs. The control input can be classified as a manipulated, disturbance, or unmonitored variable. Parameters (p) are usually a physical limitation and something that is fixed for the system, such as the vessel volume or the viscosity of the material. Output (y) is the metric used to determine the behavior of the system. The control output can be classified as measured, unmeasured, or unmonitored.
Types.
Processes can be characterized as batch, continuous, or hybrid. Batch applications require that specific quantities of raw materials be combined in specific ways for particular duration to produce an intermediate or end result. One example is the production of adhesives and glues, which normally require the mixing of raw materials in a heated vessel for a period of time to form a quantity of end product. Other important examples are the production of food, beverages and medicine. Batch processes are generally used to produce a relatively low to intermediate quantity of product per year (a few pounds to millions of pounds).
A continuous physical system is represented through variables that are smooth and uninterrupted in time. The control of the water temperature in a heating jacket, for example, is an example of continuous process control. Some important continuous processes are the production of fuels, chemicals and plastics. Continuous processes in manufacturing are used to produce very large quantities of product per year (millions to billions of pounds). Such controls use feedback such as in the PID controller A PID Controller includes proportional, integrating, and derivative controller functions.
Applications having elements of batch and continuous process control are often called hybrid applications.
Control loops.
The fundamental building block of any industrial control system is the control loop, which controls just one process variable. An example is shown in the accompanying diagram, where the flow rate in a pipe is controlled by a PID controller, assisted by what is effectively a cascaded loop in the form of a valve servo-controller to ensure correct valve positioning.
Some large systems may have several hundreds or thousands of control loops. In complex processes the loops are interactive, so that the operation of one loop may affect the operation of another. The system diagram for representing control loops is a Piping and instrumentation diagram.
Commonly used control systems include programmable logic controller (PLC), Distributed Control System (DCS) or SCADA.
A further example is shown. If a control valve were used to hold level in a tank, the level controller would compare the equivalent reading of a level sensor to the level setpoint and determine whether more or less valve opening was necessary to keep the level constant. A cascaded flow controller could then calculate the change in the valve position.
Economic advantages.
The economic nature of many products manufactured in batch and continuous processes require highly efficient operation due to thin margins. The competing factor in process control is that products must meet certain specifications in order to be satisfactory. These specifications can come in two forms: a minimum and maximum for a property of the material or product, or a range within which the property must be. All loops are susceptible to disturbances and therefore a buffer must be used on process set points to ensure disturbances do not cause the material or product to go out of specifications. This buffer comes at an economic cost (i.e. additional processing, maintaining elevated or depressed process conditions, etc.).
Process efficiency can be enhanced by reducing the margins necessary to ensure product specifications are met. This can be done by improving the control of the process to minimize the effect of disturbances on the process. The efficiency is improved in a two step method of narrowing the variance and shifting the target. Margins can be narrowed through various process upgrades (i.e. equipment upgrades, enhanced control methods, etc.). Once margins are narrowed, an economic analysis can be done on the process to determine how the set point target is to be shifted. Less conservative process set points lead to increased economic efficiency. Effective process control strategies increase the competitive advantage of manufacturers who employ them.


Dutch Institute of Systems and Control

The Dutch Institute of Systems and Control is an interuniversity institute and graduate school that unites nine university departments in the Netherlands active in systems and control theory and engineering. The graduate school offers courses covering a wide range of topics from mathematical system theory to control engineering. DISC provides a program in systems and control offered to PhD students of the participating departments, such as graduate courses, summer school and network events. The Institute also unites all academic research in the Netherlands in the field of systems and control. Examples of knowledge application are developing energy-efficient greenhouses, designing cars that drive by wire, autonomously walking or flying robots, and operational strategies in process industry.


Goal node (computer science)

In computer science, a goal node is a node in a graph that meets defined criteria for success or termination.
Heuristical artificial intelligence algorithms, like A* and B*, attempt to reach such nodes in optimal time by defining the distance to the goal node. When the goal node is reached, A* defines the distance to the goal node as 0 and all other nodes' distances as positive values.


Swarm robotic platforms

Swarm robotic platforms apply swarm robotics in multi-robot collaboration. They take inspiration from nature (e.g. collective problem solving mechanisms seen in nature such as honey bee aggregation). The main goal is to control a large number of robots (with limited sensing/processing ability) to accomplish a common task/problem. Hardware limitation and cost of robot platforms limit current research in swarm robotics to mostly performed by simulation software (e.g. Stage, ARGoS). On the other hand, simulation of swarm scenarios that needs large numbers of agents is extremely complex and often inaccurate due to poor modelling of external conditions and limitation of computation.
Comparison of platforms.
Several mobile robot platforms have previously been developed to study swarm applications.


Printed circuit board milling

Printed circuit board milling (also: isolation milling) is the milling process used for removing areas of copper from a sheet of printed circuit board (PCB) material to recreate the pads, signal traces and structures according to patterns from a digital circuit board plan known as a "layout file". Similar to the more common and well known chemical PCB etch process, the PCB milling process is subtractive: material is removed to create the electrical isolation and ground planes required. However, unlike the chemical etch process, PCB milling is typically a non-chemical process and as such it can be completed in a typical office or lab environment without exposure to hazardous chemicals. High quality circuit boards can be produced using either process. In the case of PCB milling, the quality of a circuit board is chiefly determined by the system's true, or weighted, milling accuracy and control as well as the condition (sharpness, temper) of the milling bits and their respective feed/rotational speeds. By contrast, in the chemical etch process, the quality of a circuit board depends on the accuracy and/or quality of the mask used to protect the copper from the chemicals and the state of the etching chemicals.
Advantages.
PCB milling has advantages for both prototyping and some special PCB designs. The biggest benefit is that one does not have to use chemicals to produce PCBs.
When creating a prototype, outsourcing a board takes time. An alternative is to make a PCB in-house. Using the wet process, in-house production presents problems with chemicals and disposing thereof. High-resolution boards using the wet process are hard to achieve and still, when done, one still has to drill and eventually cut out the PCB from the base material.
CNC machine prototyping can provide a fast-turnaround board production process without the need for wet processing. If a CNC machine is already used for drilling, this single machine could carry out both parts of the process, drilling and milling. A CNC machine is used to process drilling, milling and cutting.
Many boards that are simple for milling would be very difficult to process by wet etching and manual drilling afterward in a laboratory environment without using top-of-the-line systems that usually cost many times more than CNC milling machines.
In mass production, milling is unlikely to replace etching although the use of CNC is already standard practice for drilling the boards.
Hardware.
A PCB milling system is a single machine that can perform all of the required actions to create a prototype board, with the exception of inserting "vias" and "through hole plating". Most of these machines require only a standard AC mains outlet and a shop-type vacuum cleaner for operation.
Software.
Software for milling PCBs is usually delivered by the CNC machine manufacturer. Most of the packages can be split in two main categories – raster and vector.
Software that produces tool paths using raster calculation method tends to have lower resolution of processing than the vector based software since it relies on the raster information it receives.
Mechanical system.
The mechanics behind a PCB milling machine are fairly straightforward and have their roots in CNC milling technology. A PCB milling system is similar to a miniature and highly accurate NC milling table. For machine control, positioning information and machine control commands are sent from the controlling software via a serial port or parallel port connection to the milling machine's on-board controller. The controller is then responsible for driving and monitoring the various positioning components which move the milling head and gantry and control the spindle speed. Spindle speeds can range from 30,000 RPM to 100,000 RPM depending on the milling system, with higher spindle speeds equating to better accuracy, in a nutshell the smaller the tool diameter the higher RPM you need. Typically this drive system comprises non-monitored stepper motors for the X/Y axis, an on-off non-monitored solenoid, pneumatic piston or lead screw for the Z-axis, and a DC motor control circuit for spindle speed, none of which provide positional feedback. More advanced systems provide a monitored stepper motor Z-axis drive for greater control during milling and drilling as well as more advanced RF spindle motor control circuits that provide better control over a wider range of speeds.
X and Y-axis control.
For the X and Y-axis drive systems most PCB milling machines use stepper motors that drive a precision lead screw. The lead screw is in turn linked to the gantry or milling head by a special precision machined connection assembly. To maintain correct alignment during milling, the gantry or milling head's direction of travel is guided along using linear or dovetailed bearing(s). Most X/Y drive systems provide user control, via software, of the milling speed, which determines how fast the stepper motors drive their respective axes.
Z-axis control.
Z-axis drive and control are handled in several ways. The first and most common is a simple solenoid that pushes against a spring. When the solenoid is energized it pushes the milling head down against a spring stop that limits the downward travel. The rate of descent as well as the amount of force exerted on the spring stop must be manually set by mechanically adjusting the position of the solenoid's plunger. The second type of Z-axis control is through the use of a pneumatic cylinder and a software-driven gate valve. Due to the small cylinder size and the amount of air pressure used to drive it there is little range of control between the up and down stops. Both the solenoid and pneumatic system cannot position the head anywhere other than the endpoints, and are therefore useful for only simple 'up/down' milling tasks. The final type of Z-axis control uses a stepper motor that allows the milling head to be moved in small accurate steps up or down. Further, the speed of these steps can be adjusted to allow tool bits to be eased into the board material rather than hammered into it. The depth (number of steps required) as well as the downward/upward speed is under user control via the controlling software.
One of the major challenges with milling PCBs is handling variations in flatness. Since conventional etching techniques rely on optical masks that sit right on the copper layer they can conform to any slight bends in the material so all features are replicated faithfully.
When milling PCBs however, any minute height variations encountered when milling will cause conical bits to either sink deeper (creating a wider cut) or rise off the surface, leaving an uncut section. Before cutting some systems perform height mapping probes across the board to measure height variations and adjust the Z values in the G-code beforehand.
Tooling.
PCBs may be machined with conventional endmills, conical d-bit cutters, and spade mills. D-bits and spade mills are cheap and as they have a small point allow the traces to be close together. Taylor's equation, Vc Tn = C, can predict tool life for a given surface speed.
Alternatives.
A method with similar advantages to mechanical milling is laser etching and laser drilling. Etching PCBs with lasers offers the same advantages as mechanical milling in regards to quick turnaround times, but the nature of the laser etching process is preferable to both milling and chemical etching when it comes to physical variations exerted on the object. Whereas mechanical milling and chemical etching exact physical stress on the board, laser etching offers non-contact surface removal, making it a superior option for PCBs where precision and geometric accuracy are at a premium, such as RF and microwave designs. Laser drilling is more precise, has extremely low power consumption compared with other techniques, requires less maintenance, does not use lubricants or drill bits, low rates of wear, does not use abrasive materials, does not ruin the boards, is more eco friendly, and in the most high-powered machines, the drilling is instant, but is expensive. An additional emerging alternative to milling and laser etching is an additive approach based upon printing the conductive trace. Such PCB printers come at a range of price points and with differing features but also offer rapid in-house circuit manufacture, with very little to no waste. An example of such a technology that produces simpler, low layer count PCBs is Voltera. A system at the higher layer-count end of the additive manufacturing approach is Nano Dimension's DragonFly technology which prints complex high layer count circuits as well as electro-mechanical parts.


Energy functional

 The energy functional is the total energy of a certain system, as a functional of the system's state.
In the energy methods of simulating the dynamics of complex structures, a state of the system is often described as an element of an appropriate function space. To be in this state, the system pays a certain cost in terms of energy required by the state. This energy is a scalar quantity, a function of the state, hence the term "functional". The system tends to develop from the state with higher energy (higher cost) to the state with lower energy, thus local minima of this functional are usually related to the stable stationary states. Studying such states is part of the optimization problems, where the terms "energy functional" or "cost functional" are often used to describe the objective function.


Sequential quadratic programming

Sequential quadratic programming (SQP) is an iterative method for constrained nonlinear optimization which may be considered a quasi-Newton method. SQP methods are used on mathematical problems for which the objective function and the constraints are twice continuously differentiable.
SQP methods solve a sequence of optimization subproblems, each of which optimizes a quadratic model of the objective subject to a linearization of the constraints. If the problem is unconstrained, then the method reduces to Newton's method for finding a point where the gradient of the objective vanishes. If the problem has only equality constraints, then the method is equivalent to applying Newton's method to the first-order optimality conditions, or Karush–Kuhn–Tucker conditions, of the problem.
Algorithm basics.
Consider a nonlinear programming problem of the form:
The Lagrangian for this problem is
where formula_3 and formula_4 are Lagrange multipliers.
The standard Newton's Method searches for the solution formula_5 by iterating the following equation:
formula_6.
However, because the matrix formula_7 is generally singular (and therefore non-invertible), the Newton step formula_8 cannot be calculated directly. Instead the basic sequential quadratic programming algorithm defines an appropriate search direction formula_9 at an iterate formula_10, as a solution to the quadratic programming subproblem
Note that the term formula_12 in the expression above may be left out for the minimization problem, since it is constant under the formula_13 operator.
Together, the SQP algorithm starts by first choosing the initial iterate formula_14, then calculating formula_15 and formula_16. Then the QP subproblem is built and solved to find the Newton step direction formula_17 which is used to update the parent problem iterate using formula_18. This process is repeated for formula_19 until the parent problem satisfies a convergence test.
Implementations.
SQP methods have been implemented in well known numerical environments such as MATLAB and GNU Octave. There also exist numerous software libraries, including open source:


Structured sparsity regularization

Structured sparsity regularization is a class of methods, and an area of research in statistical learning theory, that extend and generalize sparsity regularization learning methods. Both sparsity and structured sparsity regularization methods seek to exploit the assumption that the output variable formula_1 (i.e., response, or dependent variable) to be learned can be described by a reduced number of variables in the input space formula_2 (i.e., the domain, space of features or explanatory variables). "Sparsity regularization methods" focus on selecting the input variables that best describe the output. "Structured sparsity regularization methods" generalize and extend sparsity regularization methods, by allowing for optimal selection over structures like groups or networks of input variables in formula_2.
Common motivation for the use of structured sparsity methods are model interpretability, high-dimensional learning (where dimensionality of formula_2 may be higher than the number of observations formula_5), and reduction of computational complexity. Moreover, structured sparsity methods allow to incorporate prior assumptions on the structure of the input variables, such as overlapping groups, non-overlapping groups, and acyclic graphs. Examples of uses of structured sparsity methods include face recognition, magnetic resonance image (MRI) processing, socio-linguistic analysis in natural language processing, and analysis of genetic expression in breast cancer.
Definition and related concepts.
Sparsity regularization.
Consider the linear kernel regularized empirical risk minimization problem with a loss function formula_6 and the formula_7 "norm" as the regularization penalty:
where formula_9, and formula_10 denotes the formula_7 "norm", defined as the number of nonzero entries of the vector formula_12. formula_13 is said to be sparse if formula_14. Which means that the output formula_15 can be described by a small subset of input variables.
More generally, assume a dictionary formula_16 with formula_17 is given, such that the target function formula_18 of a learning problem can be written as:
The formula_7 norm formula_22 as the number of non-zero components of formula_12 is defined as
formula_27 is said to be sparse if formula_28.
However, while using the formula_7 norm for regularization favors sparser solutions, it is computationally difficult to use and additionally is not convex. A computationally more feasible norm that favors sparser solutions is the formula_30 norm; this has been shown to still favor sparser solutions and is additionally convex.
Structured sparsity regularization.
Structured sparsity regularization extends and generalizes the variable selection problem that characterizes sparsity regularization. Consider the above regularized empirical risk minimization problem with a general kernel and associated feature map formula_16 with formula_17.
The regularization term formula_34 penalizes each formula_35 component independently, which means that the algorithm will suppress input variables independently from each other.
In several situations we may want to impose more structure in the regularization process, so that, for example, input variables are suppressed according to predefined groups. Structured sparsity regularization methods allow to impose such structure by adding structure to the norms defining the regularization term.
Structures and norms.
Non-overlapping groups: group Lasso.
The non-overlapping group case is the most basic instance of structured sparsity. In it, an "a priori" partition of the coefficient vector formula_12 in formula_37 non-overlapping groups is assumed. Let formula_38 be the vector of coefficients in group formula_39, we can define a regularization term and its group norm as
where formula_41 is the group formula_42 norm formula_43 , formula_44 is group formula_39, and formula_46 is the "j-th" component of group formula_44.
The above norm is also referred to as group Lasso. This regularizer will force entire coefficient groups towards zero, rather than individual coefficients. As the groups are non-overlapping, the set of non-zero coefficients can be obtained as the union of the groups that were not set to zero, and conversely for the set of zero coefficients.
Overlapping groups.
Overlapping groups is the structure sparsity case where a variable can belong to more than one group formula_39. This case is often of interest as it can represent a more general class of relationships among variables than non-overlapping groups can, such as tree structures or other type of graphs.
There are two types of overlapping group sparsity regularization approaches, which are used to model different types of input variable relationships:
Intersection of complements: group Lasso.
The "intersection of complements" approach is used in cases when we want to select only those input variables that have positive coefficients in all groups they belong to. Consider again the group Lasso for a regularized empirical risk minimization problem:
where formula_41 is the group formula_42 norm, formula_44 is group formula_39, and formula_46 is the "j-th" component of group formula_44.
As in the non-overlapping groups case, the "group Lasso" regularizer will potentially set entire groups of coefficients to zero. Selected variables are those with coefficients formula_56. However, as in this case groups may overlap, we take the intersection of the complements of those groups that are not set to zero.
This "intersection of complements" selection criteria implies the modeling choice that we allow some coefficients within a particular group formula_39 to be set to zero, while others within the same group formula_39 may remain positive. In other words, coefficients within a group may differ depending on the several group memberships that each variable within the group may have.
Union of groups: latent group Lasso.
A different approach is to consider union of groups for variable selection. This approach captures the modeling situation where variables can be selected as long as they belong at least to one group with positive coefficients. This modeling perspective implies that we want to preserve group structure.
The formulation of the union of groups approach is also referred to as latent group Lasso, and requires to modify the group formula_42 norm considered above and introduce the following regularizer
where formula_61, formula_62 is the vector of coefficients of group g, and formula_63 is a vector with coefficients formula_46 for all variables formula_65 in group formula_39 , and formula_67 in all others, i.e., formula_68 if formula_65 in group formula_39 and formula_71 otherwise.
This regularizer can be interpreted as effectively replicating variables that belong to more than one group, therefore conserving group structure. As intended by the union of groups approach, requiring formula_72 produces a vector of weights w that effectively sums up the weights of all variables across all groups they belong to.
Issues with Group Lasso regularization and alternative approaches.
The objective function using group lasso consists of an error function, which is generally required to be convex but not necessarily strongly convex, and a group formula_30 regularization term. An issue with this objective function is that it is convex but not necessarily strongly convex, and thus generally does not lead to unique solutions.
An example of a way to fix this is to introduce the squared formula_42 norm of the weight vector as an additional regularization term while keeping the formula_30 regularization term from the group lasso approach. If the coefficient of the squared formula_42 norm term is greater than formula_67, then because the squared formula_42 norm term is strongly convex, the resulting objective function will also be strongly convex. Provided that the formula_42 coefficient is suitably small but still positive, the weight vector minimizing the resulting objective function is generally very close to a weight vector that minimizes the objective function that would result from removing the group formula_42 regularization term altogether from the original objective function; the latter scenario corresponds to the group Lasso approach. Thus this approach allows for simpler optimization while maintaining sparsity.
Norms based on the structure over Input variables.
"See: Submodular set function"
Besides the norms discussed above, other norms used in structured sparsity methods include hierarchical norms and norms defined on grids. These norms arise from submodular functions and allow the incorporation of prior assumptions on the structure of the input variables. In the context of hierarchical norms, this structure can be represented as a directed acyclic graph over the variables while in the context of grid-based norms, the structure can be represented using a grid.
Hierarchical Norms.
"See:" Unsupervised learning
Unsupervised learning methods are often used to learn the parameters of latent variable models. Latent variable models are statistical models where in addition to the observed variables, a set of latent variables also exists which is not observed. Often in such models, "hierarchies" are assumed between the variables of the system; this system of hierarchies can be represented using directed acyclic graphs.
Hierarchies of latent variables have emerged as a natural structure in several applications, notably to model text documents. Hierarchical models using Bayesian non-parametric methods have been used to learn topic models, which are statistical models for discovering the abstract "topics" that occur in a collection of documents. Hierarchies have also been considered in the context of kernel methods. Hierarchical norms have been applied to bioinformatics, computer vision and topic models.
Norms defined on grids.
If the structure assumed over variables is in the form of a 1D, 2D or 3D grid, then submodular functions based on overlapping groups can be considered as norms, leading to stable sets equal to rectangular or convex shapes. Such methods have applications in computer vision
Algorithms for computation.
Best subset selection problem.
The problem of choosing the best subset of input variables can be naturally formulated under a penalization framework as:
Where formula_10 denotes the formula_7 "norm", defined as the number of nonzero entries of the vector formula_12.
Although this formulation makes sense from a modeling perspective, it is computationally unfeasible, as it is equivalent to an exhaustive search evaluating all possible subsets of variables.
Two main approaches for solving the optimization problem are: 1) greedy methods, such as step-wise regression in statistics, or matching pursuit in signal processing; and 2) convex relaxation formulation approaches and proximal gradient optimization methods.
Convex relaxation.
A natural approximation for the best subset selection problem is the formula_30 norm regularization:
Such a scheme is called basis pursuit or the Lasso, which substitutes the formula_7 "norm" for the convex, non-differentiable formula_30 norm.
Proximal gradient methods.
Proximal gradient methods, also called forward-backward splitting, are optimization methods useful for minimizing functions with a convex and differentiable component, and a convex potentially non-differentiable component.
As such, proximal gradient methods are useful for solving sparsity and structured sparsity regularization problems of the following form:
Where formula_90 is a convex and differentiable loss function like the quadratic loss, and formula_91 is a convex potentially non-differentiable regularizer such as the formula_30 norm.
Connections to Other Areas of Machine Learning.
Connection to Multiple Kernel Learning.
Structured Sparsity regularization can be applied in the context of multiple kernel learning. Multiple kernel learning refers to a set of machine learning methods that use a predefined set of kernels and learn an optimal linear or non-linear combination of kernels as part of the algorithm.
In the algorithms mentioned above, a whole space was taken into consideration at once and was partitioned into groups, i.e. subspaces. A complementary point of view is to consider the case in which distinct spaces are combined to obtain a new one. It is useful to discuss this idea considering finite dictionaries. Finite dictionaries with linearly independent elements - these elements are also known as atoms - refer to finite sets of linearly independent basis functions, the linear combinations of which define hypothesis spaces. Finite dictionaries can be used to define specific kernels, as will be shown. Assume for this example that rather than only one dictionary, several finite dictionaries are considered.
For simplicity, the case in which there are only two dictionaries formula_93 and formula_94 where formula_95 and formula_96 are integers, will be considered. The atoms in formula_26 as well as the atoms in formula_98 are assumed to be linearly independent. Let formula_99 be the union of the two dictionaries. Consider the linear space of functions formula_100 given by linear combinations of the form
formula_101
for some coefficient vectors formula_102, where formula_103. Assume the atoms in formula_104 to still be linearly independent, or equivalently, that the map formula_105 is one to one. The functions in the space formula_100 can be seen as the sums of two components, one in the space formula_107, the linear combinations of atoms in formula_26 and one in formula_109, the linear combinations of the atoms in formula_98.
One choice of norm on this space is formula_111. Note that we can now view formula_100 as a function space in which formula_107, formula_109 are subspaces. In view of the linear independence assumption, formula_100 can be identified with formula_116 and formula_117 with formula_118 respectively. The norm mentioned above can be seen as the group norm in formula_100associated to the subspaces formula_107, formula_109, providing a connection to structured sparsity regularization.
Here, formula_107, formula_109 and formula_100 can be seen to be the reproducing kernel Hilbert spaces with corresponding feature maps formula_125, given by formula_126, formula_127, given by formula_128, and formula_129, given by the concatenation of formula_130, respectively.
In the structured sparsity regularization approach to this scenario, the relevant groups of variables which the group norms consider correspond to the subspaces formula_107 and formula_109. This approach promotes setting the groups of coefficients corresponding to these subspaces to zero as opposed to only individual coefficients, promoting sparse multiple kernel learning.
The above reasoning directly generalizes to any finite number of dictionaries, or feature maps. It can be extended to feature maps inducing infinite dimensional hypothesis
spaces.
When Sparse Multiple Kernel Learning is useful.
Considering sparse multiple kernel learning is useful in several situations including the following:
Generally sparse multiple kernel learning is particularly useful when there are many kernels and model selection and interpretability are important.
Additional uses and applications.
Structured sparsity regularization methods have been used in a number of settings where it is desired to impose an "a priori" input variable structure to the regularization process. Some such applications are:


Laser engineered net shaping

Laser powder forming, also known by the proprietary name (laser engineered net shaping) is an additive manufacturing technology developed for fabricating metal parts directly from a computer-aided design (CAD) solid model by using a metal powder injected into a molten pool created by a focused, high-powered laser beam. This technique is also equivalent to several trademarked techniques that have the monikers direct metal deposition (DMD), and laser consolidation (LC). Compared to processes that use powder beds, such as selective laser melting (SLM) objects created with this technology can be substantially larger, even up to several feet long.
Method.
A high power laser is used to melt metal powder supplied coaxially to the focus of the laser beam through a deposition head. The laser beam typically travels through the center of the head and is focused to a small spot by one or more lenses. The X-Y table is moved in raster fashion to fabricate each layer of the object. The head is moved up vertically after each layer is completed.
Metal powders are delivered and distributed around the circumference of the head either by gravity, or by using a pressurized carrier gas. An inert shroud gas is often used to shield the melt pool from atmospheric oxygen for better control of properties, and to promote layer to layer adhesion by providing better surface wetting.
Other techniques.
This process is similar to other 3D fabrication technologies in its approach in that it forms a solid component by the layer additive method. The LENS process can go from metal and metal oxide powder to metal parts, in many cases without any secondary operations. LENS is similar to selective laser sintering, but the metal powder is applied only where material is being added to the part at that moment. It can produce parts in a wide range of alloys, including titanium, stainless steel, aluminum, and other specialty materials; as well as composite and functionally graded materials. Primary applications for LENS technology include repair and overhaul, rapid prototyping, rapid manufacturing, and limited-run manufacturing for aerospace, defense, and medical markets. Microscopy studies show the LENS parts to be fully dense with no compositional degradation. Mechanical testing reveals outstanding as-fabricated mechanical properties.
The process can also make "near" net shape parts when it is not possible to make an item to exact specifications. In these cases post production process like light machining, surface finishing, or heat treatment may be applied to achieve end compliance. It is used as finishing operations.


High stock removal

High stock removal is a technological process with the goal of removing large amounts of material. The quantity of material which can be removed by a specific process depends on the material properties and the machining tool used.
Materials.
The stock removal rate is largely a function of the material's properties. This is expressed as the machinability of a material: the ease or difficulty of machining a particular material. The machinability of materials varies greatly; for instance, aluminium and magnesium have high machinability compared to titanium and other special metals.
Specific energy.
One way of quantifying the machinability of a material is to measure specific energy (e): this is the amount of energy required to cut a given volume of work material (kWh/mm3), and varies with material properties.
New materials.
New materials are continuously developed to address the extreme demands of market segments such as petrochemical and aerospace. Metallurgical advances have produced a wide range of high-performance materials (e.g. titanium and high-nickel alloys), but a consequence of their attractive properties is often that they are difficult to machine.
Temperature rising.
The specific cutting energy needed for ‘difficult to machine’ materials can be extremely high. Especially in high stock removal applications, there are problems with thermal load in the work material. An increase of the work material temperature can lead to deterioration of the work material surface integrity, resulting in metallurgical damages like micro-cracks, residual stresses and work hardening. Excessive heat also dramatically shortens tool life.
High stock removal machine tools.
The energy required to remove large amounts of material depends on the properties of the working material (specific energy) as well as the technological process used.
Technologies.
Several technologies are capable of removing substantial amounts of material. Among them are: sawing, turning, broaching, milling and grinding. Turning and milling are the most popular machining technologies; turning is mainly used for round products (though a specialized variant called whirling can modulate the turning axis to produce non-round shapes), whereas milling has a broad range of applications. Certain ‘difficult to machine’ materials like titanium, stainless steels, and exotic high-nickel alloys can be challenging to process when high stock removal is the goal, due to local heat generation at the cutting edge and the difficulty in removing it. These challenges can be mitigated, however, by strategies such as high-volume flood coolant, specialized cutting tool geometries, optimized speed and feed settings, and tool coatings like AlTiCN which tend to divert heat into the chip, away from the cutting tool.
Grinding.
Traditionally bonded abrasives are used for stock removal. To remove substantial amounts of material in a grinding process, vertical segment grinders are used. These machines work with a rotating disc with abrasive segments, against which the work material is pressed with the aid of a rotating or reciprocating table. These technologies require significantly greater power than other grinding methods, up to . Some major manufactures of these machines are Blanchard, Mattison, Göckel and Reform.
Belt grinding.
Grinding with coated abrasives has recently become a viable alternative for high stock removal through developments in machine tool and grinding belt technology.
Belt grinding with coated abrasives can be an attractive process because the large surface area of the recirculating belt tends to carry away heat and prevent local hot spots. The productivity of this technology is, in many cases, three times that of rotary or reciprocating vertical grinders. As a result, belt grinding is replacing traditional grinding technologies in the field of the specialty metal processing.


Belt grinding

Belt grinding is an abrasive machining process used on metals and other materials. It is typically used as a finishing process in industry. A belt, coated in abrasive material, is run over the surface to be processed in order to remove material or produce the desired finish.
Applications.
Belt grinding is a versatile process suitable for all kinds of different applications. There are three different applications of the belt grinding technology:
Grinding methods.
Wide belt grinding is a familiar process in industry as well as home applications. There are several basic methods for belt grinding:
In general there are three basic elements of the belt-grinding machine: work rest support, grinding head and a regulating head. These components differ for all the methods but in general the workpiece is pressed between the grinding head and the rest support. The objective of the regulating head is to coordinate the belt pressure.
Wide belt grinding.
One of the most common methods is wide belt grinding.
The belt grinding process is variable by adjusting certain parameters such as belt speed, grinding pressure, feed speed, durometer of the contact drum, size of the contact drum and the abrasive belt that is used. The machines can be made for wet or dry operation. Furthermore, a wide belt grinding machine can be constructed with single or multiple heads. The first head is used for coarse grinding and the next heads gradually make a finer finish. Wide belt grinding is also used as a high stock removal method for special metals (e.g. stainless steel, titanium, and nickel alloys).
Changing variables.
There are several objectives possible for grinding with coated abrasives. Among them are the right application (e.g. finish or stock removal), time saving and efficiency of the abrasive tool.
To achieve the above objectives, it is essential to look in more detail to the variables which affect them. These include the work material properties, the grit and abrasive type of the grinding belt, belt speed, belt sequences, contact wheel hardness and diameter, serration, type of lubricant (or dry) and grinding pressure. Changing these variables will affect the performances of the belt grinding process.
In the wide belt method, a contact wheel supports the abrasive belt. The selection of the contact wheel and abrasive to match the grinding parameters required for a specific operation is very critical. Stock removal generally requires a harder, serrated rubber contact wheel, and coarse grade ceramic abrasives. Finishing generally requires the use of a smooth faced contact wheel and fine grade abrasives.


Bellman filter

The Bellman filter is an algorithm that estimates the value sequence of hidden states in a state-space model. It is a generalization of the Kalman filter, allowing for nonlinearity in both the state and observation equations. The principle behind the Bellman filter is an approximation of the maximum a posteriori estimator, which makes it robust to heavy-tailed noise. It is in general a very fast method, since at each iteration only the very last state value is estimated. The algorithm owes its name to the Bellman equation, which plays a central role in the derivation of the algorithm.


Supervisory control

Supervisory control is a general term for control of many individual controllers or control loops, such as within a distributed control system. It refers to a high level of overall monitoring of individual process controllers, which is not necessary for the operation of each controller, but gives the operator an overall plant process view, and allows integration of operation between controllers.
A more specific use of the term is for a Supervisory Control and Data Acquisition system or SCADA, which refers to a specific class of system for use in process control, often on fairly small and remote applications such as a pipeline transport, water distribution, or wastewater utility system station.
Forms.
Supervisory control often takes one of two forms. In one, the controlled machine or process continues autonomously. It is observed from time to time by a human who, when deeming it necessary, intervenes to modify the control algorithm in some way. In the other, the process accepts an instruction, carries it out autonomously, reports the results and awaits further commands. With manual control, the operator interacts directly with a controlled process or task using switches, levers, screws, valves etc., to control actuators. This concept was incorporated in the earliest machines which sought to extend the physical capabilities of man. In contrast, with automatic control, the machine adapts to changing circumstances and makes decisions in pursuit of some goal which can be as simple as switching a heating system on and off to maintain a room temperature within a specified range. Sheridan defines supervisory control as follows: "in the strictest sense, supervisory control means that one or more human operators are intermittently programming and continually receiving information from a computer that itself closes an autonomous control loop through artificial effectors to the controlled process or task environment."
Other points.
Robotics applications have traditionally aimed for automatic control. Automatic control requires sensing and responding appropriately to all combinations of circumstances which can present problems of overwhelming complexity. A supervisory control scheme offers the prospect of solving the automation problem incrementally and leaving those problems unsolved to be handled by the human supervisor.
Communications delay does not have the same impact on this control scheme. All time critical feedback occurs at the slave where the delays are negligible. Instability is thus avoided without modifying the feedback loop. Communications delay, in this case, slows the rate at which an operator can assign tasks to the slave and determine whether those tasks have been successfully carried out.


Control loop

A control loop is the fundamental building block of control systems in general industrial control systems and industrial control systems in particular. It consists of the process sensor, the controller function, and the final control element (FCE) which controls the process necessary to automatically adjust the value of a measured process variable (PV) to equal the value of a desired set-point (SP).
There are two common classes of control loop: open loop and closed loop. In an open-loop control system, the control action from the controller is independent of the process variable. An example of this is a central heating boiler controlled only by a timer. The control action is the switching on or off of the boiler. The process variable is the building temperature. This controller operates the heating system for a constant time regardless of the temperature of the building.
In a closed-loop control system, the control action from the controller is dependent on the desired and actual process variable. In the case of the boiler analogy, this would utilize a thermostat to monitor the building temperature, and feed back a signal to ensure the controller output maintains the building temperature close to that set on the thermostat. A closed-loop controller has a feedback loop which ensures the controller exerts a control action to control a process variable at the same value as the setpoint. For this reason, closed-loop controllers are also called feedback controllers.
Open-loop and closed-loop.
Fundamentally, there are two types of control loop: "open-loop control" (feedforward), and "closed-loop control" (feedback).
In open-loop control, the control action from the controller is independent of the "process output" (or "controlled process variable"). A good example of this is a central heating boiler controlled only by a timer, so that heat is applied for a constant time, regardless of the temperature of the building. The control action is the switching on/off of the boiler, but the controlled variable should be the building temperature, but is not because this is open-loop control of the boiler, which does not give closed-loop control of the temperature.
In closed loop control, the control action from the controller is dependent on the process output. In the case of the boiler analogy this would include a thermostat to monitor the building temperature, and thereby feed back a signal to ensure the controller maintains the building at the temperature set on the thermostat. A closed loop controller therefore has a feedback loop which ensures the controller exerts a control action to give a process output the same as the "reference input" or "set point". For this reason, closed loop controllers are also called feedback controllers.
The definition of a closed loop control system according to the British Standard Institution is "a control system possessing monitoring feedback, the deviation signal formed as a result of this feedback being used to control the action of a final control element in such a way as to tend to reduce the deviation to zero."
Likewise; "A "Feedback Control System" is a system which tends to maintain a prescribed relationship of one system variable to another by comparing functions of these variables and using the difference as a means of control."
Other examples.
An example of a control system is a car's cruise control, which is a device designed to maintain vehicle speed at a constant "desired" or "reference" speed provided by the driver. The "controller" is the cruise control, the "plant" is the car, and the "system" is the car and the cruise control. The system output is the car's speed, and the control itself is the engine's throttle position which determines how much power the engine delivers.
A primitive way to implement cruise control is simply to lock the throttle position when the driver engages cruise control. However, if the cruise control is engaged on a stretch of non-flat road, then the car will travel slower going uphill and faster when going downhill. This type of controller is called an "open-loop controller" because there is no feedback; no measurement of the system output (the car's speed) is used to alter the control (the throttle position.) As a result, the controller cannot compensate for changes acting on the car, like a change in the slope of the road.
In a "closed-loop control system", data from a sensor monitoring the car's speed (the system output) enters a controller which continuously compares the quantity representing the speed with the reference quantity representing the desired speed. The difference, called the error, determines the throttle position (the control). The result is to match the car's speed to the reference speed (maintain the desired system output). Now, when the car goes uphill, the difference between the input (the sensed speed) and the reference continuously determines the throttle position. As the sensed speed drops below the reference, the difference increases, the throttle opens, and engine power increases, speeding up the vehicle. In this way, the controller dynamically counteracts changes to the car's speed. The central idea of these control systems is the "feedback loop", the controller affects the system output, which in turn is measured and fed back to the controller.
Application.
The accompanying diagram shows a control loop with a single PV input, a control function, and the control output (CO) which modulates the action of the final control element (FCE) to alter the value of the manipulated variable (MV). In this example, a flow control loop is shown, but can be level, temperature, or any one of many process parameters which need to be controlled. The control function shown is an "intermediate type" such as a PID controller which means it can generate a full range of output signals anywhere between 0-100%, rather than just an on/off signal.
In this example, the value of the PV is always the same as the MV, as they are in series in the pipeline. However, if the feed from the valve was to a tank, and the controller function was to control the level using the fill valve, the PV would be the tank level, and the MV would be the flow to the tank.
The controller function can be a discrete controller or a function block in a computerised control system such as a distributed control system or a programmable logic controller. In all cases, a control loop diagram is a very convenient and useful way of representing the control function and its interaction with plant. In practice at a process control level, control loops are normally abbreviated using standard symbols in a Piping and instrumentation diagram, which shows all elements of the process measurement and control based on a process flow diagram.
At a detailed level the control loop connection diagram is created to show the electrical and pneumatic connections. This greatly aids diagnostics and repair, as all the connections for a single control function are on one diagram.
Loop and control equipment tagging.
To aid unique identification of equipment, each loop and its elements are identified by a "tagging" system and each element has a unique tag identification.
Based on the standards ANSI/ISA S5.1 and ISO 14617-6, the identifications consist of up to 5 letters.
The first identification letter is for the measured value, the second is a modifier, 3rd indicates the passive/readout function, 4th - active/output function, and the 5th is the function modifier. This is followed by loop number, which is unique to that loop.
For instance, FIC045 means it is the Flow Indicating Controller in control loop 045. This is also known as the "tag" identifier of the field device, which is normally given to the location and function of the instrument. The same loop may have FT045 - which is the flow transmitter in the same loop.
For reference designation of any equipment in industrial systems the standard IEC 61346 ("Industrial systems, installations and equipment and industrial products — Structuring principles and reference


Compensator (control theory)

A compensator is a component in the control system that is used to regulate another system. Usually, it is done by conditioning the input or the output to that system. There are three types of compensators: lag, lead and lag-lead compensators.
Adjusting a control system in order to improve its performance might lead to unexpected behaviour (e.g. poor stability or even instability by increasing the gain value). In order to make the system behave as desired, it is necessary to redesign the system and add a compensator, a device which compensates for the deficient performance of the original system.


Cold Metal Transfer

Cold Metal Transfer (abbreviated CMT) is a welding method that is usually performed by a welding robot. The CMT machine detects a short circuit which sends a signal that retracts the welding filler material, giving the weld time to cool before each drop is placed. This leaves a smooth weld that is stronger than that of a hotter weld. This works well on thin metal that is prone to warping and the weld burning through the material. This type of welding is more efficient than other GMAW methods when the metal is thinner than 10mm, anything thicker and the expense begins to overcome traditional welding. Welding wire is fed through the system that is controlled by a computer, the computer adjusts things such as wire feed, welding speed, and amps going through the wire. This allows precise welding of materials like steel and aluminum, with very little slag and spatter, resulting in a cleaner finish weld.
Definition.
CMT is a subset of gas metal arc welding. It works by reducing the weld current and retracting the weld wire when detecting a short circuit, resulting in a drop-by-drop deposit of weld material. Developed for thin materials, CMT requires strict control of weld parameters.
History.
CMT was originally intended for joining sheet metal in the automotive industry, but has expanded to thicker materials.
Application.
Cold metal transfer is used to weld different types of metal with various thicknesses. This low voltage, low heat welding works well on thin sheet metal. It is also being used for thicker material where the integrity of the weld is important. When metal is overheated it affects its structural properties, CMT welding keeps the heat to a minimum, resulting in little change to the structure of the metal, providing a stronger weld. Thin metal has a greater possibility of distorting when heated, during traditional GMAW welding heat sinks or other heat protection had to be used to prevent the warping of the metal, heat protection is not needed during the CMT process. CMT has a wide variety of applications in various industries such as small engine, automotive, and marine.


Gradient method

In optimization, a gradient method is an algorithm to solve problems of the form
with the search directions defined by the gradient of the function at the current point. Examples of gradient methods are the gradient descent and the conjugate gradient.