Andreas M Hein

Hélène Condat

Can Machines Design? An Artificial General Intelligence Approach

Can machines design? Can they come up with creative solutions to problems and build tools and artifacts across a wide range of domains? Recent advances in the field of computational creativity and formal Artificial General Intelligence (AGI) provide frameworks for machines with the general ability to design. In this paper we propose to integrate a formal computational creativity framework into the Gödel machine framework. We call this machine a design Gödel machine. Such a machine could solve a variety of design problems by generating novel concepts. In addition, it could change the way these concepts are generated by modifying itself. The design Gödel machine is able to improve its initial design program, once it has proven that a modification would increase its return on the utility function. Finally, we sketch out a specific version of the design Gödel machine which specifically aims at the design of complex software and hardware systems. Future work could be the development of a more formal version of the Design Gödel machine and a potential implementation.

Introduction

Can machines design? In other words, can they come up with creative solutions to problems [START_REF] Simon | Problem solving and rule induction: A unified view[END_REF] and intervene into their environment by, for example, building tools and artifacts, or better versions of themselves? Surprisingly, this question has not received a lot of attention in the current debate on artificial intelligence, such as in Bostrom [START_REF] Bostrom | Superintelligence: Paths, dangers, strategies[END_REF] and Russell [START_REF] Russell | Research priorities for robust and beneficial artificial intelligence[END_REF]. An exception is the literature in formal artificial general intelligence (AGI) research [START_REF] Orseau | Space-Time Embedded Intelligence[END_REF][START_REF] Orseau | Self-modification and mortality in artificial agents[END_REF][START_REF] Soares | Formalizing two problems of realistic world-models[END_REF][START_REF] Fallenstein | Problems of Self-reference in Self-improving Space-Time Embedded Intelligence[END_REF]. If artificial intelligence is going to have a large impact on the real world, it needs to have at least some capacity to create "new" things and to change its environment. The capacity to create new things has also been called "generativity" in the design theory literature [START_REF] Hatchuel | A systematic approach of design theories using generativeness and robustness[END_REF]. Such machines could be used across many contexts where "design" in the widest sense is required, for example, designing industrial goods such as the chassis of a car that can subsequently be manufactured. Another application could be in space colonization where local resources are used for building an infrastructure autonomously for a human crew that arrives at a later point in time. Traditionally, the wider question of creative machines has been treated in the computational creativity community. The computational creativity community has come up with numerous systems that exhibit creativity [START_REF] Elgammal | Design for Customization: A New Paradigm for Product-Service System Development[END_REF][START_REF] Todd | Evolutionary Art and Computers[END_REF][START_REF] Colton | Full-FACE Poetry Generation[END_REF][START_REF] Cope | Computer models of musical creativity[END_REF][START_REF] Ritchie | The JAPE riddle generator: technical specification[END_REF], i.e. systems that are able to conceive artifacts that are considered as novel and creative by humans and/or are novel compared to the underlying knowledge base of the system. Wiggins [START_REF] Wiggins | A preliminary framework for description, analysis and comparison of creative systems[END_REF] and Cherti [START_REF] Cherti | Deep generative neural networks for novelty generation: a foundational framework, metrics and experiments[END_REF] have explored the link between artificial intelligence and creativity. More specifically, Wiggins [START_REF] Wiggins | A preliminary framework for description, analysis and comparison of creative systems[END_REF] formalizes the notions of explorative creativity and transformational creativity from Boden [START_REF] Boden | Computer models of creativity[END_REF] in an artificial intelligence context. A creative system that exhibits explorative creativity is capable of exploring a set of concepts according to a set of rules. Transformational creativity is by contrast exhibited by a system that can modify the set of concepts themselves and / or the rules according to which it searches the set of concepts.

At the same time, the artificial general intelligence community is working on general foundations of intelligence and providing frameworks for formally capturing essential elements of intelligence. Within this community, intelligence is primarily defined as general problem-solving [START_REF] Hutter | Universal artificial intelligence: Sequential decisions based on algorithmic probability[END_REF][START_REF] Goertzel | Artificial general intelligence: concept, state of the art, and future prospects[END_REF]. According to Goertzel, [START_REF] Goertzel | Artificial general intelligence: concept, state of the art, and future prospects[END_REF], the field of Artificial General Intelligence deals with "the creation and study of synthetic intelligences with sufficiently broad (e.g. human-level) scope and strong generalization capability..." A relevant research stream in this field is the development of the "universalist approach" that deals with formal models of general intelligence. Examples are Hutter's AIXI [START_REF] Hutter | Universal artificial intelligence: Sequential decisions based on algorithmic probability[END_REF], Schmidhuber's Gödel Machine [START_REF] Schmidhuber | Ultimate Cognition à la Gödel[END_REF], and Orseau and Ring's space-time embedded intelligence [START_REF] Orseau | Space-Time Embedded Intelligence[END_REF]. These formal models are based on reinforcement learning where an agent interacts with an environment and is capable of self-improvement.

In this paper we attempt to integrate Wiggins' formal creativity framework [START_REF] Wiggins | A preliminary framework for description, analysis and comparison of creative systems[END_REF] into an Artificial General Intelligence (AGI) framework, the Gödel machine [START_REF] Schmidhuber | Ultimate Cognition à la Gödel[END_REF]. The purpose is to demonstrate that the mechanisms of self-improvement in AGI frameworks can be applied to a general system design problem. The resulting design Gödel machine designs according to certain rules but is capable of changing these rules, which corresponds to exploratory and transformational creative systems in Wiggins [START_REF] Wiggins | A preliminary framework for description, analysis and comparison of creative systems[END_REF]. Based on this generic framework, I will sketch out a machine that can design complex hardware or software systems. Such systems encompass most products with a high economic value such as in aerospace, automotive, transportation engineering, robotics, and artificial intelligence.

Literature Survey

In the literature survey, we will focus on design theory, formal modeling languages in systems and software engineering, computational creativity, and artificial general intelligence literature.

The design theory literature provides criteria for how to evaluate a design theory. [START_REF] Hatchuel | A systematic approach of design theories using generativeness and robustness[END_REF] introduce two criteria: generativity and robustness. Whereas generativity is the capacity of a design theory to explain or replicate how new things are created, robustness is understood as how sensitive the performance of the designs is with respect to different environments. The main contribution of the design theory literature to a general designing machine are the different forms of generativity and criteria for evaluating design theories.

One possibility to capture generativity is by using a formal design language. Formal design languages belong to the formalized subset of all design languages that are used for generating designs. Formal languages consist of a set of symbols, called alphabet Σ, a set of rules, called grammar, that define which expressions based on the alphabet are valid, and a mapping to a domain from which meaning for the expressions is derived [START_REF] Harel | Meaningful modeling: what's the semantics of semantics[END_REF]. This mapping is called "semantics". The set of all words over Σ is denoted Σ * . The language L is a subset of Σ * and contains all expressions that are valid with respect to a grammar.

For example, programming languages consist of a set of expressions such as if conditions and for-loops. These expressions are used for composing a computer program. However, the expressions need to be used in a precise way. Otherwise the code cannot be executed correctly. The program has to be grammatically correct.

According to Broy et al. [START_REF] Broy | Seamless modelbased development: From isolated tools to integrated model engineering environments[END_REF], formal semantics can be represented in terms of a calculus, another formalism (denotational and translational semantics), and a model interpreter (operational semantics). Existing formal semantics for complex systems and software engineering seem to be based on denotational semantics where the semantic domain to which the syntax is mapped is based on set theory, predicate logic [START_REF] Broy | The design of distributed systems: an introduction to focus[END_REF][START_REF] Broy | A logical basis for component-oriented software and systems engineering[END_REF], algebras [START_REF] Herrmann | An algebraic view on the semantics of model composition[END_REF], coalgebras [START_REF] Golden | A unified formalism for complex systems architecture[END_REF] etc.

Formal design languages are formal languages that are used for designing, e.g. for creating new objects or problem-solving. For example, programming languages are used for programs that can be executed on a computer.

The computational creativity literature presents different forms of creativity and creativity mechanisms. It distinguishes between several forms of creativity, which have been introduced by Boden [START_REF] Boden | Computer models of creativity[END_REF].

Combinational creativity is creativity that is based on the combination of preexisting knowledge. For example, the game of tangram consists of primitive geometric shapes that are combined to form new shapes. Exploratory creativity is "the process of searching an area of conceptual space governed by certain rules" [START_REF] Riedl | Story planning as exploratory creativity: Techniques for expanding the narrative search space[END_REF]. Finally, transformational creativity "is the process of transforming the rules and thus identifying a new sub-space." [START_REF] Riedl | Story planning as exploratory creativity: Techniques for expanding the narrative search space[END_REF] These categories seem to correspond with the generativity categories combinatorial generation, search in topological proximity, and knowledge expansion in design theory. All three forms of creativity can be generated by computational systems today. However, a key limitation is that these systems exhibit these forms of creativity only for a very narrow domain such as art, jokes, poetry, etc. No generally creative system exists.

The artificial general intelligence literature does seldom treat creativity explicitly. Schmidhuber [START_REF] Schmidhuber | Developmental robotics, optimal artificial curiosity, creativity, music, and the fine arts[END_REF][START_REF] Schmidhuber | Formal theory of creativity, fun, and intrinsic motivation (1990-2010[END_REF][START_REF] Schmidhuber | A Formal Theory of Creativity to Model the Creation of Art[END_REF] is rather an exception, where the link between a utility function and creativity is established. A creative agent receives a reward for being creative. Hutter [START_REF] Hutter | Universal artificial intelligence: Sequential decisions based on algorithmic probability[END_REF] briefly mentions creativity. Here, creativity is rather a corollary of general intelligence. In other words, if a system exhibits general intelligence, it is then necessarily creative. In the following, I will present two AGI frameworks that have received considerable attention within the community.

Creativity and the Gödel Machine: A Design Gödel Machine

We use the computational creativity framework from Wiggins [START_REF] Wiggins | A preliminary framework for description, analysis and comparison of creative systems[END_REF] and integrate it with the Gödel machine framework for a self-referential learning system. Wiggins [START_REF] Wiggins | A preliminary framework for description, analysis and comparison of creative systems[END_REF] introduces formal representations for creative systems that have been informally introduced in Boden [START_REF] Boden | Computer models of creativity[END_REF], notably explorative and transformational creativity. A Gödel machine that can generate novel concepts (paintings, poems, cars, spacecraft) is called design Gödel machine in the following. Such a machine is a form of creative system, defined as a "collection of processes, natural or automatic, which are capable of achieving or simulating behaviour which in humans would be deemed creative." [START_REF] Wiggins | A preliminary framework for description, analysis and comparison of creative systems[END_REF] As shown in Figure 1, the original Gödel machine consists of a formal language, for example, first order logic, arithmetics, and probability theory. It also consists of a utility function whose value the machine tries to maximize.

u(s, e) : S × E → R u(s, e) = E µ [ T τ =time r(τ )|s, e] f or 1 ≤ t ≤ T (1)
Where s is a variable state of the machine, e the variable environmental state, r(t) is a real-valued reward input at a time t. E µ (•|•) denotes the conditional expectation operator of a distribution µ of a set of distributions M , where M reflects the knowledge about the (probabilistic) reactions of the environment.

How does the Gödel machine self-improve? A theorem prover searches for proofs for a modification that can improve the machine's performance with respect to the utility function. Once such a proof is found, the switching function in equation 2 will switch the machine from its current to its modified version. The target theorem essentially states that when the current state s at t 1 with modifications yields a higher value for the utility function than the current machine, the machine will schedule its modification via the scheduler.

(u[s(t 1 ) ⊕ switchbit(t 1 ) = 1 ), Env(t 1 )] > u[s(t 1 ) ⊕ switchbit(t 1 ) = 0 ), Env(t 1 )]) (2)
In the following, we will use the Gödel machine as our framework of choice, as its ability to self-modify is a key characteristic for a general designing machine. Furthermore, it is based on a formal language. This makes it easier to adapt it to formal design languages. The design Gödel machine consists of an initial software p(1). p( 1) is divided into an initial policy π(1) env , which interacts with the environment and an initial policy π(1) proof , which searches for proofs and forms pairs of (switchprog, proof ), where the proof is a proof of a target theorem that states that an immediate rewrite of p would yield a higher value on u than the current version of p.

The basic idea of combining the Gödel machine framework with the formal creativity framework of Wiggins [START_REF] Wiggins | A preliminary framework for description, analysis and comparison of creative systems[END_REF] is to construct a Gödel machine for which π env is an exploratory creative system and π proof is a transformational creative system, which allows for, but is not limited to the modification of the exploratory creative system. The explorative creative system of the design Gödel machine consists of a variable state s ∈ S. A utility function u(s, e) : S × E → R computes a reward from the environmental state e ∈ E. The variable state s represents the current state of the design Gödel machine, including a set of concepts C(t) at time t that the machine has generated, a set of syntactic and knowledge-based rules R that define the permissible concepts in a design language L, and a set of sequences of design actions π env for generating concepts and getting feedback for these concepts from the environment. The machine generates concepts in each time step t, including the empty concept , and it receives feedback on the utility of these concepts via the utility function u. Analogous to the explorative creative system in Wiggins [START_REF] Wiggins | A preliminary framework for description, analysis and comparison of creative systems[END_REF], this policy π env can be described as a 7-tuple < U, L, [.], ., ., . , R, π env , u >, where U is a universe of concepts, [.] is an interpretation function that applies the syntactic and knowledge-based rules R to U, resulting in the set of permissible concepts C. The interpreter ., ., . takes a set of concepts c in and transforms them into a set of concepts c out by applying R, π env , u :

(c out ) = R, π env , u (c in ) (3)
The hallmark of the Gödel machine is its ability of self-modification. For the design Gödel machine, this means that it is able to modify its language L in which the concepts C, syntax R, and the sequences of design actions π proof are described. Once the machine has found a proof that a modification leads to a higher value on the meta utility function u meta , this modification is implemented in the subsequent time step by applying the switching function. The meta-utility function u meta captures criteria for a good design sequence in π proof that are expected to lead to a higher value on u. Examples are measures for the originality of the created designs via a design sequence, if originality is expected to lead to higher values on u.

Hence, criteria for u meta should be built into u. The proof searcher π proof that searches for the proof and the proof itself are expressed in a meta-language L meta . The proof is based on axioms and theorems in R and π env and the syntax of the meta-language syntax R meta and the proof strategies π proof of the proof searcher. Hence, the transformational creative system can be expressed as the 7-tuple:

< L, L meta , [.], ., ., . , R meta , π proof , meta > (4)
The proof searcher π proof generates pairs of R and π env from an existing R and π env by applying R meta , π proof , and u meta :

(R 2 , π env2 ) = R meta , π proof , u meta (R 1 , π env1 ) ( 5
)
This formulation is similar to the transformational creative system in Wiggins [START_REF] Wiggins | A preliminary framework for description, analysis and comparison of creative systems[END_REF]. If the proof searcher can prove u meta ((R 2 , π env2 ), e 2 ) > u meta ((R 1 , π env1 ), e 1 ), the design Gödel machine will switch to the new syntax R 2 and policy π env2 .

Analogous to the original Gödel machine, the design Gödel machine is also capable of performing self-modifications on other elements of itself, for example, on the proof searcher and the meta-utility function.

(X 2 ) = R meta , π proof , u meta (X 1 ) (6)
where X is one of the elements in < L, L meta , [.], ., ., . , R meta , π proof , meta >. Selfreference in general can cause problems, however, as Schmidhuber notes [START_REF] Schmidhuber | Ultimate Cognition à la Gödel[END_REF], in most practical applications, they are likely not relevant. A design Gödel machine would start with an initial configuration and then modify itself to find versions of itself that yield higher values on its utility functions.

A Design Gödel Machine for Complex Systems Design

A specific version of the design Gödel machine for designing complex software and hardware systems can be imagined. It would include a set of syntactic and knowledge-based rules that define sound designs (concepts for hardware and software) in the specific domain and a set of design actions such as abstraction, refinement, composition, and verification [START_REF] Broy | The design of distributed systems: an introduction to focus[END_REF][START_REF] Broy | A logical basis for component-oriented software and systems engineering[END_REF][START_REF] Golden | A unified formalism for complex systems architecture[END_REF] that can be combined into a design policy π env . The environment E could be a virtual test environment or an environment in which design prototypes are tested in the real world. Important principles of formal systems and software engineering are components and their interactions, abstraction, composition, refinement, and verification. A common definition of a system is that its composed of at least two components that interact. Hence, any formal systems and software engineering approach should be capable of representing components and their interactions. Broy defines interactions in terms of streams and interfaces. Golden defines interactions in terms of dataflows. Component functions are specified in terms of transfer functions that transform inputs into outputs. The component behavior is specified in terms of state machines. Golden specifies component behavior via a timed Mealy machine, Broy uses a state-oriented functional specification for this purpose.

Apart from this basic representation of a system, abstraction, composition, refinement, and verification are important principles during the design of a system.

Abstraction means that details are left out in order to facilitate the comprehension of a complex system, reduce computational complexity or for mathematical reasons (Golden, p.57). Abstraction is treated by Golden via dataflow, transfer function, and component abstraction. He remarks that abstraction can also lead to non-determinism due to the underspecification of the abstracted system.

Composition is the aggregation of lower-level components with their interactions to higher-level components. Herrmann et al. [START_REF] Herrmann | An algebraic view on the semantics of model composition[END_REF] propose a compositional algebra for aggregating components. Broy [START_REF] Broy | A logical basis for component-oriented software and systems engineering[END_REF] specifies composition as the assignment of truth values to system-level inputs and outputs based on component-level inputs and outputs. Golden divides composition into product and feedback. His notion of product is similar to Rumpe's compositional algebra and defines products of dataflows, transfer functions, and components. Feedback further deals with outputs of a component that are fed into the same component as an input.

Refinement is the addition of details to arrive from a general to a more specific system specification. Golden defines refinement as a form of decomposition, which is the inverse operation of composition. Broy [START_REF] Broy | A logical basis for component-oriented software and systems engineering[END_REF] defines different forms of refinement: property, glass box, and interaction refinement. Both Golden and Broy interpret refinement as an addition of properties and decomposition of components / interactions.

Verification is the process of checking requirements satisfaction. Golden assigns requirements to a system or component via "boxes" that specify the system or component's inputs, outputs, and behavior. Broy [START_REF] Broy | The design of distributed systems: an introduction to focus[END_REF][START_REF] Broy | A logical basis for component-oriented software and systems engineering[END_REF] similarly distinguishes between global (system-level) requirements and local (component-level) requirements. The verification process in his case is essentially formally proving that the system and components satisfy the requirements.

The literature on formal modeling languages for software and systems engineering provides the necessary semantics and rules for describing complex soft-and hardware systems. However, the main shortcoming of formal modeling languages for complex software and hardware systems is that they are cannot generate these systems by themselves. In other words they are not generative without additional generativity mechanisms and a knowledge base.

Design Axioms

As in the original Gödel machine, theorem proving requires a enumerable set of axioms. These axioms are strings over a finite alphabet Σ that includes symbols from set theory, predicate logic, arithmetics, etc. The design Gödel machine for complex systems design includes a number of design-related axioms that will be presented in the following. The design axioms belong to three broad categories. The first are axioms related to the formal modeling language, describing its abstract syntax (machine-readable syntax), the semantic domain, for example, expressed in predicate logic, and the semantic mapping between the abstract syntax and the semantic domain. The semantic domain and mapping in Golden [START_REF] Golden | A unified formalism for complex systems architecture[END_REF] and Broy [START_REF] Broy | The design of distributed systems: an introduction to focus[END_REF][START_REF] Broy | A logical basis for component-oriented software and systems engineering[END_REF] can be essentially reformulated in terms of set theory, predicate logic, arithmetics, and algebra. These axioms belong to R, but specifically define which designs are "formally correct". We denote the set of these axioms as R f ormal . These axioms include formal definitions for a system, component, interfaces, and interactions between component etc.

The second category consists of axioms related to different mechanisms of generating designs. Specifically, these are axioms for refinement, abstraction, composition, verification, and axioms that describe domain-specific rules based on domain-specific knowledge. We consider these axioms rather as part of the set of design sequences π env .

The third category are axioms that describe conceptual knowledge such as the notion of "automobile". Without being too restrictive, such conceptual knowledge would include axioms for parts and whole, i.e. mereological statemenents [START_REF] Simons | Parts: A study in ontology[END_REF]. For example, an automobile has a motor and wheels. The axioms also belong to R, however, contrary to R f ormal , they are not general principles of representing complex systems but knowledge specific to certain concepts. Such axioms are expressed by R ck .

System

A system is a 7-tuple =< T s , Input, Output, S, q 0 , F, Q > where T s is a time scale called the time scale of the system, Input = (In, I) and Output = (Out, O) are datasets, called input and output datasets, S is a nonempty -alphabet, called the -alphabet of states, q 0 is an element of S, called the initial state, F : In×S ×T s → Out is a function called functional behavior, Q : In × S × T s → S is a function called states behavior. (Input, Output) are called the signature of . This definition of a system corresponds to a timed Mealy machine [START_REF] Mealy | A method for synthesizing sequential circuits[END_REF].

It is rather straight-forward to model the Gödel machine in this system framework, if the loss in generality of using the timed Mealy machine is considered acceptable. In that case, we take: T s = N, Input = (E, E), q 0 = s(t 1 ), Output = (S, S), F : E × S × T s → A, Q : E × S × T s → S. E and S are any data behaviors on E and S respectively.

Formulating the design Gödel machine in the system framework allows for applying the formal machinery of the framework such as refinement, abstraction, verification etc. that the design Gödel machine can apply to itself.

Refinement and Abstraction

Refinement and abstraction relate system representations that are at different levels of abstraction [START_REF] Broy | The design of distributed systems: an introduction to focus[END_REF][START_REF] Golden | A unified formalism for complex systems architecture[END_REF]. According to Broy [START_REF] Broy | A logical basis for component-oriented software and systems engineering[END_REF], refinement may include the addition of properties to the system that make it more restrictive, or includes its decomposition into components. For example:

x =⇒ y • z (7)
where the system x is decomposed into the components y and z.

Composition

The composition operator is important for combining components into a system, with their respective interfaces. A generic composition operator can be understood as:

y ⊗ z =⇒ x (8)
where the components y and z are composed to x. These operators would not only need to be defined for software systems, such as proposed by [START_REF] Golden | A unified formalism for complex systems architecture[END_REF][START_REF] Broy | The design of distributed systems: an introduction to focus[END_REF][START_REF] Broy | A logical basis for component-oriented software and systems engineering[END_REF] but would also need to include interpretations of the composition for physical systems. This is likely to entail mereological questions of parts and wholes [START_REF] Simons | Parts: A study in ontology[END_REF].

Verification

We interpret verification in two distinct ways: First, with respect to a set of requirements Φ that are part of the environment E and which returns a reward input r(t) to the design Gödel machine, feeding back to the utility function u. Such a utility function would have the form ũ : C × Φ → R, with C ⊂ S and Φ ⊆ E.

Second, the set of requirements Φ are internal to the design Gödel machine and are interpreted as expectations that their satisfaction returns a reward input r(t) from the environment. The conditional expectation operator E µ (•|•) from the original Gödel machine is slightly modified for this purpose, leading to a utility function u

: C × Φ × E → R. u(c, ϕ, e) = E µ [ T τ =time r(τ )|c, ϕ, e] f or 1 ≤ t ≤ T (9)
where ϕ ∈ Φ and c ∈ C. The requirements Φ are themselves expectations of what the environment E "wants" from the design(s). They are subject to modifications, depending on the environment's response r(t). This second interpretation of verification captures nicely the distinction between verification and validation in systems engineering, where verification checks if the design satisfies the requirements and validation checks if the requirements were the right ones.

Limitations

Design Gödel machines are subject to the same liminations as the original Gödel machine. The first limitation is the Gödel incompleteness theorem [START_REF] Gödel | Über formal unentscheidbare Sätze der Principia Mathematica und verwandter Systeme I[END_REF]. An interpretation of the theorem in the context of a design Gödel machine is that if the design language encompasses arithmetics (+,-,*,. . . ), then there are designs that are inconsistent or correct designs that are unprovable, i.e. they cannot be derived from the axioms. Another important limitation is Rice's theorem [START_REF] Rice | Classes of recursively enumerable sets and their decision problems[END_REF]. It is usually used in the context of programming languages but can be applied to the case of formal design languages. It essentially states that no automatic method that decides with generality non-trivial questions on the behavior of designs.

Apart from these theoretical limitations, a basic limitation of the design Gödel machine presented here is that it is based on a formal language. Computing systems that are not based on a formal language could not be addressed by this approach. Furthermore, as Orseau [START_REF] Muehlhauser | Laurent Orseau on Artificial General Intelligence[END_REF] has remarked, the Gödel machine is computationally extremely expensive for reasonably complex practical applications.

In this paper, we have not dealt with the problem selection for the design Gödel machine. For an application in a real-world context, the problem to be solved by the machine needs to be selected. For example, which tasks based on which inputs and outputs are interesting for automation (Rigger et al., 2018)? Apart from the possibility of proper formalization, economic criteria will certainly play an important role.

Conclusions

In this paper, we proposed to integrate a formal creativity framework from Wiggins [START_REF] Wiggins | A preliminary framework for description, analysis and comparison of creative systems[END_REF] into the Gödel machine framework of a self-referential general problem solver in order to create a "general designing machine", i.e. a machine that is capable of solving a broad range of design activities. We call this version of the Gödel machine a design Gödel machine. This is in contrast to currently existing machines that are able to exhibit creativity for narrow tasks. The design Gödel machine is able to improve its initial design program, once it has proven that a modification would increase its return on the utility function.

The main contribution of this paper to the literature is the integration of frameworks from computational creativity with an artificial general intelligence framework. In particular, the explorative and transformational creative systems are integrated into the Gödel machine framework, where the initial design program represents the explorative creative system and the proof searcher represents the transformational creative system. Of particular practical interest would be a design Gödel machine that can solve complex software and hardware design problems. Elements of such a machine are sketched out. However, a practical implementation of such a machine would require a more extended formal systems engineering framework than those existing today.

Figure 1 :

 1 Figure 1: Elements of the Gödel Machine


E Audusse ♦

E Blayo ♠

L Halpern ♦

C Japhet ♦

V Martin

E Nourtier-Mazauric

EFFICIENT INTERFACE CONDITIONS FOR THE COUPLING OF OCEAN MODELS

Keywords: Interface conditions, Open boundaries, Absorbing conditions, Coupling, Schwarz algorithm, Ocean modelling

INTRODUCTION

The ocean circulation is notably heterogeneous, both in time and space: models have to deal with phenomena as varied as mesoscale eddies, fronts, and the general circulation. A single ocean general circulation model (OGCM) cannot describe completely such a various physics. A way to improve modelling is to couple OGCMs with high resolution regional ocean models (ROMs). The use of ROMs has increased in recent years, in particular due to the development of operational oceanography and coastal oceanography. Although the two-way nesting is the most usual coupling method in the ocean community, it does not address the correct problem but an approximation, and does not ensure enough regularity through the interface between the two models 1 . The correct approach consisting in a full coupling is more difficult and expensive than the two-way nesting, since it requires to find and implement an algorithm ensuring that the solutions in each domain satisfy the regularity conditions through the interface. The global-in-time non-overlapping Schwarz algorithm is particularly well suited for such a coupling, and can lead to improved physical results [START_REF] Cailleau | Comparison of different open boundary, nesting, and coupling methods for a numerical model of the Bay of Biscay[END_REF] .

Let Ω be the ocean domain, decomposed into two non-overlapping subdomains Ω 1 and Ω 2 , separated by a single interface Γ (Figures 1a and2a). Given a problem Lu = f in Ω × [0, T ], with an initial condition u| t=0 = u 0 in Ω, the Schwarz iterative algorithm writes 1 E. Audusse, E. Blayo, L. Halpern, C. Japhet, V. Martin and E. Nourtier-Mazauric as follows:

   Lu n+1 1 = f in Ω 1 × [0, T ], u n+1 1 = u 0 in Ω 1 at t = 0, B 1 u n+1 1 = B 1 u n 2 on Γ × [0, T ],    Lu n+1 2 = f in Ω 2 × [0, T ], u n+1 2 = u 0 in Ω 2 at t = 0, B 2 u n+1 2 = B 2 u n 1 on Γ × [0, T ], (1)
where the superscripts denote the number of iterations. In order to lessen the cost of this algorithm, it is necessary to find efficient interface operators B 1 and B 2 . For example note that if they are chosen in such a way that B 1 u 1 2 = B 2 u 1 1 = 0, the errors e n i = u| Ω i -u i defined in each subdomain converge towards zero in only two iterations: these are the so-called absorbing boundary conditions.

Our work thus aims at improving the ocean coupling by determining efficient interface conditions for the usual ocean equations (the so-called 3-D primitive equations). These ones are composed of advection-diffusion equations for tracers such as temperature and salinity, and dynamics equations, which can be approximated in the 2-D case by the shallow-water equations.

ADVECTION-DIFFUSION EQUATIONS FOR TRACERS

The evolution of tracers is described by scalar advection-diffusion equations. Two different parameterizations of diffusion, laplacian and bi-laplacian, are usually considered in order to represent mesoscale turbulence as a function of large scale features.

Let Ω = R 3 . For the sake of simplicity, Ω 1 and Ω 2 are defined as the subdomains separated by the interface Γ = {x = 0} (negative and positive part resp.). When the diffusion operator is a laplacian, the system operator L which appears in (1) is defined as

L = ∂ t + a ∂ x + b ∂ y + c ∂ z -ν h (∂ xx + ∂ yy ) -ν z ∂ zz ,
where ν h and ν z are positive constants. After a Fourier transform in space and time, one solves the characteristic polynomial and obtains two roots σ i of opposite signs. The error Fourier transforms thus satisfy in each subdomain ∂ x e i -σ i e i = 0, i = 1, 2, which leads to the following ideal absorbing conditions: B 1 = ∂ x -S 2 and B 2 = ∂ x -S 1 ,where S i are the inverse Fourier transforms of σ i . It is clear that these boundary conditions are non-local both in space and time. Therefore an approximation is required in order to obtain local interface conditions and allow their numerical implementation. We propose the following approximated conditions:

B 1(0) = ∂ x -1 2ν h (a -p), B 2(0) = ∂ x -1 2ν h (a + p) at order 0 and B 2(1) = ∂ x -1 2ν h (a -p) + q ∂ t + b q ∂ y + c q ∂ z , B 2(1) = ∂ x -1 2ν h (a + p) -q ∂ t -b q ∂ y -c q ∂ z at order 1.
It can be demonstrated that the algorithms (1) with these interface conditions converge toward the general solution on the condition that p > 0 at order 0, and q > 0 and p -a 2 q/2 > 0 at order 1. If frequencies are low, the p and q parameters can be determined by a Taylor approximation, but this hypothesis is not always true in ocean modelling. A more general approach consists in minimizing the convergence rate of the Schwarz algorithm for any frequency (see [START_REF] Martin | An optimized Schwarz waveform relaxation method for the unsteady convection diffusion equation in two dimensions[END_REF] for further details). The consequent algorithms were implemented in the 2-D case [START_REF] Martin | An optimized Schwarz waveform relaxation method for the unsteady convection diffusion equation in two dimensions[END_REF][START_REF] Martin | Méthodes de décomposition de domaine de type relaxation d'ondes pour des équations de l'océanographie[END_REF] (see Figure 1). When the diffusion is parameterized with a bi-laplacian operator, specific difficulties arise. In two dimensions, the fourth order advection-diffusion operator writtes

L = ∂ t + a ∂ x + b ∂ y + ν (∂ 4x + ∂ 4y + 2 ∂ 2x2y ).
The variational formulation induces that at least two boundary conditions have to be specified on the second and third normal derivatives. Thus the absorbing boundary conditions can no longer be expressed as B = ∂ x -S. Moreover the four roots of the characteristic polynomial associated to the Fourier transform can be determined, but the sign of their real part is not constant. This problem is presently under investigation.

2-D DYNAMICS: SHALLOW WATER EQUATIONS

The ocean dynamics can be described in 2-D by the linearized shallow-water equations:

∂ t W + A 1 ∂ x W + A 2 ∂ y W -νP ∆W + BW ,
and W | t=0 = W 0 , where W = (u, v, φ) t , with (u, v) the horizontal velocity, φ the free surface height and ν the viscosity. A 1 and A 2 are matrices, P is a diagonal projection matrix on the horizontal plane, and B is an antisymmetric matrix which expresses the rotation in the horizontal plane due to the Coriolis force. After a Laplace-Fourier transform, the solution of the system is assumed to be W = Φe -ξx , with Φ a vector and ξ a root to be determined. This leads to solve an equation of the fifth order in ξ in the general case. In the simplified case without advection, this reduces to a fourth order bi-squared equation, the roots of which can be easily determined. The variational formulation provides transmission conditions. By combining these two approaches, one obtains the non-local ideal absorbing conditions. In the case without advection, it is sufficient to impose conditions on the horizontal variables 4 : B = ( B, 0) t , Bi = -ν∂ x + c(φ, 0) t -Λ i , with Λ i a pseudo-differential operator. An approximation Λ i(j) of the matrices Λ i , i = 1, 2, at order 0 or 1 can provide local interface conditions. Martin 4 demonstrated that these problems are well-posed, and that the algorithms converge towards the global solution, for diagonal Λ i(j) matrices. Numerical simulations have also been realized (not shown). In the case with advection, the fifth order equation cannot be solved explicitely and approximations have to be made 5 . This is an ongoing work.

TOWARDS 3-D

Our final aim is to derive and implement efficient interface conditions in actual 3-D oceanic applications. Preliminary experiments were performed in a regional model of the bay of Biscay, either alone using 0th order absorbing open boundary conditions (OBCs), or coupled with a large scale model of the North Atlantic with a non-optimized Schwarz algorithm 2 . Both testcases lead to encouraging results. The derivation of optimized interface conditions for these full 3-D equations is presently under investigation.

Figure 1 :

 1 Figure 1: Coupling of two advection-diffusion models with a Schwarz algorithm: (a) snapshot of the solution, (b) L 2 -norm of the error as a function of the iteration number for different interface conditions: from top to bottom, Dirichlet, Taylor and optimized conditions at zero-th and first order.

Figure 2 :

 2 Figure 2: A 3-D high resolution ocean model of the Bay of Biscay is considered alone, forced by the results of a large model of the Northern Atlantic (a). The snapshots of the RMS errors are different depending on the tested OBCs : (b) clamped (Dirichlet) and (c) characteristic conditions (which are particular 0th order absorbing conditions).