Energy management for real-time embedded applications with compiler support Reducing device energy has become one of the most important challenges to embedded systems designers. Processors with dynamic voltage scaling permit trading performance for reduced energy consumption as a program executes. In this paper, we rst present a novel hybrid scheme that uses dynamic voltage scaling to adjust the performance o f embedded applications to reduce energy consumption while also meeting time constraints. Our ne-grained a p p r oach uses the compiler to insert power management hints in the application c ode. These hints convey path-speci c runtime information about the program's progress to power management p o i n ts invoked b y t h e o p erating system that adjust processor performance. Second, we present an algorithm for inserting power management hints along di erent program paths. Finally, we experimentally evaluate our approach and show that signi cant energy reduction can be achieved. On two embedded applications, MPEG movie decoding and automatic target recognition, our scheme reduces energy by up to 79% over no power management and by up to 50% over static power management. We also experimentally demonstrate that our scheme achieves more energy savings compared to two purely compiler-directed schemes. Energy consumption has become vitally important t o battery-operated portable and embedded systems. By lowering energy consumption, battery life and mission duration is extended and more capabilities can be included in a device for the same battery capacity. F urthermore, reduced energy results in lighter devices and less expensive packaging. These factors reduce the total cost of building portable and embedded systems.. Embedded systems are experiencing explosive g r o wth in sales volume with estimates of up to 400,000 cell phones sold per day b y 2006 18] and up to 60 million personal digital assistants (PDAs) sold in 2008 19]. Indeed, embedded computer systems can be found in a number of domains, ranging from military devices to inexpensive consumer electronics to complex automobile control systems. One distinguishing and common characteristic of such systems is their sensitivity to cost, particularly energy consumption.. A n umber of these computer systems include applications that have time constraints that must be satis ed during an application's execution. An example of such a timesensitive application is the MPEG decoder which displays movies with a given frame rate. Other time constrained applications include digital speech coding, Doppler radarbased cruise control and collision warning for automobiles, face screening, living maps for driving direction, voice recognition, highway sensor networks for telematics, and automatic target recognition.. There have b e e n s e v eral techniques proposed for managing energy in portable and embedded computer systems. One solution that has been adopted by a n umber of processor manufacturers, including Intel, AMD, and Transmeta, is dynamic voltage scaling (DVS). In a processor that has DVS, the clock frequency and supply voltage can be changed on-the-y to make a trade o between performance and energy consumption.. While most DVS techniques exploit variability in load across an entire set of applications, in this paper we propose an approach that uses ne-grain information about execution variability within an application to reduce energy consumption. The technique exploits timing variability in program paths, resulting from constructs such as loops with variable trip counts. Ours is a hybrid approach that relies on both the compiler and the operating system to adapt performance and reduce energy consumption of the processor. The compiler conveys pathspeci c run-time information about a program's progress to the operating system. These so-called power management hints (PMH) are inserted by the compiler in the code, based on program structure and estimated worst-case performance. A PMH is very low cost instrumentation that collects path-speci c information for the operating system about how the program is behaving relative t o w orst-case performance. The operating system periodically invokes a power management point (PMP) to change the processor's performance based on the timing information from the power management hints. This collaborative approach has the advantage that the lightweight h i n ts can collect accurate timing information for the operating system without actually changing performance. Further, the periodicity of performance/energy adaptation can be controlled independently of power management h i n ts to better balance the high overhead of adaptation. Also, as we s h o w with two di erent algorithms, a collaborative scheme separates hint insertion from performance adaptation, permitting the use of di erent algorithms in the operating system to make trade o s between performance and energy consumption. In this way, energy consumption can be reduced by running at the lowest performance settings based on actual program performance while still meeting time constraints.. We e v aluate our technique on two time-sensitive a pplications an MPEG-2 decoder and an automatic target recognition (ATR) application. Using models of commercially available processors with dynamic voltage scaling, the Transmeta's Crusoe and Intel's XScale, we show that our technique can achieve signi cant energy reductions of up to 79% over no power management and up to 50% over static power management. We further demonstrate that our collaborative s c heme achieves less energy consumption than a scheme that uses a simple compiler placement of PMPs at each procedure call and even better than a scheme that uses PMPs only placed in code using our hintplacement algorithm.. In the next section, we review why D VS is useful for reducing the energy consumption of applications with time constraints. We then explain our collaborative compileroperating system scheme in Section 3 and the compiler's role in inserting power management h i n ts in Section 4. A set of experimental results shows the e ectiveness of our approach in Section 5. Related work is discussed in Section 6 and we conclude the paper in Section 7. In this paper, we presented a hybrid compiler-operating system scheme for reducing the energy consumption of time-sensitive e m bedded applications running on processors with dynamic voltage scaling. The operating system periodically adapts processor performance based on the dynamic behavior of an application. Information about how the application is behaving is gathered through low cost power management hints (PMHs) inserted by the compiler in the application. We described our collaborative scheme and its advantages over a purely compiler-based approach. We also presented an algorithm for inserting power management hints in an application code to collect accurate timing information for the operating system. Finally, w e presented results that show the e ectiveness of our scheme over other schemes that utilize PMPs alone. Our results showed that our scheme is up to 79% better than no power management and up to 50% better than static power management o n s e v eral embedded applications. Improvement o ver schemes that use only PMPs is dependent on the PMP placement strategy.. We are currently implementing our techniques for timing extraction and power management h i n t insertion in a post link-time inter-procedural optimization framework.. PMH : P ower management h i n t PMP : P ower management point PPT : Procedure placement There have b e e n a n umber of research projects that use DVS schemes to reduce the processor's energy consumption. Examples on work that implements DVS in non time-critical applications include 4, 6 ]. An operating system solution proposed in 4], periodically invokes an interrupt that adjusts the processor speed in order to maintain a desired performance goal. The OS keeps track of the of the accumulated application's instruction level parallelism throughout the application execution time. In 6], the compiler identi es program regions where the CPU can be slowed down. The speed set in each region is based on the expected time the CPU would wait for a memory access. Work presented in 12] selects the best supply voltage for each loop nest based on simulated energy consumed in a loop nest. The voltage levels are set at compile time for each region using an integer linear programming DVS strategy.. Time restrictions in time-sensitive applications mandate the processor to nish the application's execution before its deadline. On the OS level, work in 5] determines a voltage scheduling that changes the speed within the same task/application based on task's statistical behavior. The work in 10] modi ed the EDF and RMS in RT-Linux to incorporate voltage scheduling. tion about the checkpoints along with pro le information is used to estimate the remaining cycle count and hence compute a new frequency. R u n time overhead of updating data structures and setting the new voltages are relatively high especially on the constructed nodes granularity ( a lmost every basic block). The authors proposed pruning the hierarchical CFG to reduce the runtime overhead by merging small execution and variation nodes, but it was not clearly explained what nodes to merge. In 13], each basic block in the constructed CFG is augmented with its worst-case execution along with the WCR till the end of the program. \Branches in CFG that drop the remaining worst case faster than the execution rates are selected as locations to insert the speed change procedure". The speed update ratio is expressed in terms of the di erence in the remaining worst case cycles between the departed node and its selected successor. However they did not mention how to deal with procedure and function calls especially when they are called from di erent paths the WCR cycles of these procedures would be dependent on the path they are called from.. There are several static and dynamic compiler techniques for estimating the best and worst case execution times of programs. A review of di erent tools for estimating the worst case execution time is presented in 11]. Some of these tools use static analysis to produce a discrete worst case bound. On the other hand, parametric analysis for computing the worst case as in 15] evaluates expressions in terms of parameter variables carrying information about some program segments e.g., worst case execution time of loops is presented by s y m bolic formulas that are evaluated at runtime when the number of loop iterations is determined. We e v aluate the e cacy of our scheme with respect to reducing the energy consumption in processors. For this, we use the Simplescalar micro-architecture toolkit 17] with the con guration shown in Table 3 . We extended the simoutorder simulator by adding a module that computes the energy of the running application based on the number of cycles C spent a t e a c h v oltage level V (E = CV 2 ). C includes the cycles for executing the application as well as the cycles for computing the speed in PMPs and the WCR in PMHs. We also considered the overhead of setting the speed by adding a constant e n e r g y o verhead for each s p e e d change to the total energy. In the experiments below, we used the Transmeta Crusoe and the Intel XScale processor speed models. The Transmeta Crusoe has 16 speed levels and the XScale has ve l e v els. The voltage/frequency ranges of the processors are discussed in Section 2. The energy consumed in other subsystems is beyond the scope of this evaluation.. We e m ulate the e ect of the ISR in Simplescalar by ushing the pipeline at the entry and exit of each r o utine. The ISR computes a new frequency at each i n terval and then sets the corresponding voltage. To compute the speed, we use a dynamic greedy and a static speed management s c hemes presented in 7] . The greedy scheme uses all the available slack to reduce the speed for the next interval, while the static speed management runs the entire application on a single CPU speed based on the static slack. Our base case is with no power management (i.e., execute at maximum speed). We also compare our scheme with two schemes that use only PMPs the rst (PMP-pcall) p l a c e s a PMP before each procedure call, and the second (PMPplacement) inserts PMPs according to our hint placement algorithm to show the potential bene t of using hints.. We s h o w the experimental results of two time-sensitive applications automated target recognition (ATR) 8] and an MPEG2 decoder 21]. A general observation in all the presented results is that, as the time allotted to an application to execute is increased, less energy is consumed due to the introduction of more slack that can be used to reduce the speed/voltage of the processor.. Although the schemes that use only PMPs have better estimation of the WCR at each PMP invocation, the overhead introduced for such estimation and computation of a new speed occurs very often that may o vershadow t h e bene t of a potential voltage scaling.

O B O B O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O B O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Deciding the isomorphism problem in classes of unary automatic structures We solve the isomorphism problem for certain classes of unary automatic structures: unary automatic equivalence relations, unary automatic linear orders, and unary automatic trees. That is, we provide algorithms which decide whether two given elements of these classes are isomorphic. In doing so, we define new finite representations for these structures which give normal forms. The isomorphism problem, which asks for a decision procedure to decide whether two given members of a class of structures are isomorphic, is central in studying the effective content of mathematical objects. Over finite structures, the isomorphism problem has been one of the most challenging problems in complexity theory (it belongs to NP but is neither known to be in P nor known to be NP-complete) [1] . Over computable structures (those where the domain and atomic relations of the structure are computable), it is well-known that the isomorphism problem is undecidable; in fact, it is complete for Σ 1 1 , the first level of the analytical hierarchy [2] . In [3] , Khoussainov and Nerode initiate a systematic study of automatic structures, those where elements are encoded as strings over a finite alphabet and whose domain and atomic relations are represented by finite automata (precise definitions in Section 2). Automatic structures form an intermediate class of structures between the finite structures and the computable structures. This paper focuses on the isomorphism problem for unary automatic structures, the subclass of automatic structures (which still contains all finite structures) of structures whose domains are encoded as strings over a one letter alphabet.. Email addresses: jliu036@ec.auckland.ac.nz (Jiamou Liu), minnes@math.mit.edu (Mia Minnes) 1 A related paper which focuses on time and space complexity for these unary automatic structures has been submitted for publication by the authors elsewhere. We described algorithms deciding the isomorphism problems for unary automatic equivalence structures, linear orders, and trees. This settled the question of whether such algorithms existed. Moreover, we considered a normal form for the automata involved, with respect to which the time-complexity of the algorithms was polynomial The membership problem for each of these classes was also shown to take polynomialtime with respect to any input unary automaton. It is still open whether the isomorphism problem for unary automatic graphs is decidable, and if so, what complexity class it lies in.

O B I I O O O B I I O O B I I O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O B O O O O O O O O O O O


Consequence of one-electron oxidation and one-electron reduction for aniline Abstract Quantum-chemical calculations were performed for all possible isomers of neutral aniline and its redox forms, and intramolecular proton-transfer (prototropy) accompanied by π-electron delocalization was analyzed. One-electron oxidation (PhNH 2 -e→[PhNH 2 ] +• ) has no important effect on tautomeric preferences. The enamine tautomer is preferred for oxidized aniline similarly as for the neutral molecule. Dramatical changes take place when proceeding from neutral to reduced aniline. Oneelectron reduction (PhNH 2 +e→ [PhNH 2 ] -• ) favors the imine tautomer. Independently on the state of oxidation, π-and n-electrons are more delocalized for the enamine than imine tautomers. The change of the tautomeric preferences for reduced aniline may partially explain the origin of the CH tautomers for reduced nucleobases (cytosine, adenine, and guanine). Aniline is a model compound that can be used to understand the structure and physicochemical properties of many biologically active aromatic derivatives such as nucleobases (cytosine, adenine, and guanine) containing the amine group in the ring. Similar to other models of nucleobases (phenol, hydroxypyridine, aminopyridine, imidazole, purine, etc.), aniline exhibits prototropic tautomerism (Scheme 1) [1] [2] [3] [4] [5] . This phenomenon influences the physicochemical properties of aniline. For the neutral molecule, the enamine tautomer (1) is preferred due to strong delocalization of π-electrons. The proton transfer from the exo-amine group to the endocarbon atom destroys the aromaticity of the ring and strongly destabilizes the imine forms (2-4) in comparison to the enamine one. Usually, the imine tautomers are neglected for aniline [6] . However, investigations of many important biological transformations showed that the energetically less stable tautomer for the neutral form, with particular acidbase, electrophilic-nucleophilic, redox, or even just geometric properties, is often an active intermediate and dictates the mechanism and the product formed. For this reason, complete tautomeric equilibria should be considered for model compound to understand the mechanisms of various biochemical transformations for more complex aromatic biomolecules containing the amine group in the ring.. In this paper, we investigated the consequences of oneelectron oxidation and one-electron reduction on tautomeric equilibria for aniline and on composition of its tautomeric mixture. We considered various oxidation states of aniline, neutral (PhNH 2 ). The redox forms of aniline may be formed in the presence of oxidizing or reducing agents. They may also be generated electrochemically, photochemically, or with solvated electrons in liquid ammonia {e.g., K(NH 3 )→K + (NH 3 )+e(NH 3 )} [7] [8] [9] [10] [11] [12] [13] [14] . They may be identified by various spectroscopic techniques, e.g., zero kinetic energy photoelectron spectroscopy [15, 16] , or infrared depletion spectroscopy [17] [18] [19] . The charged radicals may be also generated in various types of mass spectrometers during positive (M -e→M +• ) or negative (M+e→M -• ) ionization (M -whole molecule) [20] . In such conditions, an electron may be transferred from or to aniline and change stabilities of the enamine and imine tautomers. Consequently, they may change prototropic equilibria, composition of the tautomeric mixture, and mechanisms of ion-radical reactions.. However, the redox imine forms of aniline have been usually omitted in the literature. For example, the imine radical cations and the imine radical anions have not been considered as intermediates in various mechanisms of aromatic substitution for aniline derivatives. In these reactions, solely the enamine forms, the radical cation and the radical anion, have been taken into account [21] [22] [23] [24] . Similarly, the electronic structures, vibrational spectra, and infrared and Raman intensities have been studied by quantum-chemical methods only for the enamine tautomer of the aniline radical cation [15, 25] . The imine isomers have not been considered.. Investigation of the distonic radical cation isomers of ionized aniline, •C 6 H 4 -NH 3 + , is a particular case in which the enamine and imine radical cation isomers have been taken into account [26] . The distonic radical cation is a very stable reactive intermediate in the gas phase with a spatial separated radical and charge site. It can be formed during collisional activation in mass spectrometer from 2-, 3-, or 4-iodoanilinium ion, I-C 6 H 4 -NH 3 + → •C 6 H 4 -NH 3 + [26] [27] [28] . Although the DFT relative energies of various distonic radical cation isomers are close to those for the imine radical cation isomers and considerably larger than that of the enamine radical cation isomer [26] , izomerization has not been detected by mass spectrometry [26] [27] [28] . It has been suggested that the •C 6 H 4 -NH 3 + radical cation, generated by a protonation-deiodination sequence on iodoanilines, is protected against H• shifts rearrangements to the conventional aniline radical cation, C 6 H 5 NH 2 +• , by large energy barriers [26] .. For our investigations on prototropy of neutral and redox forms of aniline, we chose quantum-chemical methods, because experimental techniques are incapable of detecting less than 0.1% of minor tautomer(s). We applied the DFT method [29] with the B3LYP functional [30, 31] . The DFT method has been successfully applied for proton-transfer reactions, including tautomeric conversions in the gas phase that models apolar environment [32] [33] [34] [35] [36] . For B3LYP calculations, the 6-311+G(d,p) basis set [37] with the diffuse and polarization functions was employed. For selected structures, the G2 theory [38, 39] , recommended for the proton-transfer reactions [40, 41] , was also applied. The G2 theory corresponds effectively to QCISD(T)/6-311+G(3df,2p)//MP2/6-31 G(d) calculations with zeropoint vibrational and 'higher level' corrections [38, 39] . The extended basis sets, 6-311++G(3df,3pd) and aug-ccpVDZ [37, 42] , were additionally tested for DFT calculations. Since prototropy is always accompanied by π-electron transfer(s), we analysed π-and n-electron delocalization for the neutral and redox isomers of aniline optimized at the B3LYP/6-311+G(d,p) level. Quantum-chemical calculations performed for the neutral, oxidized, and reduced enamine and imine forms of aniline (Scheme 1) showed evidently that one-electron oxidation does not change the tautomeric preference in the gas phase. The enamine tautomer 1 predominates for the oxidized mixture, similarly as for the neutral one. π-Electron delocalization seems to play a principal role in tautomeric system and affects the tautomeric preference. However, for unknown reason, other internal effect changes this trend for the reduced mixture for which the less delocalized imine isomers 2a/3a (89%) and 2b/3b (11%) dominate. This variation of the tautomeric preference and π-electron delocalization may be helpful in understanding the mechanisms of spontaneous point mutations in DNA [64] [65] [66] as well as the mechanisms of aniline oxidation polymerization and polycondensation [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] .

O O B I O B I O B O O O O O O O O O O O B O O O O O O O B O O O O O O B I O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O B O O O O O O O O O O O O O B O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O B O O O O O O B O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O B O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O B O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O


An XML-based Quality of Service Enabling Language for the Web In this paper, we introduce an XML-based Hierarchical QoS Markup Language, called HQML, to enhance distributed multimedia applications on the World Wide Web (WWW) with Quality of Service (QoS) capability. The design of HQML is based on two observations: (1) the absence of a systematic QoS specification language, that can be used by distributed multimedia applications on the WWW to utilize the state-of-the-art QoS management technology; and (2) the power and popularity of XML to deliver richly structured contents over the Web. HQML allows distributed multimedia applications to specify all kinds of application-specific QoS policies and requirements. During runtime, the HQML Executor translates the HQML file into desired data structures and cooperates with the QoS proxies that assist applications in end-to-end QoS negotiation, setup and enforcement. In order to make QoS services tailored toward user preferences and meet the challenges of uncertainty in the distributed heterogeneous environments, the design of HQML is featured as interactive and flexible. In order to allow application developers to create HQML specifications correctly and easily, we have designed and developed a unified visual QoS programming environment, called QoSTalk. In QoSTalk, we adopt a grammatical approach to perform consistency check on the visual QoS specifications and generate HQML files automatically. Finally, we introduce the distributed QoS compiler, which performs the automatic mappings between application and resource level QoS parameters to relieve the application developer of the burden of dealing with low level QoS specifications. In this paper, we introduce an XML- In the multimedia language research community, several new languages have been proposed to address the challenges of supporting distributed multimedia applications on the WWW. Most notably TAOML [7] , an extension of HTML, has been introduced to allow distributed multimedia applications to be prototyped on the Web easily. TAOML framework is based on the concept of Teleaction Object, which is a multimedia object with associated hyper-graph structure and knowledge structure. TAOML can also be translated into XML. But TAOML mainly focuses on the integration and synchronization issues in prototyping distributed multimedia applications. Their support for QoS is limited to the QoS services of network subsystems. Thus TAOML cannot utilize many other available QoS services such as CPU reservation and scheduling services, middleware adaptation and dynamic reconfiguration services. Moreover, application developers are required to explicitly deal with the system resource QoS parameters (e.g., bandwidth), which often cannot be mapped from application-level QoS parameters (e.g., frame rate) straightforwardly. The quality of service is also considered in the presentation layer of the multimedia systems [18, 32] . In [31] , authors propose an extension of HTML to describe the meta-data for using QoS management in the WWW. However, their specification language only provides limited QoS support for simple multimedia applications because of the limitation of HTML.. Recently, researchers have proposed new formatting standards like XML to address the limitations of HTML. XML has been used as user interface language [33, 23] , application description language [13] and many other specification languages due to its extensibility and flexibility. Our work is orthogonal and complementary to the above approaches, since our research focuses on leveraging XML and all the state-of-the-art QoS technology to provide access to QoS support for complex distributed multimedia applications on the WWW in the heterogeneous environments.. In the QoS research community, several recent works have addressed the problems of QoS specifications from different directions and at different levels, namely user level, application level and system resource level. In INDEX project [1] , authors address the user-level QoS specifications, such as different user preferences and price models, in detail. Some system resource level QoS specifications such as RSL by the Globus project [11, 16] are also developed.. However, much effort has been put in how to specify QoS at the application level. In [37] , a scripting language SafeTcl is implemented to allow existing applications, written in C language, to take advantage of QoS facilities described by the DiffServ framework. In QOS-A [40] , a service contract-based API is designed to formalize the endto-end QoS requirements of the user and the potential degree of service commitment of the provider. A contract is a C data structure, including all the conceived clauses. In [15] , authors developed QuAL (Quality-of-Service Assurance Language), which is a process-oriented programming language and further extends C language. Although it is possible to mix QoS-related code or specification with the functional code, it is highly desirable to separate the non-functional requirements from the functional requirements so that the two parts can be developed and maintained independently.. Moreover, all these approaches are tightly coupled with C programming language. Thus it is difficult for applications written in other languages like Java to utilize them. The Quality Object (QuO) framework [30, 2, 36] supports QoS at the CORBA object layer by opening up distributed object implementations to give access to the system properties of the CORBA ORB and objects. QuO extends the CORBA functional IDL (Interface Definition Language) with a QoS Description Language (QDL). QDL allows specifications of possible QoS states, the system resources and mechanisms for measuring and providing QoS, and behavior for adapting to changes in QoS. QML (QoS Modeling Language) [39] is another independent QoS specification language for distributed object systems (by independent, we mean the specification language is not coupled with any specific programming language). It allows users to specify non-functional aspects of services (such as QoS specifications) separate from the interface definition. However, QDL and QML does not consider the QoS specifications about multiple possible configurations for the reconfigurable applications.. [45] Furthermore, they does not provide any consistency check mechanism to prevent incorrect QoS specifications, such as illegal configurations or mismatched QoS requirements, from injecting into the underlying systems. Most of all, they are not extensible and cannot be used by Web applications conveniently. In Figure 20 , we summarize the main features of the QoS specification languages and multimedia languages introduced above.

O O B I I O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O B O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Finding Rule Groups to Classify High Dimensional Gene Expression Datasets Abstract Mining gene expression datasets has generated interest among many bioinformatics researchers. One of the important trends in bioinformatics is identification of genes or groups of gene to differentiate diseased tissues from normal tissues. Classification of tissues into cancerous and normal tissues using the identified genes, is one of the key problems being faced in bioinformatics. Gene expression data is usually represented as a matrix; each element in the matrix represents an appearance level of a particular gene under a particular condition.. We assume that a gene expression matrix has n rows and m columns. The rows represent samples that are divided into different classes such as cancerous tissue and normal tissue. The columns represent genes whose number is usually more than several thousands. The number of rows is much lower than that of columns as the sample used ranges from ten to several hundreds. To cope with this kind of extremely high dimensional data, traditional machine learning techniques such as decision tree and support virtual machine, can not classify effectively as they use heuristics to select significant dimensions (genes); many discriminative dimensions can be left out.. In this paper, we propose a classification method that generates rule groups to categorize samples. A rule is a conjunction of several dimensions (genes); each gene is constrained into one interval. For example,. 3) is one such rule. If a sample satisfies the conjunction of a rule, it will be covered by the rule. The above rule covers samples whose expression values of gene1 are larger than 120. 5 and expression values of gene2 are smaller than or equal to 20.3. In contrast to traditional machine learning algorithms that use heuristics our method guarantees finding out best-k genes, which are most discriminative to classify samples in different classes, to form rule groups. The value of parameter k is set to around 5. It is based on the fact that each rule should not be too long from the principle of Occam's razor [4] ; otherwise, the problem of overfitting arises [5] . In this paper, we propose a robust algorithm to find out rule groups that describe a specific class in high dimensional gene expression datasets. Our algorithm enumerates all possible combinations of dimensions. By introducing pruning power and constraint of the number of items, the procedures can be executed efficiently in any personal computer. The algorithm guarantees finding out best-k rules for a specific class data; the predictive accuracy is found to be better than that of the state of art methods. Future research may involve clarifying the properties of constant k in "bestk rules", and searching for a more systematic method of determining the constant k. Our algorithm enumerates all possible combinations of items to find rule group to describe a specific class. Like most rule generation algorithms, the gene expression data is discretized to symbols. The dimensionality of gene expression data is usually very high; low discriminative genes are removed in the preprocessor of our algorithm. To find the rule group to describe a specific class, the support and confidence are decided similar to Aprior-like algorithm. For a rule r: LHS C. support(r) = support(LHS ∪ C); confidence(r) = support(r)/support(LHS). In Figure 2 , we set the support threshold = 1; confidence threshold = 100%, which is the strictest condition. In real datasets, we usually set loose thresholds for support and confidence. In our experiments, we set the threshold of support as five percent of the total number of samples, the threshold of confidence is set to one hundred percent. Support and confidence are two parameters of the algorithm. The maximum number of items in the condition of a rule, is another important parameter. As mentioned earlier, the number of items can not be large to reflect the common character of a specific class,. In our experiment, the largest number of items of condition is set to four.. To enumerate all possible items, the concept of candidate group [2] is employed. Each candidate group consists of two parts, namely, Head and Tail. Head is denoted as h(g) and Tail is denoted as t(g), where g represents a candidate group. The set enumeration tree [6] is used to generate all possible items.. The Head of root candidate group is empty and its Tail consists of all items as shown in Figure 4 . The branch candidate groups are grown by moving the items from Tail to Head one by one. All the leaf candidate groups have empty Tail. The Heads in all leaf candidate groups are all possible items: {d 1 }, {d 2 }, {d 3

O O O O O O O B I I O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


A generic library of problem solving methods for scheduling applications How to cite: Rajpathak, D.G.; Motta, E.; Zdrahal, Z. and Roy, R. (2006). A generic library of problem solving methods for scheduling applications. IEEE Transactions on Knowledge and Data Engineering, 18 (6) pp. 815-828. For guidance on citations see FAQs. c [not recorded] Version: [not recorded]Link(s) to article on publisher's website: http://dx.doi.org/Abstract-In this paper, we propose a generic library of problem-solving methods for scheduling applications. Although some attempts have been made in the past at developing the libraries of scheduling problem-solvers, these only provide limited coverage. Many lack generality, as they subscribe to a particular scheduling domain. Others simply implement a particular problem-solving technique, which may be applicable only to a subset of the space of scheduling problems. In addition, most of these libraries fail to provide the required degree of depth and precision. In our approach, we subscribe to the Task-Method-Domain-Application knowledge modeling framework which provides a structured organization for the different components of the library. At the task level, we construct a generic scheduling task ontology to formalize the space of scheduling problems. At the method level, we construct a generic problem-solving model of scheduling that generalizes from the variety of approaches to scheduling problem-solving, which can be found in the literature. The generic nature of this model is demonstrated by constructing seven methods for scheduling as an alternative specialization of the model. Finally, we validated our library on a number of applications to demonstrate its generic nature and effective support for developing scheduling applications. S CHEDULING [3] is the central theme of this paper. As a first-level approximation, we can say that scheduling deals with the assignment of jobs and activities to resources and time ranges in accordance with relevant constraints and requirements. Typical domains of scheduling include manufacturing scheduling, project scheduling, resource allocation, transportation scheduling, mass transit scheduling, scheduling nurse shifts in hospital, and air gate assignment. Each scheduling domain imposes its unique constraints and requirements, which need to be obeyed by a scheduler while devising a schedule because they determine the space of a valid solution. A process of constructing a valid schedule becomes even more challenging due to the uncertain, dynamic, and unpredictable circumstances [24] that occur in an environment where the scheduling task has to take place [8] , [23] . For instance, rush orders arrive without prior notice, the existing resources become unavailable and, moreover, cost criteria also plays a crucial role when multiple solutions can be admissible for a particular problem, and some of them are "better" than others.. One of the earliest research initiatives in scheduling, Operations Research (OR) [62] , aimed at finding an optimal solution, but optimization normally suffers from combinatorial complexity that can be proven NP-hard [25] , [26] . Generally speaking, the OR techniques [27] are restricted to rigid and static models with limited expressive power and when implemented to solve real-life scheduling problems, their sophisticated mathematical algorithms result in intractability, mainly because the problem space of the real-life scheduling problems is normally ill-structured [28] , [57] . In order to overcome the limitations observed in OR techniques [62] , several knowledge-based techniques from artificial intelligence (AI) have been used to solve the scheduling problem and, consequently, various intelligent scheduling systems [9] , [13] , [21] , [22] , [32] , [45] , [52] , [63] , [64] , [65] have been developed over the last 20-year period. 1 Although these systems have used various AI techniques successfully, they were hardwired in nature and the domain specific nature of these systems restricted their reusability within a single domain. As pointed out by Kruger [37] and Neches et al. [49] , monolithic systems are difficult to maintain because these systems need to be constructed from scratch every time the nature of domain changes.. Reusability is the main concern of research in knowledge modeling. Here, the construction of a knowledgebased system (KBS) can be realized by applying libraries of problem-solving methods (PSMs) [5] , [6] , [46] , [73] , [75] . An ontology [29] and a PSM [30] are the two central components in library construction mainly because they enhance knowledge sharing and reusability over wider domains. An ontology [29] can be seen as an information model that explicitly describes the various entities and abstractions that exist in a universe of discourse, along with their properties. Much work on reusable components for knowledge-based systems [5] , [6] , [46] , [73] , [75] relies on ontologies to specify formally generic classes of knowledge-intensive tasks, e.g., design and planning, as well as the ontological commitments associated with knowledge-intensive problem-solvers. In the former case, we use the term task ontologies, in the latter method ontologies. The task ontology [44] , [46] is method, domain, and application independent, while the method ontology [12] provides a vocabulary necessary to characterize the problem solving behavior of a generic task. A PSM is a domain independent specification of the reasoning process underlying a KBS. As discussed by van Heijst et al. [74] , a PSM can be used as a model-based template to guide the knowledge acquisition process and it can also be used to develop robust and maintainable applications by reuse, e.g., [39] , [46] , [58] . A PSM can either be task specific or task independent. Task specific PSMs are developed to tackle the specific types of Generic Tasks [10] , [11] , such as planning [73] , parametric design [46] , [75] , and they consist of the following components [5] , [18] : 1) Functional specification is a declarative description of input/output behavior stating what can be achieved by a PSM, 2) requirements state the domain knowledge required by a PSM to achieve its functionality, and 3) operational specification is a reasoning process consisting of inference structure, the knowledge, and the control flow, and it ensures that if the correct knowledge is provided, then the functional specification of a PSM can be achieved successfully. Task independent PSMs on the other hand provide high-level reasoning steps in terms of a generic paradigm, e.g., search [50] .. Some attempts have been made in the past at developing libraries of scheduling PSMs [35] , [38] , [69] , [72] , but these proposals provide limited results. In some cases [35] , these libraries subscribe to specific scheduling domains, which limit their reusability to these domains. In other cases [38] , they subscribe to a specific "problem-solving technique," e.g., constraint satisfaction, which provides limited "conceptual leverage" to tease out all the knowledge-intensive activities that take place in scheduling and also provides limited support for knowledge acquisition. Moreover, none of the existing libraries provide comprehensive coverage of the different knowledge-intensive PSMs, e.g., Propose & Improve [46] and Propose & Exchange [53] . For instance, the CommonKADS library [69] is only comprised of the Propose & Revise method [40] , [41] . The partial coverage exhibited by these libraries fails to reason about the different types of schedules, such as completion, constraint and requirement violation, and optimization.. The primary aim of our work is to develop a taskspecific, but domain independent, library of scheduling PSMs to overcome all the shortcomings observed in the existing proposals. Our library is task-specific because it is developed to solve the scheduling task, but it is domain independent because it does not subscribe to any specific application domain of scheduling. In our approach, we subscribe to the Task-Method-Domain-Application (TMDA) knowledge modeling framework [46] , which provides a structured way to organize the components of our library. Our library is formalized by using the Operational Conceptual Modelling Language (OCML) [46] , which provides support for producing sophisticated specifications, as well as mechanisms for operationalizing definitions to provide a concrete reusable resource to support knowledge acquisition and system development. Import/export mechanisms from OCML to standards, such as OWL [43] and Ontolingua [17] ensure symbol-level interoperability. The TMDA framework and the OCML language are discussed in the next section.. The rest of the paper is organized as follows: In the following section, we introduce the TMDA knowledge modeling framework and also provide an overview of OCML. In Section 3, we discuss a generic scheduling task ontology. In Section 4, we describe the construction of generic problem-solving model of scheduling (henceforth Generic-Schedule). In Section 5, we describe the engineering of the Propose & Revise method [41] to demonstrate how alternative PSMs can be constructed simply by reusing and specializing Generic-Schedule. The evaluation of the library is discussed in Section 6. In Section 7, we compare our work with other alternative proposals in the field. Finally, in Section 8, we conclude the paper by summarizing the main contributions of this work. In this paper, we have proposed a generic library of PSMs for the scheduling task. It is based on the TMDA knowledge modeling framework and follows a top-down approach. Because our library organization has drawn from the various KBS technologies, like ontologies, PSMs, search, and knowledge acquisition, it not only allows construction of different PSMs quickly, but also provides a way to compare and contrast their knowledge requirements. Our work is important for scheduling research both from theoretical and engineering perspectives. Theoretically, it exhibits a nice integration of the various techniques that have been developed in scheduling research and also provides an insight into the various components which can be used in scheduling. From the engineering perspective, our library offers support for the rapid construction of scheduling applications from different domains. Moreover, our library provides a comprehensive repertoire of seven different PSMs, which allows us to reason about all the schedule validation issues, such as completion, constraint and requirement violation, and optimization. Finally, our library now has hundreds of reusable definitions and it has been validated on a number of real-life and benchmark applications to confirm its generic nature.. Dnyanesh G. Rajpathak received the first degree in production engineering from the University of Pune, the master's degree in advanced manufacturing management and technology from the University of Surrey, and the PhD degree in artificial intelligence from the Open University. He is a research fellow at the Knowledge Media Institute. He has been conducting research for the last five years in the areas of scheduling, knowledge engineering, ontology engineering, and problem-solving methods. His current research interests include planning, context modeling, ontology integration and alignment, primarily for the semantic Web technology.. Enrico Motta received the first degree in computer science from the University of Pisa in Italy and the PhD degree in artificial intelligence from the Open University. He is a professor and director of the Knowledge Media Institute (KMi) at The Open University. His current research focuses primarily on the integration of semantic, Web and language technologies to support the development of intelligent web applications. Over the years, he has led KMi's contribution to numerous high-profile projects, such as the highly prestigious, EPSRC-funded Interdisciplinary Research Collaboration on Advanced Knowledge Technologies (AKT), as well as several EU-funded ones, most recently NeOn, X-Media, and Open Knowledge. He is editor-inchief of the International Journal of Human Computer Studies and is also on the editorial board of IEEE Intelligent Systems and the Journal of Web Semantics. He is also director of the European Summer School on Ontological Engineering and the semantic Web, which is now in its third edition. He is the author of more than 120 refereed publications and a book, Reusable Zdenek Zdrahal is a senior research fellow at the Knowledge Media Institute of The Open University. He has been conducting research in the areas of knowledge engineering, knowledge management, problem-solving methods, knowledge-based system life cycle support, and organizational learning.. Rajkumar Roy is a professor at Cranfield University and has a background in manufacturing engineering and artificial intelligence. He is working in the areas of knowledge engineering, decision support, and shop floor implementation of expert systems. He is currently leading the research in the decision engineering area at Cranfield. The research theme includes engineering cost estimating, design optimization, and micro-knowledge management.. . For more information on this or any other computing topic, please visit our Digital Library at www.computer.org/publications/dlib.

O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O B O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O B O O O O O O O O O O O O B O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O B O O B O B O O O B O O B B O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O B O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Algorithms for Boolean Function Query Properties Abstract. We present new algorithms to compute fundamental properties of a Boolean function given in truth-table form. Specifically, we give an O(N 2.322 log N ) algorithm for block sensitivity, an O(N 1.585 log N ) algorithm for 'tree decomposition,' and an O(N ) algorithm for 'quasisymmetry.' These algorithms are based on new insights into the structure of Boolean functions that may be of independent interest. We also give a subexponential-time algorithm for the space-bounded quantum query complexity of a Boolean function. To prove this algorithm correct, we develop a theory of limited-precision representation of unitary operators, building on work of Bernstein and Vazirani. The query complexity of Boolean functions, also called black-box or decision-tree complexity, has been well studied for years [3, 5, 13, 14, 16, 17] . Numerous Boolean function properties relevant to query complexity have been defined, such as sensitivity, block sensitivity, randomized and quantum query complexity, and degree as a real polynomial. But many open questions remain concerning the relationships between the properties. For example, are sensitivity and block sensitivity polynomially related? How small can quantum query complexity be, relative to randomized query complexity? Lacking answers to these questions, we may wish to gain insight into them by using computer analysis of small Boolean functions. But to perform such analysis, we need efficient algorithms to compute the properties in question. Such algorithms are the subject of the present paper.. Let f : {0, 1} n → {0, 1} be a Boolean function, and let N = 2 n be the size of the truth table of f . We seek algorithms that have modest running time as a function of N , given the truth table as input. The following table lists some properties important for query complexity, together with the complexities of the most efficient algorithms for them of which we know. In the There is also a complexity-theory rationale for studying algorithmic problems such as those considered in this paper. Much effort has been devoted to finding Boolean function properties that do not naturalize in the sense of Razborov and Rudich [15] , and that might therefore be useful for proving circuit lower bounds. In our view, it would help this effort to have a better general understanding of the complexity of problems on Boolean function truth tables-both upper and lower bounds. Such problems have been considered since the 1950's [19] , but basic open questions remain, especially in the setting of circuit complexity [11] . This paper addresses the much simpler setting of query complexity.. We do not know of a polynomial-time algorithm to find quantum query complexity; we raise this as an open problem. However, even finding quantum query complexity via exhaustive search is nontrivial, since it involves representing unitary operators with limited-precision arithmetic. The problem is deeper than that of approximating unitary gates with bounded error, which was solved by Bernstein and Vazirani [4] . In Section 7 we resolve the problem, and give an O(N polylog(N ) ) constant-factor approximation algorithm for bounded-error quantum query complexity if the memory of the quantum computer is restricted to O(log n) qubits.. We have implemented some of the algorithms discussed in this paper in a linkable C library [1] , which is available for download. To our knowledge, no algorithms for block sensitivity, quasisymmetry, tree decomposition, or quantum query complexity have been previously published. But algorithms for simpler query properties have appeared in the literature.. Given a Boolean function f , the deterministic query complexity D(f ) is the minimum height of a decision tree representing f . Guijarro et al. [7] give a simple O(N 1.585 log N ) dynamic programming algorithm to compute D(f ). That f is given as a truth table is crucial: if f is non-total and only the inputs for which f is defined are given, then computing D(f ) is (when phrased as a decision problem) NP-complete [10] .. The certificate complexity C(f ) is the maximum, over all inputs X, of the minimum number of input bits needed to prove the value of f (X). Equivalently, C(f ) is the minimum height of a nondeterministic decision tree for f . Czort [6] gives an O(N 1.585 log N ) algorithm to compute C(f ). Again, if f is not given as a full truth table, then computing C(f ) is NP-complete [8] .. Let deg(f ) be the minimum degree of an n-variate real multilinear polynomial ρ such that, for all X ∈ {0, 1} n , ρ(X) = f (X). The following lemma, adapted from Lemma 4 of [5] , is easily seen to yield an O(N 1.585 log N ) dynamic programming algorithm for deg(f ). Say that a function obeys the parity property if the number of inputs X with odd parity for which f (X) = 1 equals the number of inputs X with even parity for which f (X) = 1.. Lemma 1 (Shi and Yao). deg(f ) equals the size of the largest restriction of f for which the parity property fails.

O O B I O O O O O O O O O O O O O B I O O O O O O O O O O O O O B O O O O O O O O O B O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O B I O O B I O O O B O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O B I O O O B I O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O B O O O B I O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O B I O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Inductive Time-Space Lower Bounds for Sat and Related Problems Abstract. We improve upon indirect diagonalization arguments for lower bounds on explicit problems within the polynomial hierarchy. Our contributions are summarized as follows.1. We present a technique that uniformly improves upon most known nonlinear time lower bounds for nondeterminism and alternating computation, on both subpolynomial (n o(1) ) space RAMs and sequential one-tape machines with random access to the input. We obtain improved lower bounds for Boolean satisfiability (SAT), as well as all NP-complete problems that have efficient reductions from SAT, and Σ k -SAT, for constant k ≥ 2. For example, SAT cannot be solved by random access machines using n √ 3 time and subpolynomial space.2. We show how indirect diagonalization leads to time-space lower bounds for computation with bounded nondeterminism. For both the random access and multitape Turing machine models, we prove that for all k ≥ 1, there is a constant c k > 1 such that linear time with n 1/k nondeterministic bits is not contained in deterministic n c k time with subpolynomial space. This is used to prove that satisfiability of Boolean circuits with n inputs and n k size cannot be solved by deterministic multitape Turing machines running in n k·c k time and subpolynomial space. We study the power of indirect diagonalization in proving class separations and lower bounds on explicit problems in NP and the polynomial hierarchy, 434 Williams cc 15 (2007) deriving several improvements on existing lower bounds and some brand new bounds as well. We have demonstrated an inductive method for proving lower bounds on concrete NP-complete problems, such as SAT, that utilizes properties of the polynomial hierarchy and existing tools. We also showed how existing lower bound arguments can get lower bounds on bounded nondeterminism classes, due to the O(log n)-bit universal quantifier inside of a Σ 2 TIME simulation of DTISP. Our approach is extremely general. It is applicable to essentially any lower bound on Σ k TIME where the class C (shown to be weak) can be sped up using a constant number of alternations, and this speedup improves when more alternations are used -a tradeoff between alternations and speedup must be possible. To illustrate the importance of the last point, observe that our approach cannot currently be used to improve Paul, Pippenger, Szemeredi, and Trotter's NTIME[n] = DTIME[n] result, since we do not know a generalization of DTIME[t] ⊆ Σ 4 TIME[t/ log * t] where a machine using more than four alternations improves upon the t/ log * t time simulation of DTIME [t] . (However, we do know that DTIME[t] ⊆ ATIME[t/ log t] [11, 19] , so such a tradeoff may be possible.). Concerning further work in this area, it would be interesting to unify our techniques with those of Fortnow and Van Melkebeek. Their approach seems to be different from ours in both its capabilities and limitations. We can improve many of their results -however, they are able to prove an Ω(n √ 2 ) time lower bound for SAT on co-nondeterministic subpolynomial space machines and it seems we cannot do that with our method.. In closing, we believe that we have not yet completely exploited the full "power of inductive thinking" in our results. The conditional speedup of DTISP (Lemma 3.7) only works when we assume a subquadratic time algorithm. Thus it appears that the best time lower bound for SAT that we can obtain with the tools of this paper is Ω(n 2 ) (assuming subpolynomial space), but this is not totally clear. It may very well be that a proof of L = NP could take a form similar to the kind of arguments we presented here. Results supporting or contradicting this suggestion would be of great interest.

O O B I O O O O O O O O O O B O O B I O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O B I O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O B I O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Cloud technologies for bioinformatics applications Executing large number of independent tasks or tasks that perform minimal inter-task communication in parallel is a common requirement in many domains. In this paper, we present our experience in applying two new Microsoft technologies Dryad and Azure to three bioinformatics applications. We also compare with traditional MPI and Apache Hadoop MapReduce implementation in one example. The applications are an EST (Expressed Sequence Tag) sequence assembly program, PhyloD statistical package to identify HLA-associated viral evolution, and a pairwise Alu gene alignment application. We give detailed performance discussion on a 768 core Windows HPC Server cluster and an Azure cloud. All the applications start with a "doubly data parallel step" involving independent data chosen from two similar (EST, Alu) or two different databases (PhyloD). There are different structures for final stages in each application. There is increasing interest in approaches to data analysis in scientific computing as essentially every field is seeing an exponential increase in the size of the data deluge. The data sizes imply that parallelism is essential to process the information in a timely fashion. This is generating justified interest in new runtimes and programming models that unlike traditional parallel models such as MPI, directly address the data-specific issues.. Experience has shown that at least the initial (and often most time consuming) parts of data analysis are naturally data parallel and the processing can be made independent with perhaps some collective (reduction) operation. This structure has motivated the important MapReduce paradigm and many follow-on extensions.. Here we examine four technologies (Dryad [1] , Azure [2] Hadoop [8] and MPI) on three different bioinformatics application (PhyloD [3] , EST [4, 5] and Alu clustering [6, 7] ). Dryad is an implementation of extended MapReduce from Microsoft and Azure is Microsoft's cloud technology. All our computations were performed on Windows Servers with the Dryad and MPI work using a 768 core cluster Tempest consisting of 32 nodes each of 24-cores. Each node has 48GB of memory and four Intel six core Xenon E7450 2.4 Ghz chips. All the applications are (as is often so in Biology) "doubly data parallel" (or "all pairs" [24] ) as the basic computational unit is replicated over all pairs of data items from the same (EST, Alu) or different sources (PhyloD). In the EST example, each parallel task executes the CAP3 program on an input data file independently of others and there is no "reduction" or "aggregation" necessary at the end of the computation, where as in the Alu case, a global aggregation is necessary at the end of the independent computations to produce the resulting dissimilarity matrix that is fed into traditional high performance MPI. PhyloD has a similar initial stage which is followed by an aggregation step. In this paper we evaluate the different technologies showing they give similar performance in spite of the different programming models.. In section 2, we describe the three applications EST, PhyloD and Alu sequencing while the technologies are discussed in section 3 (without details of the well known Hadoop system). Section 4 presents some performance results. Conclusions are given in section 6 after a discussion of related work in section 5. We have studied three data analysis problems with four different technologies. The applications each start with a "doubly dataparallel" (all pairs) phase that can be implemented in MapReduce, MPI or using cloud resources on demand. The flexibility of clouds and MapReduce suggest they will become the preferred approaches. We showed how one can support an application (Alu) requiring a detailed output structure to allow follow-on iterative MPI computations. The applications differed in the heterogeneity of the initial data sets but in each case good performance is observed with the new cloud technologies competitive with MPI performance. The simple structure of the data/compute flow and the minimum inter-task communicational requirements of these "pleasingly parallel" applications enabled them to be implemented using a wide variety of technologies.. The support for handling large data sets, the concept of moving computation to data, and the better quality of services provided by the cloud technologies, simplify the implementation of some problems over traditional systems. We find that different programming constructs available in cloud technologies such as independent "maps" in MapReduce, "homomorphic Apply" in Dryad, and the "worker roles" in Azure are all suitable for implementing applications of the type we examine. In the Alu case, we show that Dryad and Hadoop can be programmed to prepare data for use in later parallel MPI/threaded applications used for further analysis. Our Dryad and Azure work was all performed on Windows machines and achieved very large speed ups (limited by memory bandwidth on 24 core nodes). Similar conclusions would be seen on Linux machines as long as they can support the DryadLINQ and Azure functionalities used. The current results suggest several follow up measurements including the overhead of clouds on our Hadoop and Dryad implementations as well as further comparisons of them. There have been several papers discussing data analysis using a variety of cloud and more traditional cluster/Grid technologies with the Chicago paper [23] influential in posing the broad importance of this type of problem. The Notre Dame all pairs system [24] clearly identified the "doubly data parallel" structure seen in all of our applications. We discuss in the Alu case the linking of an initial doubly data parallel to more traditional "singly data parallel" MPI applications. BLAST is a well known doubly data parallel problem and has been discussed in several papers [25, 26] . The Swarm project [5] successfully uses traditional distributed clustering scheduling to address the EST and CAP3 problem. Note approaches like Condor have significant startup time dominating performance. For basic operations [27] , we find Hadoop and Dryad get similar performance on bioinformatics, particle physics and the well known kernels. Wilde [28] has emphasized the value of scripting to control these (task parallel) problems and here DryadLINQ offers some capabilities that we exploited. We note that most previous work has used Linux based systems and technologies. Our work shows that Windows HPC server based systems can also be very effective.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Using a secure permutational covert channel to detect local and wide area interposition attacks Abstract-In this paper, we present new techniques to detect interposition attacks on stream-based connections in local and wide area networks. The approach developed here is general enough to apply uniformly to all circumstances where the manin-the-middle attacker achieves interposition by corrupting higherlayer to low-layer address mappings. Thus, both the problem of local area network interposition through ARP poisoning, and the problem wide area interposition through DNS poisoning are addressed as special cases of our work. Like other solutions that reside between Layers 3 and 4 (e.g. IPSEC), our techniques enjoy the property that they do not require redesigning legacy software, as is the case for approaches that reside above Layer 4 (e.g. SSL/TLS). Unlike IPSEC, however, the developed system is tailored only to the detection of interposition attacks, and thus circumvents the overhead and complexity introduced in guaranteeing stream confidentiality and integrity. We describe the design of the system, demonstrate its efficacy, and provide a publicly accessible prototype implementation.This paper addresses the problem of interposition attacks in which interposition relies on corrupting higher-layer to lowlayer address mappings. We begin by describing the two most important concrete instances of this phenomenon.Address Resolution Protocol (ARP) enables dynamic definition of the map from IP address to the link layer (MAC) address for network devices. ARP cannot be static since machines may need to change their IP addresses as needed; unfortunately, this aspect of the protocol is readily exploitable. When sending packets on the LAN, the destination MAC is resolved from the destination IP using ARP. The sender issues an ARP Request providing the IP, and the intended destination replies with it's MAC, which is then cached at the sender for some finite time. A "man-in-the-middle" attack based on ARP requires (1) periodically flooding the network with requests/replies for the victim's IP and the attackers's MAC address in place of the victim's and send them out on the network every few seconds, and (2) enabling packet forwarding on the attacker's machine in order to avoid a "sink hole" and allow the victim to continue new and existing con- Many solutions are proposed in order to detect such attacks. The most direct approach is to have static ARP tables [13] , and this is pursued by programs like anti-arp [14] . However opinions differ as to the merits of this strategy [15] particularly with respect to configuration overhead [13] . Another approach, taken by systems like Arpwatch [1], [16] , is to monitor for changes in ARP replies, and email notifications of observed changes. However, such email may be intercepted, missed, or the recipient may be in a position where the damage of ARP Poisoning can be quickly mitigated. DHCP snooping is another solution vector and is frequently implemented as a hardware solution. In this approach, the network device keeps track of the MAC address/port bindings of clients when they request an IP address. All attempts to send false ARP requests are then blocked to prevent clients from becoming poisoned [17] . This approach has its weakness as well, since actual MAC addresses themselves can be changed or spoofed to a valid MAC address. ArpOn is another software solution that mirrors like the aforementioned architecture. ArpOn manages all ARP protocol options, and replaces ARP utilities. Since it keeps its own cache of MAC addresses, ArpOn can ignore conflicting MAC addresses [18] .DNS poisoning is another example of a serious threat that is based on corrupting higher-layer to low-layer address mappings, and is a high profile threat frequently receiving public attention [19] , [20] , [21] , [22] , [23] , [24]. One way that DNS poisoning occurs is when the attacker requests the information for a particular domain. If the server does not contain the information in its cache, it will need to look up the information at a higher-level DNS server. However, because there is no restriction on where the answer comes from, an attacker can send false information to another domain. The only technical obstacle is that the attacker must use the same transaction ID (XID) when sending the information as This paper addresses the problem of interposition attacks in which interposition relies on corrupting higher-layer to lowlayer address mappings. We begin by describing the two most important concrete instances of this phenomenon.

O O O O O O O O O O O O B O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O B O B O O O O O O B O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O B O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O B O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O B O O O O O O O O O O O O O O O O O O O O O