Logical inference techniques for loop parallelization This paper presents a fully automatic approach to loop parallelization that integrates the use of static and run-time analysis and thus overcomes many known difficulties such as nonlinear and indirect array indexing and complex control flow. Our hybrid analysis framework validates the parallelization transformation by verifying the independence of the loop's memory references. To this end it represents array references using the USR (uniform set representation) language and expresses the independence condition as an equation, S = ∅, where S is a set expression representing array indexes. Using a language instead of an array-abstraction representation for S results in a smaller number of conservative approximations but exhibits a potentially-high runtime cost. To alleviate this cost we introduce a language translation F from the USR set-expression language to an equally rich language of predicates (F(S) ⇒ S = ∅). Loop parallelization is then validated using a novel logic inference algorithm that factorizes the obtained complex predicates (F (S)) into a sequence of sufficient-independence conditions that are evaluated first statically and, when needed, dynamically, in increasing order of their estimated complexities. We evaluate our automated solution on 26 benchmarks from PERFECT-CLUB and SPEC suites and show that our approach is effective in parallelizing large, complex loops and obtains much better full program speedups than the Intel and IBM Fortran compilers. Automatic loop parallelization requires the analysis of memory references for the purpose of establishing their data independence. For array references, compilers have used data dependence analysis which has historically taken two distinct directions: Static (compile time) analysis and run-time (dynamic) analysis.. Static dependence analysis, first proposed by [2, 4, 12, 22] , analyzes an entire loop nest by modeling the data dependencies between any pair of read/write accesses. While this technique can also drive powerful code transformations such as loop interchange, skewing, etc., they are typically limited to the affine array subscript domain and their effectiveness [21] is limited to relatively-small Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. loop nests. However, in the more general case, there are many obstacles to loop parallelization such as difficult to analyze symbolic constants, complex control flow, array-reshaping at call sites, quadratic array indexing, induction variables with no closed-form solutions [6, 13, 20] . Various techniques have been proposed to partially address some of these difficulties. For example, a class of index-array and stack-like accesses may be disambiguated via access pattern-matching techniques [15, 16] and some monotonic accesses (e.g., quadratic indexing) can be disambiguated via nonaffine dependency tests [7] . Similarly, Presburger arithmetic can be extended to the non-affine domain [24] to solve a class of irregular accesses and control-flow. The next step has been to extend analysis to program level by summarizing accesses interprocedurally, where an array abstraction is used to represent a (regular) set of memory references either via systems of affine constraints [13] , or linearmemory-access descriptors [20] , respectively. Loop independence has been modeled typically via an equation on summaries of shape S = ∅. To improve precision, summaries are paired with predicates [14, 18] that guard (otherwise unsafe) simplifications in the array-abstraction domain or predicate the summary existence (i.e., control-flow conditions).. Run-time analysis is necessary and useful when static analysis alone cannot decide whether a loop is independent or not and thus needs to make the conservative choice, i.e., not parallel. Run-time analysis can always resolve static ambiguities because it can use instances of symbols and thus produce accurate results. Historically, dynamic dependence analysis has been performed by tracing and analyzing a loop's relevant memory references by executing an inspector loop (inspector/executor model [26] ), or by tracing and analyzing a speculative parallel execution of the loop as it is done in thread-level speculation [25] . Such approaches typically extract maximal parallelism, at the cost of significant overhead, usually proportional to the number of traced dynamic memory references.. In order to attain our goal of effectively parallelizing a large number of codes automatically we have devised a hybrid compiler technology that can extract maximum static information so that the overhead of the dynamic analysis is reduced to a minimum. In this paper we presented a fully automatic approach to loop parallelization that integrates the use of static and run-time analysis and thus overcomes many previously known difficulties. Starting from our rich array reference representation, the USR language, we expressed the independence condition as an equation, S = ∅, where S is a set expression representing array indexes. We introduced a language translation F from the USR set-expression language to a language of predicates (F(S) ⇒ S = ∅). Loop parallelization is then validated using a novel logic inference algorithm that factorizes the obtained complex predicates (F (S)) into a sequence of sufficient-independence conditions which are evaluated first statically and, when necessary, at run-time, in increasing order of their estimated complexities. The experimental evaluation on 26 benchmarks from PERFECT-CLUB and SPEC suites and show speedups as high as 4.5x and 8.4x and on average 2.4x and 5.4x on four and eight processors, respectively, which are superior to the ones of IN-TEL's ifort and IBM's xlf r commercial compilers. Our translation technique from set to predicate language and our factorization algorithm are extensible and can be applied to a variety of conditional optimizations. It is powerful because it can make use of dynamic information very efficiently. Solutions based on Presburger arithmetic [12, 22] analyze an entire loop nest at a time, albeit in the narrower affine domain where subscripts, loop bounds, if conditions are affine expressions of loop indexes. Both the memory dependencies and the flow of values between every pair of read-write accesses are accurately modeled via systems of affine inequations, which are solved by gaussian-like elimination. These solutions drive powerful code transformations to optimize and enable parallelism [21] , but they are most effective when applied on relatively-small, intra-procedural loop nests exhibiting simple control flow. In comparison, our technique is better suited to parallelize larger loops, but is less effective in driving code transformations such as loop interchange, skewing, tiling, etc.. Pugh and Wonnacott are the first to show how to interpret irreducible Presburger formulas as simple predicates that can be verified either by the user or at runtime. The approach, named conditional dependency analysis [24] , existentially quantifies the variables that correspond to the loop index in the Presburger formula of the flow dependence and computes the "gist" of the obtained formula, by removing false-alarm terms. Analysis is extended with uninterpreted-symbol functions [23] to model non-affine terms and a limited notion of control flow, where inductive simplification derives simpler, (only) sufficient conditions for independence.. To extend analysis to program level, several solutions have been proposed that (i) summarize accesses via an array abstraction, as dictated by (structural) data-flow analysis, and (ii) model loop independence via equations on these summaries. These approaches typically perform conservative approximations to keep the (successive) summary results within the array abstraction domain, e.g., they fail to disambiguate some more complicated cases of coupled subscripts, but they accommodate better more-complex control flow. For example, the simple loop [24] : Hoeflinger et al. use the LMAD [20] array abstraction to summarize accesses into read-only, write-first and read-write sets. The ART test [14] builds iteration-level summaries and aggregates them over the targeted loop. If this aggregation creates a new LMAD dimension that does not overlap with the existent dimensions, then a monotonicity-based argument establishes that independence holds.. Hall et al. organize summaries as systems of affine inequations and analyze the read, write and exposed-read abstract sets to establish loop independence [13] . In both approaches summaries are paired with predicates, typically extracted from control flow, that guard the summary existence. In addition, Moon and Hall also extract predicates that guard (otherwise unsafe) simplifications in the array abstraction domain, and use invariants synthetized from branch conditions to enhance the precision of the summary [18] .. Adve and Mellor-Crummey present an interesting instance of an equational system, where summaries are represented via Presburger formula, and summary equations model computation partitioning and communication analysis for data-parallel programs [1] . The system defines a rich compositional algebra that starts from a set of user-define inputs, such as the alignment of an array with a template and the home of certain statements, and computes the set of locations that need to be sent/received to/from other processors. This formalism drives several important optimizations, such as message vectorization, in-place communication and in-place splitting. Whenever the result summary falls outside the affine domain, inspector/executor techniques are used to verify the desired invariant.. In comparison, rather than requiring constraints to be affine or resorting to conservative approximations, we build on Rus et al.'s language of USRs [28] , recalled in Section 2, to construct exact read-only, read-write, and write-first summaries. Since runtime evaluation of USRs exhibits in many cases unacceptably-large overheads, we define a language translation scheme to an equally expressive language of predicates.. The obtained predicate program is less constrained than the ones of related solutions, and its construction typically involves less conservative approximations. For example, when predicate symbols are mutable we use a program slice to compute them. We improve both qualitatively and quantitatively on Rus et al. work [28, 29] in that: we define a complex system of inference rules, which are used more aggressively to derive predicates, and we show that predicates can disambiguate many loops that were either unreported or previously solved via the more expensive USR evaluation. Finally, we present the compiler infrastructure for improving predicates' accuracy (e.g., USR reshaping rules), for factorizing and cascading the predicate program into a set of increasingly-complex conditions for independence, and for implementing conditional reduction, etc.. A significant amount of work was aimed at disambiguating a class of irregular subscripts exhibiting quadratic or array indexing or induction variables without closed-form solutions. One direction was to enhance the mathematical support with more accurate symbolic ranges [8, 10] , or more encompassing algebras, such as representing induction-variables via chains of recurrence [9] . For example, Blume and Eigenmann's Range Test [7] uses the extended range support and exploits the monotonicity of read-write accesses to disambiguate a class of quadratic or coupled indexing (e.g., loops olda do100/300 from trfd or ocean's ftrvmt do109).. Lin and Padua extend the library of recognizable access patterns to solve: (i) stack/queue-access patterns [16] (e.g., loops from bdna, p3m and tree, but not track), and (ii) index-array accesses [15] . The latter extends the applicability of the Range Test to cover array indexing, for the cases when the index-array value properties assumed by pattern recognition can be statically verified (e.g. loops from trfd and dyfesm, but not solvh do20).. Pugh and Wonnacott extension of Presburger arithmetic [23] also solves a number of loops that would fall outside the traditional affine domain: for example some tricky cases of coupled subscripts, or the indirect array pattern of loop intgrl do540 from trfd or the non-trivial control flow of mdg's interf do1000 and poteng do2000, or the quasi-affine pattern of loop filerx do290 from arc2d. However, loops olda do100/300 from trfd are only recognized to form a monotonic indexing sequence before induction variable substitution, while loops actfor do240 and extend do400 from bdna and track are not disambiguated.. Finally, the ART test [14] of Hoeflinger et al. disambiguates a class of coupled subscripts and exponential indexing.. In comparison, we present a unified framework that parallelizes a large class of loops that have been previously analyzed with a number of different techniques: for example we match the results reported by SUIF [13] on a number of statically analyzable benchmarks (e.g., mdg, ora, swim, applu, mgrid, hydro2d etc.), and also solve most of the non-affine benchmarks that require conditional analysis. The latter corresponds in part to a complex translation rule [19] that exploits the monotonicity of a summary of a particular shape (see Section 3.3). Notable exceptions are the stackaccess pattern of benchmark p3m, and several loops exhibiting exponential indexing and tricky instances of coupled subscripts. We solve loop run do20 from apsi via expensive USR evaluation, but which still results in negligible overhead due to the use of memoization. In addition we parallelize a number of previously unreported benchmarks using our minimal-weight predicates (e.g., calculix, zeusmp, wupwise, nasa, track, gromacs).. The other main direction of approaching autoparallelization has been to analyze memory references at run-time, either via inspector/executor [26] , or via TLS techniques [25] , or via faster but less scalable techniques [30] . These techniques have overhead proportional to the number of the original-loop accesses, and hence we use then only as last resort, once all the lighter predicates failed.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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


Comparison between Staggered and Unstaggered Finite-Difference Time-Domain Grids for Few-Cycle Temporal Optical Soliton Propagation The auxiliary-differential-equation formulation of the finite-difference timedomain method has become a powerful tool for modeling electromagnetic wave propagation in linear and nonlinear dispersive media. In the first part of this paper, we compare the stability and accuracy of second-and fourth-order-accurate spatial central discretizations on staggered grids with a third-order-accurate spatial discretization on an unstaggered grid, combined with a second-order leapfrog time integration scheme for modeling linear dispersive phenomena in a one-dimensional single-resonance Lorentz medium. We use on the unstaggered grid the NS2 scheme introduced by Y. Liu, which combines forward and backward differencing for the spatial derivatives. Phase and attenuation errors are determined analytically across the entire frequency band of the low-loss single-resonance Lorentz model. In the second part of the paper, we compare the use of one-dimensional staggered and unstaggered grids for modeling the transient evolution of few-cycle optical localized pulses in a dispersive Lorentz medium with a delayed third-order nonlinearity. The focus of the study is on the decay of higher-order solitons under the combined action of dispersion, self-phase modulation, self-steepening, and stimulated Raman scattering. Numerical results from the simulations on the unstaggered and staggered grids are in excellent agreement. This study demonstrates the accuracy of the unstaggered scheme augmented with a linear/nonlinear dispersive media formulation for temporal soliton propagation. Finite-difference time-domain (FDTD) modeling of electromagnetic pulse propagation in nonlinear optical materials has recently gained much attention [1] . The auxiliarydifferential-equation (ADE) formulation, initially developed for linear dispersive materials [2] , is currently the most commonly used approach for incorporating the nonlinear relationship between the polarization vector and the electric field into the FDTD Maxwell's equation solver [3, 4] . This modeling capability has been applied to a variety of secondand third-order nonlinear phenomena, including temporal and spatial soliton propagation [3, 5, 6] , self-focusing of optical beams [4] , scattering from linear-nonlinear interfaces [7] , pulse propagation through nonlinear corrugated waveguides [8] , pulse-selective behavior in nonlinear Fabry-Perot cavities [9] , and second-harmonic generation in nonlinear waveguides [10] .. Stability, numerical dispersion, and artificial dissipation are factors in FDTD-ADE modeling that must be accounted for to understand the algorithm's operation and its accuracy limits. Petropoulos [11] , Young et al. [12] , and Cummer [13] have analyzed the stability and numerical dispersion relations for second-order-accurate central differencing schemes involving the Yee [14] staggered grid where the electric and magnetic field vectors are interleaved. Using a different approach, Petropoulos [15] determined the grid resolution, in terms of a fixed total computation time and desired phase error, for both second-and fourth-order Yee schemes in two dimensions for free-space propagation.. In the past, staggered grids have usually been preferred over unstaggered grids for the following reasons. On an unstaggered grid, the electric and magnetic field vectors are placed on the same primary grid and all vector field components are colocated. Central differencing on an unstaggered grid can lead to undesirable numerical oscillations due to odd-even decoupling [16] . Moreover, the standard unstaggered scheme produces a relative total numerical phase velocity error four times greater than the staggered scheme due to the wider stencil. Despite these problems, the unstaggered grid with its inherently colocated electric field vector components offers several advantages specific to the modeling of optical wave phenomena. For example, unstaggered schemes enable the use of a moving window coordinate frame for tracking long-distance optical pulse propagation [17, 18] . Most importantly, the use of a grid with colocated electric field vector components is essential for efficient and accurate modeling of nonlinear optical wave propagation in two or three dimensions. The reason for this is the fact that the presence of the nonlinearity requires calculating higherorder powers of the electric field intensity at a given point in space at every time step. If the electric field vector components are not colocated, as is the case with the staggered Yee scheme, then the field intensity at a given point in space must be interpolated from the known field components centered around that point. This interpolation is costly in terms of computational efficiency and accuracy, and can be avoided altogether if the electric field vectors are colocated. 1 Liu [19] suggested an interesting way to combine the desirable properties of the staggered and unstaggered grids. His approach uses noncentral differencing based on a combination of forward and backward differencing (FD/BD) for the spatial derivatives on an unstaggered grid. In this manner, the even-odd coupling is preserved even though the fields are colocated; thus spurious oscillations are avoided. The methods referred to as NS2 and NS3 in [19] (NS meaning "nonsymmetric") are finite-difference (FD) discretizations of first-order derivatives in Maxwell's curl equations with third-and first-order accuracy, respectively. In [19] , numerical experiments supported the claim that the NS2 and NS3 schemes targeted fourth-and sixth-order accuracy in space, respectively, as is the case for the corresponding wave-equation systems containing second-order derivatives. However, as shown recently by Driscoll and Fornberg [20] , such noncentral differencing only retains the accuracy of the first-order derivatives.. In this paper, we compare the Yee (staggered) and Liu NS2 (unstaggered) schemes for modeling pulse propagation in linear and nonlinear dispersive media. Time integration is performed for both grid configurations in the usual second-order leapfrog manner. Secondand fourth-order spatial accuracy is considered on the staggered grids and third-order spatial accuracy on the unstaggered grid. Therefore, we denote the various schemes as Y22, Y24, and NS2. We do not include the NS3 method in this analysis as it is only first-order accurate and therefore unable to capture the correct physics in the medium absorption band.. First, we compare the stability and accuracy of the Y22, Y24, and NS2 FDTD-ADE schemes for a linear single-resonance Lorentz medium. We conduct a Von Neumann analysis of each approach in order to determine stability criteria. Using CFL numbers below and at the stability limit, we investigate phase and attenuation errors across the entire frequency band of the Lorentz model. Second, we compare the results from the two grid arrangements in modeling the transient evolution of few-cycle optical localized pulses in a Lorentz dispersive medium with nonlinear third-order delayed response modeling Raman scattering. Since the Courant limit for the nonlinear algorithm is not known, the nonlinear algorithms were run below their linear CFL limit.. The focus of the numerical experiments is on the decay of linearly polarized fundamental and second-order bright soliton pulses due to the combined action third-order dispersion (TOD), self-phase modulation (SPM), self-steepening (SS), and Raman self-scattering (RSS) [21] . These numerical experiments provide a rigorous test bed for comparing the accuracy of the staggered and unstaggered FDTD-ADE schemes. Higher-order solitons are nonlinear superpositions of single solitons with no binding energy. In the presence of small perturbations, they decay and split into their single-soliton constituents. Their decay has been investigated for a variety of cases, including the effects of TOD, SS, and SRS [22, 23] . The dynamics of their decay is very rich due to nonlinear interactions among the multiple single constitutive solitons. Striking examples include the breakup of higherorder soliton pulses under the action of two-photon absorption (TPA) and the complicated evolution of these solitons under periodic amplification. Higher-order solitons have received less attention than fundamental solitons mainly because they are not as robust. However, they exhibit important features like periodic beating [24] due to phase interference among the constitutive solitons, and therefore offer potential applications in switching devices. We have developed 1D vector Maxwell's equations solvers based on the staggered grid originally proposed by Yee and an unstaggered NS2 scheme proposed by Liu and shown by Driscoll and Fornberg to be third-order-accurate to study the propagation of temporal solitons in a single-resonance Lorentz medium with third-order Raman-like nonlinearity. The stability and accuracy of the linear version of the various FDTD-ADE schemes have been analyzed. We have found that all schemes have a stability criterion that depends only on ∞ , and that the stability limit for the NS2 scheme is higher than that for the Y22 and Y24 schemes. In comparison to the Y22 schemes, the numerical phase velocity errors for the higher-order schemes are greatly reduced at frequencies below the Lorentz absorption band and around the medium resonance frequency. The numerical dissipation levels do not vary much between schemes, and overall are very small.. We have tested the staggered and unstaggered FDTD-ADE schemes on a relatively complicated class of third-order nonlinear optical problems: the modeling of higher-order solitonlike and third-harmonic dynamics. Numerical results using the unstaggered grid scheme are in excellent agreement with the results obtained using the staggered grid schemes. Use of colocated electric field schemes such as the NS2 unstaggered scheme investigated here may prove to be essential for modeling nonlinear optical pulse propagation in higher dimensions. For this application, the advantage of using an unstaggered grid over an uncolocated staggered grid appears to outweigh any disadvantage of having to use an approximate boundary condition for the unstaggered grid where the fields are colocated.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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 B I 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 O O O O O O O O O O O O O O O O O O O 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 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Supporting the generation of argument structure within video sequences We describe our approach to the automatic generation of argument structures in the domain of video documentaries. Our approach releases control of the final video sequencing from the film maker/annotator to the system and thus allows users to select their own documentaries for viewing. Each video segment is annotated using a formal structure filled in with terms from a thesaurus. The annotations are used for finding and combining video segments into a final presentation. In order to influence the documentaries that can be generated, we introduce three methods for the annotator to evaluate the effectiveness of the annotations and to influence the process of automatic link generation. Vox Populi is a rhetoric engine for automatically generating argumentation video sequences from a semantically annotated media repository. This type of engine supports artistic initiatives, such as Montevideo's VJ project 1 or Interview with America 2 (IWA) where the documentary material is made available to the general public in the form of a documentary space, rather than a single fully-edited linear film.. In authoring a documentary space, the author controls the design of the semantic content through media gathering and media annotation. The latter covers the description of relevant concepts from the domain the documentary deals with, as well as typed relations between the concepts. The author designs the space without having to specify explicitly how and in what order the audience should access the material. This is handled by the rhetoric engine, while the choice of annotations and relations gives the author artistic freedom to provide a particular view or views of the material. The way the material is annotated defines the points of view that the engine can generate.. The challenge for the author is to describe the material in such a way that the rhetoric engine can exploit the potential meaning covered in the semantics. Since the author has no influence on the run-time generation of the video sequences, the expected richness of the generated sequences may not occur, and the documentary system can exhibit poor behavior with respect to the information selected or its presentation. The reasons for this may be that the author made errors when annotating the material, either by introducing inconsistencies of content descriptions or by establishing erroneous relationships between concepts. The author may have forgotten to establish relationships between concepts or simply used a poor set of semantics that does not appropriately express the content of the media items. Whatever the reason, the author can be supported by defining mechanisms that identify the source of the problem and suggest improvement strategies.. In this paper we address this problem, and describe how Vox Populi provides an empirical method that facilitates the author's verification of the documentary space. Specifically, the proposed method provides a means of evaluating the effectiveness of the relations between terms used in the annotations.. We first briefly introduce the Vox Populi presentation engine to establish the framework in which an author designs. We then discuss our approach in the context of related work.. The sections that follow describe the annotation structures and how the engine operates on them. We then explain our method to support the authoring of a documentary space. We evaluate our approach based on data collected during the design of the "Interview with America" documentary space. The paper concludes with some discussion and future work. In this paper we described particular authoring support provided by Vox Populi, a rhetoric engine for automatically generating argumentation video sequences from a semantically annotated media repository. We described the role of the author in this type of system, namely to design the semantics of a documentary space through media gathering and media annotation without having to specify explicitly how and in what order the audience should access the material. We also showed that the design of the annotations as well as the related conceptual space in the form of a thesaurus are challenging. The biggest problem for the author is to distinguish the effectiveness of the created semantic space. We developed and implemented three indexes that facilitate an author in testing the effectiveness of the established semantic space in generating the story space. The mechanisms mainly cover the detection of effective and noneffective relations in the thesaurus with respect to linking the material in the repository. The developed mechanisms were used by the designers of the IWA space.. The described support mechanisms demonstrate the feasibility of our approach. We adopted these mechanisms to provide various sets of empirical data which have been and still are used to improve the IWA thesaurus as well as the annotations of video segments in the IWA repository. The current approach needs, however, further fine tuning.. As we see it, the research presented in this paper presents a natural evolution in two directions, for both of which we have already taken the first steps:. • Automatic link suggestion. • Re-engineering the automatic linking process (not only the thesaurus). In the first case the engine is able to identify relations in the thesaurus that are not effective, and can also suggest relations to add between particular terms. A way to achieve this is to start with a fully connected thesaurus (thus every term connected to every other term) and measure the index described in Section 7.2, then suggest to retain only the relations that score best or above a certain threshold.. The second research direction involves measuring how effective each iteration of the process described in Section 5.1 is in generating a hit in the repository. We already have some data that relate the number of hits to the number of transformations used to generate the statement causing an hit. We observed that after a certain number of transformations there are no more hits. This seems to indicate that generated statements can become semantically too far from the original content of the repository and the data could help define a limit for the number of iterations to use.. This last issue is particularly important for the computational complexity of our approach, especially as the semantic space to be designed is large. Our approach is tested so far on a medium sized repository. As already said in Section 5.1, we use two iterations and the generation of a Semantic Graph takes 90 seconds (including generating the performance indexes). Using 3 iterations the process takes 331 seconds, while with 4 it takes 768. The number of itera- Table 10 : Best 10 relations based on "hit" score tions is thus crucial for the performance of our approach. On the other hand, we believe that performance depends less on the number of statements and our approach should be scalable to environments with a large repository. Performance is more likely to be influenced by the number of terms and relations in the thesaurus. In considering computational complexity it is important to notice that the support we provide is at authoring time and we are not constrained by run-time requirements. In Section 7.1 we pointed out that the retrieved quality measurements are subject to interpretation and we provided hints on how the data could be automatically interpreted. To date, we can only use the observations gathered during the work with the IWA project. We are also collaborating with another team of a documentary project, namely the VideoJockey (VJ) project from Montevideo 4 . In this context we try to learn more about the flexibility of the rhetoric approach of Vox Populi and simultaneously investigate the ways in which authors establish their semantic space. Our assumption is that applying our approach will allow us to heuristically define threshold values for our performance indexes. We believe that our evaluation mechanism, although developed in the scope of the Vox Populi engine, can be of interest to other approaches where a thesaurus and structured relations are used to infer relations between annotated items.. Another interesting research direction is to apply our approach to collaborative annotation efforts. In this case, where the role of the author is shared among a number of people, inconsistent annotations are more likely, and the use of author support tools such as those presented in this paper could be valuable.. In this paper we discussed issues related to the generation of the Semantic Graph, i.e. the story space. This step forms the basis for our approach to automatically generating video documentaries. We are currently researching how to exploit this space with strategies particularly geared to presenting video, looking at disciplines such as film theory and narrative. We compare this work with a number of foci of hypertext research, such as semantic-networked discourse, linking and the automatic generation of links, structural analysis and conceptual modeling of semantic navigation structures and conceptual hypermedia.. The notion of a semantic-network based discourse has always been an objective within hypertext research. We have seen developments on modeling argumentation discourse in general [7] , sophisticated requirements for scholarly argumentation [20] , and on establishing large narratives [21] . This research direction is, despite its linguistic focus, inspirational as it investigates the impact of argumentation on directed graph models, where nodes and links have a semantic structure that can be used to support accessing and visualizing the established or emerging network. Applying access to material based on the connections between concepts, where the connections are grounded in a discourse and/or argumentation ontology, is also the approach in Vox Populi but we go a step further. We do not apply this tech-nique to present an existing discourse but to generate a new argument flow on-the-fly, depending on the information need of the visitor of the documentary space. In this respect work by Mateas [16] and Davenport and Murtaugh [10] is closer to our own.. The ConText system [10] shares the aim of Vox Populi to allow the author to gather material in an evolving environment. The author, however, is removed from the complex task of explicitly sequencing the material for each viewer. The major difference between the two systems is that in ConText video sequences are annotated with keywords, where the keywords are related to each other. Keyword annotation is less time-consuming but it does not support the creation of a semantic graph of video segments linked by typed relations as needed by automatic video generation strategies of the kind used by Vox Populi [4] . Terminal Time [16] applies rhetoric strategies to generate cinematic experiences for mass audiences. The major differences between it and Vox Populi is that Terminal Time is plandriven and places media items into the generated rhetoric plan, while Vox Populi is data driven and creates a plan based on the available media items.. Linking plays an important role, a core theme in hypertext literature [14, 18, 23] . Authors can be provided with a collection of techniques for reducing undesired structural complexity and create documents that readers can traverse more easily [3, 5, 13] . Yet the problem of the author in Vox Populi is different since here the author designs the semantic description of the material and leaves the final linking to the system. Nevertheless, the repair mechanisms described in [5] can be part of such automatic linking. The advantages of automatic link generation are discussed in [8, 22] . In the former, Cleary and Bareiss argue about the difficulty of creating a coherent question answering hypermedia system, in terms of time spent by experienced annotators and in errors made when linking parts of textual stories. The authors claim advantages of automatic linking over manual linking, since the former is capable of dealing with changing information. This overcomes one of the limitations of static hypermedia systems (see issue 3 in [12] ). Cleary and Bareiss' approach is similar to our own because we both try to capture the aspects of documents which would cause an indexer to create a link between them. Their point linking technique, in particular, is very similar to our annotation structure, although we use exclusively a thesaurus rather than linking rules. Our approach is different because we adopt the point linking ideas but use them for generation as well as for evaluation purposes, as shown later in this paper.. The idea of traversing a semantic graph to generate a presentation of aspects contained in the information space is not new [11, 15] . The difference between Vox Populi and these systems is that in Vox Populi the semantic graph is generated automatically by the engine and not given as input, as in [11] . In [15] the annotations used are neither taxonomic nor structured and the relations built are not argument based.. Finally, conceptual navigation [9] and conceptual hypermedia [6] discuss the use of taxonomies or ontologies to support browsing of the annotated information space. Vox Populi differs from their approach because a thesaurus is used not only to annotate (or classify [6] ) information items but also to establish semantic relations between them.. Having introduced the Vox Populi environment and compared it with existing work we will now explain the basic concepts the engine operates on, namely the annotation structures (Section 4) and the generation process (Section 5).

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 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 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 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 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 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 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 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 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 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 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 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 O O O O O O O O O O O O O O O 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 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 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


A review of procedures to evolve quantum algorithms There exist quantum algorithms that are more efficient than their classical counterparts; such algorithms were invented by Shor in 1994 and then Grover in 1996. A lack of invention since Grover's algorithm has been commonly attributed to the non-intuitive nature of quantum algorithms to the classically trained person. Thus, the idea of using computers to automatically generate quantum algorithms based on an evolutionary model emerged. A limitation of this approach is that quantum computers do not yet exist and quantum simulation on a classical machine has an exponential order overhead. Nevertheless, early research into evolving quantum algorithms has shown promise. This paper provides an introduction into quantum and evolutionary algorithms for the computer scientist not familiar with these fields. The exciting field of using evolutionary algorithms to evolve quantum algorithms is then reviewed. This section presents observations made from published research, a brief summary of evolving quantum algorithms and a look to the future of the field. Note that there is some overlap between the subsections. Genetic algorithms and programming have been successfully used to analyse and optimise a range of known quantum algorithms. Previous studies have also shown that it is possible to evolve new quantum algorithms, albeit only small ones. Evolving scalable quantum algorithms has also been shown to be possible, in many cases by people making generalisations of evolved algorithms. Another possible outcome of evolving quantum algorithms is that a new useful idea, such as a meaningful sequence of gates, which will change the way future quantum algorithms are developed manually, may be discovered. However, as yet, this has not occurred. Nevertheless, manual quantum algorithm generation has had more success than evolving quantum algorithms [64] , although no further breakthroughs have been made manually since Shor's and Grover's algorithms. Thus, the role of evolutionary search is most probably to supplement, rather than replace, human ability.. The fact that quantum computers do not yet exist is a huge limitation on the research field of evolving quantum algorithms, as quantum simulation on a classical machine has an exponential order overhead. This means that only small quantum algorithms can be evolved, which are few in number and generally have little practical application. Thus, this field will have a brighter future when quantum computers exist. Perhaps this will even start to happen with the use of the most powerful classical computers of today and the near future.. For a field roughly a decade old it has shown great potential to contribute to the broad field of quantum computing. A major breakthrough has not been made, nor should it be expected at this early stage. Nonetheless, there is still much opportunity for a breakthrough to occur as there has only been a small number of quantum algorithms discovered, by any method. Furthermore, there are still many ideas that have not been tested as it is a relatively young application of GP.

O O O O O O B I 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 B I 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 B I 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 B I O O B I 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 B I 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 B I 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 I 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 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 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 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 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


Finite element analysis of the indentation test on rocks with microstructure Strength parameters of rocks are currently determined from indentation tests. In this paper, a finite element analysis of this test is presented and scale effect is studied. The rock is modelled as an elasto-plastic medium with Cosserat microstructure and consequently possesses an internal length. The response of the indentation curve is studied for various values of the size of the indentor as compared to the internal length of the rock in order to assess the scale effect. Hardness tests on rocks are currently used in rock mechanics and in rock engineering practice in order to provide a convenient and rapid characterisation of a rock. (see for example the comprehensive review of Atkinson [1] ). Various quantitative measures of hardness depending on the particular test being employed are used empirically to characterise the rock drilling efficiency. For static indentation tests, an indentor is forced into a rock surface as for example the socalled 'stamp-test' [2] where a rigid circular indentor is used. Hardness is empirically related to the modulus of elasticity, the material yield stress, the fracture toughness, the material ductility or brittleness, the resistance to scratching, the surface energy. Moreover, apart from providing empirical applications in quality control, a more fundamental understanding of the indentation test in terms of actual deformation mechanisms has been developed in order to measure intrinsic fracture parameters of brittle solids [3] [4] [5] . This requires a detailed analysis of the actual indentation stress field which depends upon the nature of the contact zone and the size of this contact zone as compared to the characteristic size of the microstructure of the indented rock (e.g. grain size). The correlation between indentation hardness and grain size has been studied by Brace [6] . It was shown that the indentation hardness is proportional to d -m where d is the maximum grain diameter and m is a constant of the order of 0.5 for hard rocks and 0.3 for carbonates (see also Jaeger [7] ).. Failure criteria for rocks usually involve only stresses and are thus suited primarily for homogeneous states of stresses. Since in rock mechanics highly inhomogeneous stresses may occur, it is possible that stress-gradients have some effects of failure mechanism. As mentioned by Mindlin [8] , the apparent strength of rock-type materials is affected by strain gradient. It is observed that brittle failure and the onset of static yielding in the presence of stress concentration occur at higher loads than might be expected on the basis of stress concentration factors calculated from the theory of elasticity. In general, increasing strain gradients appear to make some materials stronger and to a degree that depends upon grain size. If the size of the indentor is comparable to the internal length of rock the scale effects cannot be neglected and the load-indentation curve must be re-interpreted in order to extract intrinsic parameters of the tested material.. Then it appears necessary to resort to continuum models with microstructure to describe correctly the deformation process at small scale. These generalized continua usually contain additional kinematical degrees of freedom (Cosserat continuum) and/or higher deformation gradients (higher grade continuum). Hardness tests are currently used in rock mechanics to characterise rock mechanical properties and rock drilling efficiency. However it is observed that brittle failure is influenced by large strain gradients and that the onset of static yielding in the presence of stress concentration occurs at higher loads than might be expected from classical continuum theories. Although based on simple constitutive assumptions and geometrical configuration the above analysis gives an example of microstructural effects in the presence of stress concentration.. Using finite element numerical simulations, it is shown that for a material with. Cosserat microstructure, the apparent strength and rigidity increase as the size of the indentor decreases. This scale effect for the strength can reach 15% for a statical model and 50% for a kinematical Cosserat model when the size of the indentor tool is comparable to the grain size of the rock. It is shown that this scale effect is not significantly affected by the interface condition at the rock tool interface. Such a scale effect has been observed experimentally for [21, 22] . In the lack of relevant quantitative experimental data for the scale effect in the case of rocks this analysis suggests that this effect may be of importance and has to be investigated further. In addition, indentation tests appear as an experimental tool for the testing and validation of continuum theories with microstructure and calibration of internal lengths parameters.

B I I O O O O O O O B B O O O O O O O O O O O O O B I I O O O O O O B I 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 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 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 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 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 B O O B 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 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 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 B O O O O O O


Noise- and compression-robust biological features for texture classification Abstract Texture classification is an important aspect of many digital image processing applications such as surface inspection, content-based image retrieval, and biomedical image analysis. However, noise and compression artifacts in images cause problems for most texture analysis methods. This paper proposes the use of features based on the human visual system for texture classification using a semisupervised, hierarchical approach. The texture feature consists of responses of cells which are found in the visual cortex of higher primates. Classification experiments on different texture libraries indicate that the proposed features obtain a very high classification near 97%. In contrast to other wellestablished texture analysis methods, the experiments indicate that the proposed features are more robust to various levels of speckle and Gaussian noise. Furthermore, we show that the classification rate of the textures using the presented biologically inspired features is hardly affected by image compression techniques. An important aspect of many image processing applications, such as surface inspection, image retrieval, and medical image processing, is the classification and interpretation of textures. Texture classification involves deciding what texture class an observed sample belongs to. Although a plethora of texture analysis methods have been proposed in the literature, there are still some open issues with which many applications struggle. For most practical applications, noise is a frequent problem in texture characterization and causes difficulties for interpretation. Furthermore, different methods used to eliminate the noise, e.g., adaptive and nonadaptive filtering, eliminate some actual image data as well, which results in the loss of texture information. Due to the high data volume of digital images and video, compression is a popular technique to reduce the size and to optimize the storage. However, the presence of artifacts caused by compression algorithms is an issue for texture analysis. Aschkenasy et al. [1] have investigated the effect of compression on texture analysis of echocardiographic images. They recommend the use of uncompressed or lossless compressed digital images in studies involving texture analysis since lossy compression affects texture parameters.. In the literature some approaches exist to deal with noise. For example, Iakovidis et al. [10] describe a fuzzy extension to the local binary pattern (LBP) operator [23] to deal with noise in images. An important drawback of their approach is that a parameter to control the degree of fuzziness has to be specified, and an optimal value for this parameter is highly content dependent. They also assume that the training and test images contain an equal amount of noise. Murino et al. [22] apply high-order statistics to create a feature vector. However, a selection algorithm is needed to reduce the highdimensional data for classification. Fountain and Tan [8] used a multichannel Gabor filter bank for classifying textures from the Brodatz album. By processing an image using multiple resolution techniques, filter banks have the ability to decompose an image into relevant texture features that can be used to classify the textures accordingly. They found that their method was relatively robust to Gaussian noise by using a sufficient number of features. In computer vision the use of visual neuroscience has often been limited to a tuning of Gabor filter banks [5, 6, 13] . Little or no attention has been given to biological features of higher complexity. In 1992, Von der Heydt et al. [28] reported on the existence of a new type of orientation-selective neuron in the visual cortex of higher primates which they called grating cells. Grating cells respond vigorously to a grating of bars of appropriate orientation and periodicity, but they do not respond to bars that do not make part of a grating. The main purpose of grating cells in the human visual system (HVS) is a fast and reliable detection of periodic patterns of a certain orientation. The behavior of grating cells could be a vital property of a robust texture operator since they do not respond to nontexture features such as isolated pixels or edges. There exist some computational models of grating cells in the literature, e.g., by Kruizinga and Petkov [15] , Lourens et al. [16] , and Zhang et al. [29] . Despite these models, the application of grating cell features in the computer vision domain is, at the time of writing, still very limited. Zhang et al. apply their model in medical image retrieval, and Ma and Doermann [17] use the model of Kruizinga and Petkov for classifying fonts of scanned document images. They have found that the grating cell operator can capture more texture differences between fonts than the use of isotropic Gabor filter responses. In previous work [19] , we have used grating cell outputs for segmenting textured and outdoor scenery images and we obtained better results compared to the use of widely accepted Gabor filter outputs.. In this paper, we present the use of features inspired by the HVS for texture classification. Furthermore, we investigate the robustness against Gaussian and speckle noise and against artifacts of a Joint Photographic Expert Group (JPEG) image compression algorithm. The remainder of the paper is structured as follows. Section 2 explains the computational model for calculating texture features and the relationship with the HVS. In Sect. 3, the filter bank design and the construction of our texture features is explained. Then in Sect. 4, we explain how the textures are classified using a hierarchical, semisupervised neural network. In Sect. 5, we conduct classification experiments of the proposed texture features on two image sets and compare their results with other well-established texture analysis methods. The robustness of the proposed texture features against noise and image compression are tested. Section 6 ends this paper with conclusions. This paper presented the use of HVS-inspired features for semisupervised texture classification using hierarchical SOMs. Experiments conducted on textures taken from the Brodatz and Vistex album indicate that the proposed features obtain very high classification rates near 97%, and can thus compete with well-established methods like multiscale LBP.. However, noise is a frequent problem in many practical applications and causes difficulties for texture interpretation. Therefore, we have investigated the robustness of texture analysis methods against various levels of speckle and Gaussian noise. We added zero-mean speckle and Gaussian noise with different variances to the test data and classified these data using the noise-free training data. We have observed that the classification rate of the proposed features is less affected by the various amounts of noise and achieves better classification rates than the other methods. The proposed HVS-inspired features clearly obtain the best classifications results over all test sets.. Since JPEG image compression is a popular technique to reduce the size of image data, we have also investigated the impact of the compression rate on texture classification. Therefore, we applied JPEG compression at various quality levels on the test images, and we observed that the proposed features are very robust to JPEG compression. We noticed that the classification rate of the other considered texture features starts to decrease as the quality level of the JPEG compression decreases, while it has hardly an effect on the classification rate of the proposed features.. It is obvious that our approach, which is based on a filter bank, can deal better with the information loss introduced by noise or image compression algorithms than methods like GMRF and LBP since the latter methods are more sensitive to local changes of pixel values. To conclude, the proposed HVS-inspired features are robust to speckle and Gaussian noise, and, the classification rate is hardly affected by JPEG image compression.

B 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 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 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 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 O O O O O O O O O O O O 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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 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 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 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 B 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 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 O O O O O O O O O O O B 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 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 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 B I 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 B 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 B O O O O O O O O O B I


GPGPU implementation of growing neural gas: Application to 3D scene reconstruction Self-organising neural models have the ability to provide a good representation of the input space. In particular the Growing Neural Gas (GNG) is a suitable model because of its flexibility, rapid adaptation and excellent quality of representation.However, this type of learning is time consuming, specially for high-dimensional input data. Since real applications often work under time constraints, it is necessary to adapt the learning process in order to complete it in a predefined time.This paper proposes a Graphics Processing Unit (GPU) parallel implementation of the GNG with Compute Unified Device Architecture (CUDA). In contrast to existing algorithms, the proposed GPU implementation allows the acceleration of the learning process keeping a good quality of representation. Comparative experiments using iterative, parallel and hybrid implementation are carried out to demonstrate the effectiveness of CUDA implementation. The results show that GNG learning with proposed implementation achieves a speed-up of 6x com-pared with single-threaded CPU implementation. GPU implementation has been also applied to a real application with time constraints: acceleration of 3D scene reconstruction for egomotion, in order to validate the proposal.Unsupervised classification is also known as data clustering and is defined as the problem of finding homogeneous groups of data points in a given multidimensional data set. Each of these groups is called a cluster and defined as a region where the density of data points is locally higher than in others regions. Another objective of unsupervised learning can be described as topology learning: which given a high-dimensional data distribution, consists in finding a topological structure that closely reflects the topology of the data distribution [1].Self-organising models [2] place their neurons so that their positions within the network and connectivity between different neurons are optimized to match the spatial distribution of activations. As a result of this optimization, existing relationships within the input space will be reproduced as spatial relationships among activated neurons. In particular, Growing Neural Gas [3] is an incremental model able to learn the important topological relations in a given set of input vectors by means of a simple hebb-like learning rule.Growing models have been widely used in recent years in many applications due to their attributes of growth, flexibility, rapid adaptation, and excellent quality of representation of the input space. These features convert the neural networks in a suitable model to solve problems that deal with dynamic input data. Related This paper proposes the modification and acceleration of the GNG algorithm in order to obtain a more efficient version suitable for operations with time constraints. As demonstrated in the experiments, the runtime of sequential GNG algorithm grows with the number of neurons as the network increases. In contrast, in the parallel version implemented onto GPU architecture, as we increase the number of neurons, we obtain a greater acceleration over the sequential version. Experimental results show that the GPU implementation significantly reduces learning time compared with single-threaded and multi-threaded CPU implementations for GNG.. GNG algorithm can be accelerated using the GPU and allows better performance than the CPU implementations. It has also been demonstrated how 3D scene reconstruction for mobile robotics can be accelerated using GPUs in order to deal with time constraints.. The parallel solution implemented on GPU can be still improved carefully analyzing all aspects offered by the CUDA architecture and making a better use of them: multiprocessors occupancy, memory hierarchy use, transfer between CPU and GPU memory, and other.. Further work will include other improvements on the GPU implementation:. generating random patterns using GPU and using multi-GPU computation to improve performance and to manage several neural networks learning different features simultaneously. More applications of the accelerated GNG will be studied in the future. From the experiments described above we can conclude that the number of threads per block that best fits in our implementation is 256 due to the following reasons: First, the amount of computation the algorithm performs in parallel. Second, the number of resources that each device has and finally the use that we have made of shared memories and registries. It is also demonstrated that in comparison to CPU implementation, the 2M inP arallelReduction achieves a speed-up of more than 40x to find out a neuron at a minimum distance to the generated input Experiments on the complete GNG algorithm showed that using the GPU, small networks under-utilize the device, since only one or a few multiprocessors are used. Our implementation has a better performance for large networks than for small ones. To get better results for small networks we propose a hybrid implementation. These results show that GNG learning with the proposed hybrid implementation achieves a speed-up 6 times higher than the single threaded CPU implementation.. Finally, it is shown how our GPU implementation can process up to 17 adjustments of the network per second while single threaded CPU implementation only can manage 2.8, getting a speed-up factor of more than 6 times. The accelerated version of GNG algorithm has been developed and tested on a machine with an Intel Core i3 540 3.07Ghz and different CUDA capable devices. Table 3 shows different models that we have used and their features.

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 O O O O O 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 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 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 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 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 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 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