abstract: *This is an extended version of a paper published in the proceedings of SIGCSE 2018.*
  .
  Computational and complexity theory are core components of the computer science curriculum, and in the vast majority of cases are taught using *decision problems* as the main paradigm. For experienced practitioners, decision problems are the best tool. But for undergraduates encountering the material for the first time, we present evidence that *non-decision problems* (such as optimization problems and search problems) are preferable. In addition, we describe technical definitions and pedagogical strategies that have been used successfully for teaching the theory course using non-decision problems as the central concept.
author:
John MacCormick[^1]
Dickinson College
date: 24 November 2017
title: Strategies for basing the CS theory course on non-decision problems

# Introduction and related work

Many undergraduate computer science curricula include a "theory" course, covering some aspects of automata theory, computability, and complexity. Central questions addressed by a theory course include: (a) Given a computational problem $C$, can we solve $C$ using a computer program? (b) If so, can we do so in polynomial time? A strong majority of popular theory textbooks focus on computational problems that are in fact *decision problems*—problems that have a yes/no answer. An alternative approach, advocated by this paper, is to consider *general* computational problems—including non-decision problems such as *optimization problems* and *search problems*—while narrowing in on decision problems when appropriate.

There are two principal objectives of this paper. First, we explain why non-decision problems are pedagogically advantageous for introductory theory courses, supporting the explanation with empirical evidence based on a survey of computer science majors. Second, we describe technical details and pedagogical strategies for using non-decision problems as the central concept in the CS theory course, based on experience with four years of course offerings and a recent textbook . The use of non-decision problems is the single most important idea for the suggested approach, but additional strategies for making the CS theory course accessible are also described. This includes the use of real computer programs processing ASCII strings, instead of the more common model of Turing machines processing symbols from an arbitrary alphabet. Ultimately, this approach could be used to teach the theory course earlier in the curriculum and to a more diverse audience.

The nature of the audience is crucial to our considerations. In this paper, the primary target is undergraduate students who are seeing computability and complexity theory for the first, and quite possibly the last, time. We will refer to such students as the *novice audience*. We focus only on the novice audience in this paper, ignoring other theory course scenarios such as graduate courses or hybrid courses taught to a mixture of graduate students and advanced undergraduates. We also ignore the possibility of theory courses that focus mostly on automata theory, assuming instead that computability and complexity theory comprise at least a majority of the course.

For this audience, the key advantage of non-decision problems is that they are more realistic: they match the previous programming and algorithms experience of undergraduates more closely. As a concrete example (details are given later), a decision problem may ask the yes/no question, "Does this graph have a Hamilton cycle?" The corresponding non-decision problem is, "Please give me a Hamilton cycle of this graph if it has one." A program that solves the non-decision version produces a useful result that could conceivably be used in a real-world application, whereas a program solving the decision version yields only a single bit: it tells us whether or not a Hamilton cycle exists, but gives no additional information. For the novice audience, focusing on these single-bit decision problems potentially positions the course as abstruse and irrelevant. Focusing on non-decision problems with meaningful solutions, on the other hand, provides more direct connections to earlier courses. In section , we provide a combination of educational theory and empirical evidence to support these claims.

However, it is important to note at the outset that we do not suggest decision problems should be jettisoned from the theory course. On the contrary, there are some compelling reasons to incorporate decision problems into any theory course, including: (i) some theorems and proofs are more concise and elegant when phrased in terms of decision problems; (ii) the vast majority of existing CS theory literature considers only decision problems, so it is essential that any student planning to take a subsequent graduate-level theory course has been exposed to the decision problem framework. Therefore, in this paper we advocate a hybrid approach, whereby the earlier topics in the theory course are taught with a focus on non-decision problems. When NP-completeness is introduced—typically sometime in the second half of a one-semester course—we suggest transitioning to the classical approach and focusing only on decision problems (with some minor exceptions described later). This hybrid approach allows the novice audience to establish an initial appreciation of the relevance and importance of CS theory via non-decision problems, while still being well-versed in the classical approach by the end of the course.

As a basis for comparing and contrasting various approaches to the theory course, we will refer to a selection of ten textbooks covering the relevant material . These books are listed in Figure . The selection emphasizes diversity and there has been no attempt to include all relevant books. Of our ten selected books, the following probably come closest to being standard CS theory treatments: Hopcroft *et al.*, Linz, Rich, and Sipser. Brief descriptions of the remaining six books are as follows: Arora/Barack and Moore/Mertens are significantly more advanced; Davis *et al.*, Lewis/Papadimitriou, and Papadimitriou are classics; Goldreich is nonstandard and advocates the use of nondecision problems as in this paper.

# Related work

There are several strands of related work aiming to make CS theory courses more practical, accessible, or meaningful. We might classify these strands as: (i) interactive automata software tools such as JFLAP and DEM ; (ii) lab assignments and visualizations for NP-completeness, an approach sometimes described as "NP-completeness for all" ; (iii) recasting the theoretical ideas themselves, for example by emphasizing non-decision problems and including holistic discussions about the implications of NP-completeness and P-versus-NP . The present paper falls firmly in category (iii). The ideas described here are orthogonal to categories (i) and (ii). Indeed, the ideas of this paper have been employed over a four-year period in a course that also uses JFLAP and practical programming assignments, thus benefiting from all three strands of literature on the CS theory course.

To the best of our knowledge, Goldreich's position paper  and subsequent textbook  comprise the previous work most similar to the present paper. Goldreich makes several important, insightful, and useful suggestions for improving the theory course, including strong advocacy for the use of non-decision problems. The novel contribution of the present paper is to recast the use of non-decision problems in a manner that is more accessible to the novice audience, thus enabling instructors to focus on non-decision problems and deliver the consequent educational benefits to students.

# A practical definition of computational problems

Before the advantages of non-decision problems can be explained, we review some elementary background material to establish notation and give a formal definition of a "computational problem," which can of course be either a decision problem or a non-decision problem. The background review in this section also includes several ancillary recommendations for how to present this material to a novice audience.

Computational theory is often developed in terms of an arbitrary *alphabet* (i.e. a finite set of symbols) denoted $\Sigma$. The set of all possible *strings* (i.e. finite sequences of symbols) on $\Sigma$ is denoted $\Sigma^*$. Experienced practitioners understand that the choice of alphabet is irrelevant for most purposes. But for students being introduced to complexity theory for the first time, it may be preferable to employ a more familiar and obviously relevant alphabet—one that is used by programmers to describe the inputs and outputs of computer programs in practice. This motivates us here to take the ASCII alphabet as our primary example of $\Sigma$.

For similar reasons, we use real computer programs as our main computational model, rather than the Turing machines which are more common in the theory literature. A program $P$ receives a single ASCII string $w$ as input and the output is either undefined (e.g. if $P$ crashes or enters an infinite loop) or is an ASCII string denoted $P(w)$. When $P(w)$ is defined, we say $P$ *rejects* $w$ if $P(w)=\text{``}\texttt{no}\text{''}$ and $P$ *accepts* $w$ if $P(w)\neq\text{``}\texttt{no}\text{''}$.

A central concept in complexity theory is a *language* (sometimes called a *formal language*), defined as a subset of $\Sigma^*$. The intuitive notion of "solving a problem" is usually formalized as "deciding a language." Thus, a central concept in many treatments is that a program $P$ *decides* a language $L$ if $P$ accepts all strings $s\in L$ and rejects all $s\notin L$.

What is the connection between "deciding a language" and "solving a problem"? For so-called *decision problems*, there is a direct and simple connection. Informally, decision problems are computational questions that have a yes/no answer, such as "Given an integer $m>0$, is $m$ prime?" or "Given a graph $G$, does $G$ contain a Hamilton cycle?". Formally, one could define a decision problem as a function from $\Sigma^*$ to $\{\text{``}\texttt{yes}\text{''},\text{``}\texttt{no}\text{''}\}$. When taking $\Sigma$ as the ASCII alphabet, we first agree an encoding of the relevant mathematical objects into ASCII. For example: the integer $m=43552$ might be encoded as the ASCII string `43552`; a graph that is a three-cycle with three vertices labeled $a,b,c$ might be encoded as the ASCII string `a,b b,c c,a`.

For a given decision problem $D$, strings for which the answer is `yes` are called *positive instances* of $D$ and all other strings are *negative instances*. This leads to a simple and obvious mapping between languages and decision problems. Any language $L$ corresponds to a decision problem $D_L$ defined as follows: for $s\in \Sigma^*$, $D_L(s)=\text{``}\texttt{yes}\text{''}$ if and only if $s\in L$. The reverse mapping is also simple and obvious: a decision problem $D$ corresponds to a language $L_D$ with the property that $s\in L$ if and only if $D_L(s)=\text{``}\texttt{yes}\text{''}$.

As a result of the exact correspondence between decision problems and languages, the theory of computability and complexity is usually described in terms of languages. As already mentioned in the introduction, the advantages of doing so include simple notation and compact statements of certain theorems, but disadvantages for the novice audience include a high level of abstraction and the restriction to decision problems, which may appear unfamiliar and irrelevant.

To illustrate the distinction between decision and non-decision problems, we will use two running examples throughout the paper:

-   Factor: The input is a string representing a positive integer $m$ in decimal notation (e.g. `35`), and a solution is any factor of the input other than 1 and $m$ (e.g. `5` or `7` for $m=35$), or `no` if no such factor exists. FactorD is the corresponding decision problem, with solution `yes` if $m$ has a non-trivial factor and `no` otherwise.

-   HamCycle: The input is a string representing a graph $G$ (e.g. `a,b b,c c,a`), and a solution is any Hamilton cycle of $G$ (e.g. `a,b,c` for the given example of $G$), or `no` if no such cycle exists. HamCycleD is the corresponding decision problem, with solution `yes` if $G$ has a Hamilton cycle and `no` otherwise.

We also assume the reader is familiar with Sat (which asks for a satisfying assignment to a Boolean formula) and SatD (the decision variant, which asks whether a satisfying assignment exists).

Several important differences between the decision and non-decision variants should be immediately obvious from the Factor and HamCycle examples:

-   Non-decision problems can have multiple solutions (e.g. an integer $m$ can have multiple non-trivial factors; a graph $G$ can have multiple distinct Hamilton cycles), whereas decision problems always have a unique solution (`yes` or `no`).

-   It is possible for decision and non-decision variants of the same problem to have apparently different complexity properties. Factor is a classic example here, since FactorD can be solved in polynomial time by the AKS algorithm , whereas Factor has no known polynomial-time method of solution.[^2]

-   Non-decision variants appear to be more "natural." For example, it is hard for the novice audience to imagine an application where it is useful to determine the mere existence of a Hamilton cycle, rather than determining the sequence of vertices in the cycle.[^3]

A significant fraction of theory textbooks give no formal definition of a non-decision problem. In our sample of ten books, seven give no formal definition . One  gives a brief definition; Papadimitriou  and Goldreich  give detailed definitions and analysis. These last two define non-decision problems in terms of binary relations with certain technical properties: they are *polynomially decidable* and *polynomially bounded* (or *balanced*). This approach is correct and concise, but perhaps more abstract than necessary for a novice undergraduate audience. Instead, the following concrete definition is recommended for the novice audience:

> A *computational problem* (which may or may not be a decision problem) is a function $F$, mapping ASCII strings to sets of ASCII strings. If $F(x)=\{s_1, s_2, \ldots\}$, we call $\{s_1, s_2, \ldots\}$ the *solution set* for $x$, and each $s_i$ is a *solution* for $x$. If $F(x)=\{\text{``}\texttt{no}\text{''}\}$, then $x$ is a *negative instance* of $F$; otherwise $x$ is a *positive instance*. If $F$ has unique solutions, $F$ is a *function problem*. For function problems, we can drop the set notation, for example writing $F(x)=y$ instead of $F(x)=\{y\}$.

For example: `35` is a positive instance of Factor, and we have $\textsc{Factor}(\text{``}\texttt{35}\text{''})=\{\text{``}\texttt{5}\text{''}, \text{``}\texttt{7}\text{''}\}$; `29` is a negative instance, and we have $\textsc{Factor}(\text{``}\texttt{29}\text{''})=\{\text{``}\texttt{no}\text{''}\}$. Note that neither Factor nor HamCycle is a function problem, since both problems can have multiple solutions. The definition of computational problem can obviously be adapted to non-ASCII alphabets, but we omit those details here.

The above definition has an intuitive connection to computer programs that produce meaningful output (as opposed to a single accept/reject bit). Formally, we say a computer program $P$ *solves* the computational problem $F$ if $P(x)\in F(x)$ for all $x$. That is, the program always terminates and outputs a correct solution.

# Empirical evidence for pedagogical benefit of non-decision problems

The core motivation for our approach is the well-established pedagogical principle that students learn new concepts more effectively when those concepts are placed in a familiar context. The effectiveness of learning is further enhanced if the new concept is perceived as *useful* or *applicable* . Non-decision problems conform to these two criteria—familiarity and applicability—much more closely than decision problems. The familiarity criterion is indisputable, since almost every computer program written by students, beginning with the first programming course and continuing throughout their careers, computes meaningful answers to general problems rather than producing a single-bit accept/reject decision. The second criterion of perceived usefulness or applicability also seems plausible, but requires supporting evidence. To investigate this, a sample of 41 computer science majors were given descriptions of four computer programs which solved decision and non-decision variants of two different problems. Participants rated the usefulness of each program on a Likert scale from 1 (extremely useful) to 5 (not at all useful). The order of presentation (decision versus non-decision variants) was varied to eliminate ordering effects. We control for the intrinsic perceived usefulness of any given problem by presenting decision and non-decision variants of the *same* problems. A total of $n=81$ paired (i.e. decision versus non-decision) responses were received from the 41 participants.

Approximately 50% of participants were sophomores, with the remainder distributed among first, third, and fourth-year students. All had completed either one or two introductory Java programming courses, and 85% had completed a data structures course. On average, participants had completed six computer science courses at the time of taking the survey. For our purposes, this demographic is representative of the "novice audience."

The results show that programs solving non-decision problems are perceived as significantly more useful than programs solving decision problems (mean 1.8 vs 3.1 on the Likert scale, with standard deviations of about 0.7 and 0.8 respectively, leading to standard errors of less than 0.1 in both cases). A 99% confidence interval for the population mean, formed from plus-or-minus three standard errors, is shown on figure ; the intervals suggest a large and significant difference. Two more rigorous tests confirm this: (i) a Wilcoxon signed-rank test for asymmetry of the paired differences has a negligible $p$-value ($p<10^{-11}$); (ii) the same test run on shifted data, with the non-decision responses shifted away from "useful" by an entire Likert gradation, also has a negligible $p$-value ($p<10^{-6}$). We conclude that the difference in student perceptions of usefulness is rather large—certainly more than one Likert gradation and hence exceeding the distinction between "very useful" and "mildly useful," as shown on figure .

The Wilcoxon signed-rank test is appropriate here because the responses are on an ordinal scale in which the numerical values themselves (1–5) have no meaning beyond their ordering. Nevertheless, if we are willing to assume an approximately normal distribution of the numerical responses we can perform the more familiar paired $t$-test for difference in means. This yields $p<10^{-19}$ on the raw responses and $p\approx 0.003$ on the shifted responses, leading to the same conclusions as the Wilcoxon tests.

For simplicity, the Wilcoxon tests described above employed one assumption that is perhaps a little dubious: the responses of the same participant for different computational problems were treated as independent. However, additional tests in which the computational problems were analyzed separately also yield negligible $p$-values ($p<10^{-6}$ on both problems).

It is worth emphasizing here that this difference in perceived usefulness exists in a *novice audience* (as defined in section ), and this underpins the key pedagogical point of the paper. Experienced practitioners know that decision programs can often be converted to equivalent non-decision programs with only a logarithmic increase in running time. But because the novice audience does not share this intuition, we should exploit the novices' perception that non-decision programs are useful. We conclude that elementary concepts in an introductory computer science theory course should be taught using non-decision problems whenever possible.

# Computability for non-decision problems

The previous section established the key pedagogical advantages of non-decision problems: familiarity and applicability. The remainder of the paper describes technical details of how to teach the standard material of a CS theory course using non-decision problems. This brief section tackles *computability theory*, and the following section tackles *complexity theory*.

We say a computational problem is *computable* if there exists a program that solves it. Note that computability is a generalization of decidability, which applies only to decision problems. Most undergraduate theory treatments use *undecidability* as the central concept to convey the profound idea that "there are some problems that computers can't solve." In the approach advocated by this paper, the notion of *uncomputability* replaces undecidability as the central concept. We can still use classical decision problems as examples of uncomputable problems (e.g. the halting problem, or the question of whether a given program computes a given function). But in addition, we can discuss other interesting uncomputable problems that are not decision problems.[^4] In all cases, we retain the pedagogical advantage of working in a framework that is perceived by the novice audience as familiar and applicable.

# Elementary complexity theory for non-decision problems

We now move from computability theory to complexity theory. Here, the use of non-decision problems as the central focus requires some new notation and terminology, compared to the traditional approach. The most fundamental classical complexity classes (P, NP, Exp) contain only decision problems, so we need new notation for analogous classes that contain both decision and non-decision problems. Here, we will denote these new classes by Poly, NPoly, and Expo respectively. Formally, then, Poly is the set of computational problems for which there exists a program (or Turing machine) that solves the problem in polynomial time. NPoly is the same but we allow nondeterministic programs[^5]; and Expo is the same but we allow exponential time.

The literature already has classes FP and FNP, which are similar in spirit to Poly and NPoly respectively—so we need good justification for introducing new terminology into such well-trodden territory. One reason is that FP is sometimes defined in terms of function problems only (which excludes problems with multiple solutions such as Factor and HamCycle). And even when FP is defined in terms of general problems, it is usually done via the polynomially bounded relations mentioned above, which is unnecessarily complicated for the novice audience. Therefore, we prefer to introduce the new classes Poly, NPoly, and Expo.

A comparison with our ten sample books is interesting here: five do not mention FP, FNP, or any analogous complexity class ; three briefly cover one or both of FP and FNP ; and two give more thorough analyses of FP and FNP or analogous classes (Papadimitriou , Goldreich ). Papadimitriou's definitions of FP and FNP are closest to the Poly and NPoly defined here. However, they are not equivalent, because of the restriction to polynomially balanced relations mentioned above. Goldreich is the only one of the ten sample books to adopt non-decision problems as a central concept. Goldreich defines the interesting non-decision complexity classes PF (for "polynomial time find") and PC (for "polynomial time checkable"), but they are again not equivalent to Poly and NPoly. Moreover, PF is not a subset of PC (in contrast to the intuitive relationships P$\subseteq$NP, Poly$\subseteq$NPoly, FP$\subseteq$FNP), making PF and PC less than ideal for the novice audience. The overall conclusion from analyzing the selection of textbooks is twofold: (i) few textbooks discuss non-decision problems in any detail, even via the well-established complexity classes FP and FNP; and (ii) for technical reasons, the various non-decision classes FP, FNP, PF, and PC are unsuitable for the novice audience and we instead recommend Poly, NPoly, and Expo as defined above.

Introducing novice audiences to complexity theory via the non-decision classes Poly, NPoly, and Expo has a striking advantage that is worth discussing further: the concrete impact of polynomial time algorithms on cryptography is more obvious. To see this, note that one way to crack the popular RSA cryptosystem is to factor a large integer. So, if it turned out to be true that Factor$\in$Poly, the extraordinary consequences (namely, that RSA would be vulnerable to attack) are immediately obvious to the novice audience. In contrast, the consequences are unclear when the same concepts are taught in terms of decision problems: we already know that FactorD$\in$P, but that doesn't help to crack RSA since we get only the existence and not the value of the factors. There are ways of rephrasing factorization in terms of decision problems,[^6] but the extra technical complexity of rephrasing the problem obscures the key point for novice audiences.

What about more abstract problems such as HamCycle or Sat? In these cases, the pedagogical advantages of familiarity and applicability are compelling. To see why, first note that both HamCycle and Sat can be reduced fairly easily to their decision variants. Therefore, to an experienced practitioner, it makes absolutely no difference whether we discuss algorithms for HamCycle or HamCycleD (and similarly for Sat vs SatD). But to the novice audience, the act of finding a Hamilton cycle or satisfying assignment is much more compelling than determining their existence. This distinction becomes especially important when discussing nondeterminism, since nondeterministic programs can easily and efficiently compute factors, Hamilton cycles, and satisfying assignments. In fact, a beneficial and enlightening homework assignment is for students to write multithreaded programs that compute solutions to these problems in nondeterministic polynomial time. As emphasized in section , the fact that the outputs of such programs are perceived as "useful" is an important factor in achieving positive learning outcomes.

# The verifier-based definition of NPoly

It is well-known that NP has two equivalent definitions: (i) decision problems that can be decided by a polynomial time nondeterministic program; and (ii) decision problems whose positive instances can be verified in polynomial time by a deterministic program, when provided with a suitable *certificate* (also known as a *witness*, or *hint*). Most modern textbooks cover both definitions, usually introducing (ii) first and later proving the equivalence to (i). Can we generalize these definitions to non-decision problems in a way that appeals to the novice audience? Yes we can, but with some caveats.

Definition (i), based on nondeterminism, was discussed in the previous section. Here we focus on definition (ii), based on verification. According to this definition, NPoly is the class of computational problems which have polynomial time verifiers. And NP is defined in a precisely analogous way: it is the class of *decision* problems which have polynomial time verifiers. When we move to defining *verifier*, however, there are key differences in the decision (NP) and non-decision (NPoly) scenarios. Before diving into these details, we give a high-level overview of one key aspect. Recall that every positive instance of an NP problem must be verifiable in polynomial time when provided with some certificate $c$. Typically, the certificate $c$ encodes a solution to the underlying non-decision problem. For example, a HamCycleD instance can be verified by providing a legitimate Hamilton cycle as the certificate. But unfortunately, it turns out that certificates for NP problems can also work in less intuitive ways. For example, it is possible to define a HamCycleD verifier that uses only partial Hamilton cycles as certificates. This discrepancy between certificates and underlying solutions is a source of confusion for the novice audience.

It turns out that if we work with non-decision problems, this potentially confusing "looseness" in the definition of certificates is eliminated. In essence (and please see section  for additional details), the certificate $c$ is replaced by two separate strings: a solution $s$ and hint $h$. Both strings are given as input to the verifier. For successful verifications of positive instances, the solution $s$ really is a solution for the given instance; the hint $h$ provides any additional information needed for verification. The explicit roles of $s$ and $h$ provide additional clarity to the novice audience.

To the best of our knowledge, no textbook other than  employs this formulation, which ensures that verified solutions are meaningful while still permitting hints for problems that need them. This is one key difference between the approach of this paper and that of Goldreich .

## Details for verifying non-decision problems

For decision problems, the definition of verifier is brief and elegant but also surprisingly subtle. For example, quoting one of our sample books :

> A *verifier* for a language $A$ is an algorithm $V$, where

$$\label{eq:decision-verifier} \tag{$\star$}
  A = \{ w \,|\, V \text{ accepts } \langle w,c \rangle \text{ for some string } c \}.$$ Of course, we are typically only interested in polynomial time verifiers, where $V$ runs in polynomial time as a function of $|w|$. In our sample of ten textbooks, all except Goldreich  adopt concise, subtle definitions similar to (). As with any such definition in mathematics or computer science (a classic example is the epsilon-delta definition of continuity in calculus), great care is needed when presenting and explaining the definition to a novice audience. The formal definition should undoubtedly be presented, but numerous examples demonstrating the full range of consequences are equally important. In the particular case of (), key examples include:

1.   The typical case in which, for a given positive instance $w$, the (polynomial time) algorithm $V$ accepts for only one special value of the certificate $c$, or perhaps a small number of special values. For example, with HamCycleD, a given graph may have only a small number of Hamilton cycles.

2.  The case of tractable problems (e.g. shortest path in a graph), in which $V$ can verify $w$ without the help of a certificate. Formally, this means $V$ accepts $\langle w,c \rangle$ for *all* $c$, even though the definition required acceptance only for *some* $c$.

3.  When $w$ is a negative instance (e.g. for HamCycleD, $w$ is a graph with no Hamilton cycle), $V$ must reject $\langle w,c
      \rangle$ for *all* $c$. This makes good intuitive sense (e.g. $V$ should never accept a certificate that claims to be a Hamilton cycle for a graph that doesn't actually have one). The inversion of the quantifier (from *some* to *all*) is nevertheless a potential stumbling block for the novice audience.

4.   Intuitively, the certificate $c$ usually encodes a solution to the underlying non-decision problem. For concreteness, we illustrate this using HamCycleD. In this case, a typical implementation of $V$ might accept the certificate `a,b,c` whenever the tuple $(a,b,c)$ forms a Hamilton cycle in the instance $w$, and reject otherwise. But there is no requirement for $V$ to behave in this way. For example, another implementation of $V$ might permit the certificate to omit up to $k$ of the vertices at the end of the Hamilton cycle, for fixed $k$. By trying all the missing possibilities, $V$ can still correctly verify the suggested cycle in polynomial time. Thus, a certain amount of "looseness" is deliberately built into the definition: the certificate need not explicitly contain a solution to the underlying problem, but we feel intuitively that a solution should be efficiently computable from the information in the certificate.

Note that item  is not a bug in the definition (). Definition () works perfectly for the complexity theory of decision problems. But item  does present problems when we generalize the definition to non-decision problems, since we would like to verify solutions explicitly (rather than verifying strings from which a solution can be efficiently computed). The potential discrepancy between certificates and solutions can be a source of confusion for the novice audience, even if the material is presented for decision problems only.

Items – were presented in detail as a kind of advance defense mechanism, because we will next examine the generalized, non-decision definition of verifier. The definition will initially seem more complex, and therefore apparently unsuitable for the targeted novice audience. However, the key point here is that any pedagogically sound discussion of the apparently-simple definition () must also include a discussion of items –. When we move to the non-decision variant of the definition, items – are largely incorporated into the definition itself. However, the total "degree of difficulty" of absorbing the definitions and their consequences is similar. In fact, one might argue that in making the subtleties of the definition explicit within the definition itself, we are facilitating easier and deeper understanding by students.

So, here is the suggested definition for a verifier of non-decision problems:

> Let $F$ be a computational problem. A *verifier* for $F$ is a program $V(w,s,h)$ with the following properties:
>
> -   $V$ receives three string parameters: an instance $w$, a proposed solution $s$, and a hint $h$.
>
> -   $V$ halts on all inputs, returning either `yes` or `no`.
>
> -   **Every positive instance can be verified:** If $w$ is a positive instance of $F$, then $V(w,s,h)=\text{``}\texttt{yes}\text{''}$ for **some** correct positive solution $s$ and **some** hint $h$.
>
> -   **Negative instances can never be verified:** If $w$ is a negative instance of $F$, then $V(w,s,h)=\text{``}\texttt{no}\text{''}$ for **all** values of $s$ and $h$.
>
> -   **Incorrect proposed solutions can never be verified:** If $s$ is not a correct solution (i.e. $s\notin F(w)$), then $V(w,s,h)=\text{``}\texttt{no}\text{''}$ for **all** $h$.

In essence, the certificate $c$ in () has been partitioned into a solution $s$ and hint $h$. The hint $h$ plays a similar role to $c$ in (): $h$ may not be needed at all, or it may provide only partial information (analogous to the discussion above, in which the certificate omitted some vertices from a cycle). But we have more stringent conditions on $s$, which ensure that it plays a meaningful role. With HamCycle, for example, $s$ is always a legitimate Hamilton cycle when $V$ accepts, and $V$ is guaranteed to reject any $s$ that is not a legitimate Hamilton cycle.

Incidentally, $h$ is not required at all for HamCycle, because any solution is a complete certificate. For a related example where $h$ plays a meaningful role, consider the problem HamCycleEdge: the input is a graph and the solution set consists of all edges that are members of some Hamilton cycle. Suppose that the instance $w$ has a Hamilton cycle $(a,b,p,q,r)$. Then for $V$ to correctly and efficiently verify the solution $s=\text{``}\texttt{a,b}\text{''}$, it would still need a hint indicating how to complete the Hamilton cycle: $h=\text{``}\texttt{p,q,r}\text{''}$.

# Reductions and NP-completeness

We noted in the introduction that some of the theorems and proofs in computational complexity theory are more elegant when expressed in terms of decision problems, and the vast majority of literature takes this approach. Therefore, even if we choose for pedagogical reasons to introduce elementary concepts in terms of non-decision problems, it makes sense to eventually transition to the decision problem viewpoint. Over a four-year period, we experimented with making this transition at various points in the course. For reasons discussed below, we found the best choice is to make the transition when students first encounter polynomial time reductions, and hence also before introducing NP-completeness.

For the novice audience it seems preferable to focus on the simplest type of reduction, which is variously known as a *Karp reduction*, *polynomial time mapping reduction*, or *many-one reduction*. In focusing on Karp reductions, we are now in line with eight of our ten sample textbooks (with the same two outliers  as previously). However, we still break slightly from the eight standard treatments, because instead of defining reductions between *decision* problems, we define reductions from decision computational problems to *general* problems (i.e. *to*, but not *from*, general problems). This difference again calls for new terminology, and we use the term "polyreduction" for this.

Formally, a *polyreduction* from the decision problem $D$ to the general computational problem $G$ is a map $r:\Sigma^*\to\Sigma^*$, such that $r(w)$ is a positive instance of $G$ if and only if $w$ is a positive instance of $D$. We also require that $r$ is computable in polynomial time. With this definition, students can first examine trivial polyreductions such as HamCycleD$\to$HamCycle, then move on to more interesting ones such as DirectedHamCycleD$\to$UndirectedHamCycleD.

With a little more effort, we can define polyreductions between general problems $F$ and $G$. To do so, we need polynomial time maps in both directions. First, $r:\Sigma^*\to\Sigma^*$ maps instances of $F$ to instances of $G$. Then $r':\Sigma^*\to\Sigma^*$ maps solutions of $G$ back to solutions of $F$. The correctness condition is that, given any program `G` that solves the problem $G$, we must have $r'(\mathtt{G}(r(w)))\in F(w)$ for all $w$. (In words, the solution of $G$ for $r(w)$ must map back to a solution of $F$ for $w$.) We have experimented with teaching this concept to novice audiences and met with a certain amount of success. Goldreich also recommends this approach . However, as already stated, on balance we recommend avoiding this extra level of generality, instead restricting polyreductions to be maps from decision problems to general problems via the simpler definition in the previous paragraph.

In the same spirit, we might attempt to teach "NPoly-completeness" for general computational problems. But in this case, our experience has been that the benefits of using non-decision problems are clearly outweighed by the disadvantages of dealing with arbitrary solutions when stating and proving theorems about NPoly-completeness. Therefore, it seems preferable to stay solidly in the traditional realm of decision problems when teaching NP-completeness. As a small bonus, the fact that our definition of polyreduction allows decision problems to be reduced to *general* problems leads to an elegant definition of NP-hardness: a problem $G$ is NP-hard if some NP-complete problem $D$ polyreduces to $G$. Holistic discussions of P versus NP (although defined formally in terms of decision problems) also take on a more practical tone when the majority of concepts earlier in the course have been taught in terms of non-decision problems.

# Conclusion

The paper advocated the use of non-decision problems in CS theory courses. The paper consisted of two separate strands: (i) an explanation of *why* non-decision problems are preferable, based on a combination of empirical survey results and educational theory; and (ii) an explanation of *how* to use non-decision problems in the theory course, using reformulations of classical concepts. In the first strand (section ), we demonstrated via an empirical survey of CS majors that programs solving non-decision problems are perceived as much more useful and applicable than programs solving decision problems. Invoking the well-known educational principle that learning outcomes are likely to be better for a course that uses materials perceived as "useful," we concluded that non-decision problems should be used if possible. In the second strand (sections  and –), we suggested new definitions, terminology, and notation that are designed to employ non-decision problems and to maximize the accessibility of CS theory concepts for the novice undergraduate audience. The approach has been tested and refined over four years of teaching, culminating in a recent textbook . Looking to the future, we hope this approach will not only improve learning outcomes for undergraduates receiving their first taste of computer science theory, but will also lead to theory courses that are taught earlier in the curriculum, to a wider range of undergraduates, at a wider range of institutions.

Finally, it should be mentioned that all definitions and technical remarks in this paper would be obvious to experienced practitioners of complexity theory, and no novelty for them is claimed. Nevertheless, the suggestion of using these definitions and strategies to teach an accessible theory course does appear to be novel.

[^1]: Also affiliated with School of Computing Sciences, University of East Anglia, 2017–19

[^2]: For NP-complete problems like HamCycleD, however, this never happens: given a non-decision problem $C$ whose decision variant is an NP-complete problem $C'$, it is known that $C$ always has a polynomial time reduction to $C'$. This property is sometimes known as *self-reducibility* .

[^3]: In contrast, expert practitioners know that sometimes the single-bit decision *is* useful. For example, determining whether an integer is prime or composite is important in cryptographic applications.

[^4]: Examples include the question of how many steps a program executes before terminating, or the length of a program's output. See  for details.

[^5]: The details of defining the outputs of nondeterministic programs that can produce more than a yes/no solution are interesting and important, but are omitted here for space reasons. See  for details.

[^6]: Specifically, we can ask if there exists a factor within a given range. The search problem of finding a factor reduces to this decision problem, via binary search.


abstract: Two practical spin-offs from the development of cryogenic dark matter detectors are presented. One in materials research, the other in biology.
author: Presented at the CISNP Conference (Columbia 2008)
in Honor of Frank Avignone, E. Fiorini, and Peter Rosen

L. Stodolsky
Max-Planck-Institut für Physik (Werner-Heisenberg-Institut)
Föhringer Ring 6, 80805 München, Germany
title:  Some Practical Applications of Dark Matter Research

$$#1$$ $$\begin{aligned}
#1
\end{aligned}$$

:

# Introduction

I know it's hard to believe and I certainly would never have believed it myself when the field started back in the 80's, but there can be what could be called a "practical" aspect to research on direct detection of dark matter.

This is because with a very small energy left behind in a dark matter interaction, we must develop very sensitive detectors. In particular there has been an intensive development of cryogenic detectors which in virtue of their operation at very low temperature show a strong repsonse to very small energies. This can have unexpected consequences. I'd like to present two we have been involved with, one related to materials science and one in biology.

# Cracks-the scare

The first begins with the early runs of the CRESST Cryogenic Dark Matter Detector in Gran Sasso in 1999 . Much careful effort went into the design and construction of a low background setup, aimed at achieving only a few events per day. When it finally ran in Gran Sasso we found– to our horror– rates in the 1000's per hour instead.

There followed several months of feverish search with all kinds of hypotheses, some plausible and others less so ...electronics?...suspensions? ...somebody touch the crystal with bare hands?... correlation with traffic in the Gran Sasso tunnel?...

The worst nightmare would of course have been a radioactive contamination. But on this there was one thing that saved us from complete desperation. Even if there is a fearsome radioactive background you don't know anything about, there is one thing you *do* know: it must be Poisson distributed in time. However, the mysterious events were not Poissonian. They seemed to rather come in 'bursts', and this was confirmed by statistical anaylsis. So it wasn't a radioactive contamination. But what the devil was it?

Fig.  shows the culprit. The detectors were sapphire ($\mathrm{Al_2O_3}$) crystals held tightly in place by small ($\sim$mm) sapphire balls. One sees some kind of fracture at the point of contact– "cracks" we called them. Apparently the "tight holding" which is used in cryogenic work to avoid problems with "microphonics" was *too* tight; enough to crack the very hard material sapphire. As soon as the sapphire balls were replaced by plastic stubs, which are evidently somewhat softer, the rate went down to to the expected level.

We all breathed a sigh of relief and that seemed the end of the story.

# Cracks–the analysis

Several years later, however, the realization sudenly hit that we must have the worlds' greatest data sample on 'cracks'. Since the rate went down from thousands per hour to a few per day, the pulses detected in that period must have been essentially all "cracks". And these were taken with good energy and time resolution, under low background conditions and with many, many, thousands of events. This splendid collection of well observed "cracks" ought to be of interest to somebody.

Indeed, several years later, in Finland, we found people knowledgeable about the subject and we began to look at the data .

The first thing we did was to plot the energy spectrum. This is shown in Fig. . "Looks just like earthquakes"was the first observation. Indeed the spectra seem to follow a power law, $dN/dE \sim E^{-\beta}$ as do the magnitudes (Richter scale) of earthquakes.

Interpretation here is simpler than in seismology. In seismology it is non-trivial to find the energy spectrum for quakes since working back from the Richter scale (a kind of amplitude) to the whole energy of the event involves various assumptions and calculations. But the cryodetector is a type of calorimeter, one is just measuring the total energy directly. (On the other hand, it must be said that earthquake data has a much larger range, covering five or six orders of magnitude compared to the one or two here.)

But if we follow the standard lore of how to translate the Richter scale to an energy scale, we get a power $\beta \approx 1.7$ for earthquakes. Over different CRESST data sets the power was $\beta\sim$ 1.7– 2.0, suggestively close to the earthquake number. I'm not aware of any simple, basic, explanation for this power, nor for any of other ones we found in the analysis.

With this wealth of data various other interesting statistical aspects of the data can be studied. One is the "waiting time", a statistic suitable for intermittent phenomena and often used in this kind of work. To every event we associate the time until the next event, and then plot the distribution of these "waiting" times.

For an ideal Poissonian source the waiting time distribution should be $e^{-w/w_o}$ where $w_o$ is the average waiting time or the inverse of the event rate. Fortunately we had such data available, since CRESST detectors are periodically calibrated with an external $\gamma$ source–necessarily Poissonian. This is shown in Fig  by the lower curve, and it has indeed the expected Poissonian form. On the other hand, the same plot for the cracks (upper curve) is well above a Poissonian at small waiting times, and in fact is well fit by a Poissonian times a power law, namely $$\label{pow}
w^{-\alpha }e^{-w/w_o}$$ with $\alpha\approx 0.3$. Interestingly enough, an analysis of earthquake waiting times came up with the same fit with the same power . Our power is not very well determined and this could be a coincidence, but it certainly is intriguing.

Another point concerns not earthquakes but material studies. As can be seen from Fig  the energy threshold in this data was in the keV's. This corresponds to breaking only some hundreds of bonds in sapphire. It turns out this is many orders of magnitude more sensitive than previous work in the subject, where it's more like $10^7$ bonds . Possibly, with a dedeicated setup, one could get down to the single bond level. This would be an exciting possibility and we have some thoughts about what such an apparatus might look like .

Briefly, we can advertise the following points from this study and for the cryodetector :

$\bullet$ A new technology for studying microfracture. With unparalled sensitivity. Perhaps to the few atom level with a dedicated setup.

$\bullet$ The method provides a direct, absolute measurement of the *total* energy, as opposed to previous work either in seismology or materials study.

$\bullet$ There are striking similarities with earthquakes. Despite the stupdenous difference in energy scale, and big material differences, there appear to be close and even quantitative similarities. Something universal must be at work. This is a challenge to theory. Is there, for example, a relation between the exponents $\alpha$ and $\beta$?

# The cryodetector in mass spectrometry

My second story begins even earlier, in 1991. It rests upon a very deep physical insight, namely:

$$\label{ins}
20~ {\rm keV}=20~ {\rm keV}$$ The history of this profound observation is the following. Mass spectroscopy with macromolecules is a valuable and frequently used tool in molecular biology. In such fields as genomics and proteomics time-of-flight studies are performed with very big molecules and their fragments. The biologist will have a, say, 20 keV accelerator in the basement. As opposed to the particle or nuclear physicist who at most will deal with heavy nuclei, the biologists is concerned with macromolecules in the many kD range. (One D= Dalton= 1 H atom.) With such enormous masses, and given that $E=\frac{1}{2}Mv^2$, a chunk with 20 keV will not be moving very fast at all.

Now in practically all familiar detectors, Geiger counters, scintillation counters,.. the initiating event is the ejection of an electron, leading to ionization, scintillation... But as we learn in elementary atomic physics, the cross section for hitting an electron depends on *velocity* and is maximum when $v(projectile)\approx v(atomic
~electron)$. Thus with big, slow, molecules, as we get into the hundreds of kD or more, detection becomes more and more difficult and inefficient.

Mulling upon this problem now and then, one day I suddenly came upon the deep insight Eq . The cryodetector, being a kind of calorimeter, doesn't care if the molecule is slow. It works on heat, *energy*, not velocity. For a cryodetector a huge, slow, 20 keV protein is the same thing as a 20 keV electron !?

...Theoretically. As many of our senior, seasoned participants at the conference will know, most good, simple-sounding ideas have a catch. Could this really work? But after discussion with my brother Marv, who is a microbiologist and who found the idea interesting, it was actually tried out by Damien Twerenbold and collaborators . It actually worked!

This in turn has lead to the production of commercial devices. A result with one of these is shown in Fig , where the results with a cryodetector are compared with that for a conventional detector in looking for rare proteins associated with the liver disease HELLP . A couple of nice peaks (masses in boldface), lost in the noise with the conventional detector, show up nicely with the cryodetector.

Our group at the MPI, has furthermore developed improved detectors optimized for good timing for improved time-of-flight accuracy. This also naturally leads to background reduction and tests showed very high sensitivty, reaching attomoles .

For the application of the cryodetector in mass spectrometry we can thus note

$\bullet$ It *really* appears to be true that "$20\,{\rm keV}\approx 20\,{\rm keV}$" for the cryodetector

$\bullet$ In principle the technique has no mass limitation (one of our students once tried to launch a whole virus–results unclear)

$\bullet$ The technique has a very high sensitivy, useful in rare protein studies and diagnostics

$\bullet$ Good timing can give high mass resolution; one could possibly see the modification of a single base

# Conclusions

These two examples of 'cracks' and mass spectrometry are not the last we'll see from this still relatively young technology and many are being actively discussed and tried out . It will be interesting to see what's still coming.


abstract: Matrix factorization is a common machine learning technique for recommender systems. Despite its high prediction accuracy, the Bayesian Probabilistic Matrix Factorization algorithm (BPMF) has not been widely used on large scale data because of its high computational cost. In this paper we propose a distributed high-performance parallel implementation of BPMF on shared memory and distributed architectures. We show by using efficient load balancing using work stealing on a single node, and by using asynchronous communication in the distributed version we beat state of the art implementations.
author:
;
title: Distributed Bayesian Probabilistic
  Matrix Factorization

# Introduction

Recommender Systems (RS) have become very common in recent years and are useful in various real-life applications.

The most popular ones are probably suggestions for movies on Netflix and books for Amazon. However, they can also be used in more unlikely area such drug discovery where a key problem is the identification of candidate molecules that affect proteins associated with diseases. One of the approaches that have been widely used for the design of recommender systems is collaborative filtering (CF). This approach analyses a large amount of information on some users' preferences and tries to predict what other users may like. A key advantage of using collaborative filtering for the recommendation systems is its capability of accurately recommending complex items (movies, books, music, etc) without having to understand their meaning. For the rest of the paper, we refer to the items of a recommender system by movie and user though they may refer to different actors (compound and protein target for the ChEMBL benchmark for example ).

To deal with collaborative filtering challenges such as the size and the sparseness of the data to analyze, Matrix Factorization (MF) techniques have been successfully used. Indeed, they are usually more effective because they take into consideration the factors underlying the interactions between users and movies called *latent features*. As sketched in Figure , the idea of these methods is to approximate the user-movie rating matrix $R$ as a product of two low-rank matrices $U$ and $V$ (for the rest of the paper $U$ refers to the users matrix and $V$ to the movie matrix) such that $R \approx
U \times V$. In this way $U$ and $V$ are constructed from the known ratings in $R$, which is usually very sparsely filled. The recommendations can be made from the approximation $U \times V$ which is dense. If $M$ $\times$ $N$ is the dimension of $R$ then $U$ and $V$ will have dimensions $M$ $\times$ $K$ and $N$ $\times$ $K$. $K$ represents then number of latent features characterizing the factors, $K \ll M$, $K \ll N$.

Popular algorithms for low-rank matrix factorization are alternating least-squares (ALS) , stochastic gradient descent (SGD) and the Bayesian probabilistic matrix factorization (BPMF) . Thanks to the Bayesian approach, BPMF has been proven to be more robust to data-overfitting and released from cross-validation (needed for the tuning of regularization parameters). In addition, BPMF easily incorporates confidence intervals and side-information . Yet BPMF is more computational intensive and thus more challenging to implement for large datasets. Therefore, the contribution of this work is to propose a parallel implementation of BPMF that is suitable for large-scale distributed systems.

The remainder of this paper is organized as follows. Section  describes the BPMF algorithm. In Section , the shared-memory version and in Section  the distributed version of BPMF are described. The experimental validation and associated results are presented in Section . Conclusions are drawn in Section

# BPMF

The BPMF algorithm puts matrix factorization in a Bayesian framework by assuming a generative probabilistic model for ratings with prior distributions over parameters. It introduces common multivariate Gaussian priors for each user of $U$ and movie in $V$. To infer these two priors from the data, BPMF places fixed uninformative Normal-Wishart hyperpriors on them. We use a Gibbs sampler to sample from the prior and hyperprior distributions.

This sampling algorithm can be expressed as the pseudo code shown in Algorithm . Most time is spent in the loops updating $U$ and $V$, where each iteration consist of some relatively basic matrix and vector operations on $K \times K$ matrices, and one computationally more expensive $K \times K$ matrix inversion.

These matrix and vector operations are very well supported in Eigen  a high-performance modern C++11 linear algebra library. Sampling from the basic distributions is available in the C++ standard template library (STL), or can be trivially implemented on top. As a results the Eigen-based C++ version of Algorithm  is a mere 35 lines of C++ code with good performance.

In the next sections we describe how to optimize this implementation to run efficiently on a shared memory multi-core system and on a distributed system with multiple compute nodes.

# Multi-core BPMF

The main challenges for performing BPMF in parallel is how to distribute the data and the computations amongst parallel workers (threads and/or distributed nodes). For the shared memory architectures, our main concern is using as many cores as possible, keeping all threads as busy as possible and minimizing memory discontinuous accesses. Since the number of users entries (resp. movie entries) is very large and since all items can be computed in parallel, it makes sense to assigned a set of items to each thread.

Next, balanced work sharing is a major way of avoiding idle parallel threads. Indeed, if the amount of computations is not balanced some threads are likely to finish their tasks and stay idle waiting for others to finish. Some items (users or movies) have a large number of ratings and the amount of compute is substantially larger for those items. To ensure a good load balance, we use a cheaper but serial algorithm for items with less than 1000 ratings. For items with more ratings, we use a parallel algorithm containing a full Cholesky decomposition. This choice is motivate by Figure  which shows the time to update one item versus the number of ratings for the three possible algorithms. By using the parallel algorithm for more expensive users/movies we effectively split them up in more smaller tasks that can utilize multiple cores on the system.

# Distributed parallel BPMF

The multi-core BPMF implementation presented above has been extended to distributed systems using MPI . In this section we first describe the MPI programming model, next how the data is distributed across nodes, how the work per node is balanced and how communication is handled.

## Distributed Programming using MPI

Message Passing Interface (MPI) is a standardized and portable message-passing system for distributed systems. The latest standard MPI-3.0 includes features important for this BPMF implementation, for example: support for asynchronous communication, support for hybrid application combining message passing with shared memory level parallelism like OpenMP  or TBB .

## Data Distribution

We distribute the matrices $U$ and $V$ across the system where each nodes computes their part. When an item is computed, the rating matrix $R$ determines to what nodes this item needs to be sent.

Our main optimization concern on how to distribute $U$ and $V$ is to make sure the computational load is distributed as equally as possible and the amount of data communication is minimized. Similarly to the cache optimization mentioned above, we can reorder the rows and columns in $R$ to minimize the number of items that have to be exchanged, if we split and distribute $U$ and $V$ according to consecutive regions in $R$.

Additionally we take work balance in to account when reordering $R$. For this we use a workload model derived from Figure : we approximate the workload per user/movie with fixed cost, plus a cost per movie rating.

## Updates and data communication

To allow for communication and computation to overlap we send the updated user/movie as soon as it has been computed. For this we use the asynchronous MPI 3.0 routines `MPI_Isend` and `MPI_Irecv`. However, the overhead of calling these routines is too much to individually send each item to the nodes that need it. Additionally, too many messages would be in flight at the same time for the runtime to handle this efficiently. Hence we store items that need to be sent in a temporary buffer and only send when the buffer is full.

# Validation

In this section, we present the experimental results and related discussion for the proposed parallel implementations of the BPMF described above.

## Hardware platform

We performed experiments on Lynx a cluster with 20 nodes, each equipped with dual 6-core Intel(R) Westmere CPUs with 12 hardware threads each, a clock speed 2.80GHz and 96 GB of RAM, and on Fermi, an IBM BlueGene/Q system with 10240 nodes, each equipped with 16 cores running at 1.2Ghz and 16 GB of memory.

## Benchmarks

Two public benchmarks have been used to evaluate the performances of the proposed approaches: the ChEMBL dataset and the MovieLens  database.

The ChEMBL dataset is related to the drug discovery research field. It contains descriptions for biological activities involving over a million chemical entities, extracted primarily from scientific literature. Several version exist since the dataset is updated on a fairly frequent basis. In this work, we used a subset of the version 20 of the database which was released on February 2015. The subset is selected based on the half maximal inhibitory concentration (IC50) which is a measure of the effectiveness of a substance in inhibiting a specific biological or biochemical function. The total ratings number is around 1023952 from 483500 compounds (acting as users) and 5775 targets (acting as movies).

The MovieLens dataset (ml-20m) describes 5-star rating and free-text tagging activity from MovieLens, a movie recommendation service. It contains 20M ratings across 27278 movies. These data were created by 138493 users between January 09, 1995 and March 31, 2015.

For all the experiments, all the versions of the parallel BPMF reach the same level of prediction accuracy evaluated using the root mean square error metric (RMSE) which is a used measure of the differences between values predicted by a model or an estimator and the values actually observed .

## Results for Multi-core BPMF

In this section, we compare the performance of the proposed multi-core BPMF with the Graphlab library which is a state of the art library widely used in machine learning community. We have chosen GraphLab because it is known to outperform other similar graph processing implementations .

The results presented in Figure report the performance in number of updates to $U$ and $V$ per second for the ChEMBL benchmark suite on a machine with 12 cores for three different version, using TBB, OpenMP and GraphLab.

The results show that all parallel implementations of the BPMF scale with the increasing number of used cores. The TBB version performs better than the OpenMP version because TBB's support for nested parallelism and because TBB uses a work-stealing scheduler that can better balance the work. The higher-level GraphLab library focuses less on performance and more on programmer productivity and this gap is clearly visible in the graph.

## Distributed BPMF

Figure  shows strong scaling results for the distributed MPI version of BPMF on a large system. Scaling is good, even super-linear, up to 32 nodes, which is one node rack on this system. Once the application's allocation exceeds this one rack, performance degrades significantly. The overlap of communication and computation is displayed in Figure . The term 'both' in this figure means time spent communicating *and* computing. This figure shows that it is possible to overlap computation and communication with MPI at small core count. It seems that this overlap does not help much for large core count, most probably due to a large overhead in the MPI library itself.

# Conclusion and future work

This work proposed a high-performance distributed implementation of the Bayesian probabilistic matrix factorization algorithm. We have shown that load balancing and asynchronous communication are essential to achieve good parallel efficiency, clearly outperforming more common synchronous approaches like GraphLab. The achieved speed-up allowed us to speed up machine learning for drug discovery on an industrial dataset from 15 days for the initial Julia-based version to 30 minutes using the distributed version.

In future work we will try to improve scaling results of the distributed version of BPMF by using a more light-weight multi-threaded communication library .

# Acknowledgments

This work is partly funded by the European projects EXA2CT (EXascale Algorithms and Advanced Computational Techniques) and ExCAPE (Exascale Compound Activity Prediction Engine) with references 610741 and 671555. We acknowledge PRACE for awarding us access to resource Fermi based in Italy at CINECA and IT4I for providing access to the Anselm and Salamon systems.


date: (received...............................)

**The generation model of particle physics and the cosmological matter-antimatter asymmetry problem**
B.A. Robson$^{*}$
*Department of Theoretical Physics, Research School of Physics and Engineering,*
*The Australian National University, Acton ACT 2601, Australia*
*$^{*}$email@example.com*

The matter-antimatter asymmetry problem, corresponding to the virtual nonexistence of antimatter in the universe, is one of the greatest mysteries of cosmology. Within the framework of the Generation Model (GM) of particle physics, it is demonstrated that the matter-antimatter asymmetry problem may be understood in terms of the composite leptons and quarks of the GM. It is concluded that there is essentially no matter-antimatter asymmetry in the present universe and that the observed hydrogen-antihydrogen asymmetry may be understood in terms of statistical fluctuations associated with the complex many-body processes involved in the formation of either a hydrogen atom or an antihydrogen atom.
: Generation model; antimatter; big bang.
PACS Number(s): 12.60.Rc, 95.30.Cq, 98.80.Bp

The matter-antimatter asymmetry problem, corresponding to the virtual nonexistence of antimatter in the universe, is one of the greatest mysteries of cosmology, along with dark matter and dark energy.$^{1}$ Recently, an understanding of both dark matter and dark energy has been provided by the development of a new quantum theory of gravity,$^{2,3}$ which is based on the Generation Model (GM) of particle physics.$^{4}$ In this paper it is demonstrated that the matter-antimatter asymmetry problem may also be understood in terms of the composite leptons and quarks of the GM, contrary to the elementary leptons and quarks of the Standard Model (SM) of particle physics.$^{5}$
According to the SM of particle physics, the universe is made essentially of matter comprising three kinds of elementary particles: electrons, up quarks and down quarks. An electron has electric charge $Q = -1$ but has no color charge. The up and down quarks have electric charges $Q = +\frac{2}{3}$ and $Q = -\frac{1}{3}$, respectively, and have a single color charge, red, green or blue.
Each of the above elementary particles has an elementary antiparticle, which has the opposite electric and color charges: the antielectron (positron) has electric charge $Q = +1$ and has no color charge, the antiup and antidown quarks have electric charges $Q = -\frac{2}{3}$ and $Q = +\frac{1}{3}$, respectively, and have a single color charge, antired, antigreen or antiblue.
Experiment indicates that an antiparticle may annihilate **only** with its corresponding particle producing "interaction mediating particles", such as photons, gluons or weak W/Z bosons, while conserving both energy and momentum. For example, an electron and a positron may annihilate each other producing photons or at sufficiently high energy, W/Z bosons. On the other hand an electron and an up quark do not annihilate. An up quark carrying a red color charge may annihilate with an antiup quark carrying an antired color charge to produce photons. This particle-antiparticle pair may also annihilate to produce massless electrically neutral gluons carrying both a red color charge and an antired color charge thereby conserving color charge. Gluons act as the exchange particles for the strong interaction between color charged quarks and are analogous to the exchange of photons in the electromagnetic interaction between two electrically charged particles.
However, the nature of the gluon fields of the strong interaction and that of the photon fields of the electromagnetic interaction are quite different. In particular, gluons carry color charges and self-interact, while photons, being electrically neutral, do not. This property of gluons leads to antiscreening effects$^{6,7}$ of the strong interaction, contrasting with the screening effects of the electromagnetic interaction.
The nature of the gluon fields is such that they lead to a runaway growth of the fields surrounding an isolated color charge.$^{8}$ In fact all this structure, via virtual color charged gluons, implies that an isolated quark would have an infinite energy associated with it. This is the reason why isolated quarks are not seen. Nature requires these infinities to be essentially cancelled or at least made finite. It does this for hadrons in two ways: either by bringing a quark and an antiquark close together (i.e., forming a meson) or by bringing three quarks, one of each color, together (i.e., forming a baryon) so that in each case the composite hadron is colorless (color neutral). Thus the colored quarks of the SM form composite colorless baryons, protons and neutrons, which presently comprise most of the matter in the universe.
According to the prevailing cosmological model,$^{1}$ the universe was created in the so-called 'Big Bang' from pure energy, and is currently composed of about 5% ordinary matter, 27% dark matter and 68% dark energy. The matter described by the SM refers to the 5% ordinary matter, which prior to the nucleosynthesis, i.e., the fusion into heavier elements, consisted of about 92% hydrogen atoms and 8% helium atoms,$^{9}$ so that the ordinary matter of the universe was, and still is, essentially electrically neutral and colorless.
It is generally considered that the Big Bang and its aftermath produced equal numbers of particles and antiparticles, although the universe today appears to consist almost entirely of matter rather than antimatter. This constitutes the matter-antimatter asymmetry problem: where have all the antiparticles gone? Currently there is no acceptable understanding of this problem.
Since the physical nature of the Big Bang is still not understood, it is not possible to discuss the matter-antimatter asymmetry problem from the initial singularity. Consequently, the matter-antimatter asymmetry problem will be discussed in terms of the observed nature of the universe.
For many decades now the SM has been unable to provide an acceptable understanding of the matter-antimatter asymmetry problem. In Sec. 2 the main attempts, within the framework of the SM, to understand the asymmetry problem will be discussed briefly. In Sec. 3 we shall introduce the GM and summarize the essential differences between the GM and the SM. In Sec. 4 we shall show how the GM naturally provides an understanding of the asymmetry problem in terms of composite leptons and quarks. Section 5 states the conclusions.

Within the framework of the SM the matter-antimatter asymmetry problem is generally considered to be related to the baryon asymmetry problem, i.e., the imbalance of baryonic matter and antibaryonic matter in the observable universe. The universe seems to consist almost entirely of hydrogen and helium atoms rather than antihydrogen and antihelium atoms.
This observation is at first sight rather surprising since the origin of the universe in the Big Bang is generally considered to have produced equal numbers of baryons and antibaryons, which as the universe cooled should have annihilated in pairs back to pure energy, so that the universe would be empty of matter. In the SM this is assumed to imply that although the universe was originally perfectly symmetric in baryons and antibaryons, during the cooling period some physical processes contributed to a small imbalance in favor of baryons.
The small excess of baryons over antibaryons indicates that contrary to the current laws of physics, baryon number must be violated in some physical process. This was proposed by Sakharov$^{10}$ in 1967. Sakharov proposed a set of three necessary conditions, within the framework of the SM, that a physical process must satisfy to produce baryons and antibaryons at different rates: (i) violation of baryon number; (ii) violation of both charge conjugation symmetry, C, and charge conjugation-parity symmetry, CP; and (iii) the process must not be in thermal equilibrium. Violation of baryon number is required to produce an excess of baryons over antibaryons, while C symmetry violation ensures the non-existence of processes, which produce an equivalent excess of antibaryons over baryons. Similarly, violation of CP symmetry is required so that equal numbers of left-handed baryons and right-handed antibaryons as well as equal numbers of right-handed baryons and left-handed antibaryons are not produced. Finally, a departure from thermal equilibrium must play a role so that CPT symmetry does not ensure compensation between processes increasing and decreasing the baryon number.$^{11}$
The first Sakharov criterion: violation of baryon number, would be achieved if antiprotons or protons decayed into lighter subatomic particles such as a neutral pion and an electron or positron, respectively. However, there is currently no experimental evidence that such 'direct' violations of baryon number occur.
Thus researchers turned their attention to 'indirect' violations of baryon number, which are concerned with Sakharov's second criterion: CP violation, which indicates the possibility that some physical processes may distinguish between matter and antimatter.
Both the electromagnetic and strong interactions are symmetric under C and P, and consequently they are also symmetric under the product CP. However, this is not necessarily the case for the weak interaction, which violates both C and P symmetries. Indeed, the 1964 discovery$^{12}$ of the decay of the long-lived $K^{0}$ meson to two charged pions brought about the surprising conclusion that CP is also violated in the weak interaction. The violation of CP in weak interactions implies that such physical processes could lead to indirect violation of baryon number so that matter creation would be preferred over antimatter creation.
In the SM CP violation originates from charge-changing (CC) weak interactions that change the charge and flavor of quarks. The six known quarks consist of three up-like quarks with charge $Q = +\frac{2}{3}$: up ($u$), charmed ($c$) and top ($t$); and three down-like quarks with charge $Q = -\frac{1}{3}$: down ($d$), strange ($s$) and bottom ($b$). The CC weak interactions cause each up-like quark to turn into a down-like quark and vice-versa. The transition amplitudes for the nine combinations are given by the Cabibbo-Kobayashi-Maskawa (CKM) matrix elements.$^{13,14}$
Prior to the quark model of Gell-Mann$^{15}$ and Zweig$^{16}$, Cabibbo$^{13}$ in 1963 had introduced some of the matrix elements of the CKM matrix in order to preserve the universality of the CC weak interaction. In 1973 Kobayashi and Maskawa$^{14}$ discovered that for the case of three generations of quarks the CC weak interactions may violate CP. However, the Kobayashi-Maskawa CP violation was found to be tiny, primarily because of the smallness of the relevant matrix elements. Consequently, any physical process that produces more matter than antimatter would have been ineffectual. Although the excess of matter over antimatter is generally considered to have been only one part in a billion, the effect of the Kobayashi-Maskawa CP violation process falls far short of even this very small amount by many orders of magnitude. Indeed it is estimated that the baryon excess produced by the Kobayashi-Maskawa CP violation process is only sufficient to provide the baryons of a single galaxy in the universe, which comprises billions of galaxies.
The third criterion of Sakharov: departure from thermal equilibrium, is generally assumed to also occur within the electroweak sector of the SM during the so-called electroweak phase transition.$^{17}$ This is assumed to be a first order transition between the state in which the $W$ and $Z$ gauge bosons are massless to a state in which they are massive. The massive $W$ and $Z$ bosons are assumed to arise as a result of some unknown mechanism which breaks the electroweak symmetry, and it is during this electroweak symmetry breaking that departure of thermal equilibrium takes place.
Thus the SM does provide possible physical processes, which satisfy all three necessary criteria of Sakharov. However, the assumed physical processes do not seem capable of providing an acceptable explanation for the matter-antimatter asymmetry. The general conclusion is that physics beyond the SM is required for this purpose.

The Generation Model (GM) has been developed over many years$^{18-22}$ and is an alternative model to the SM of particle physics. The current version of the GM is described in detail in Ref. 4. There are three essential differences between this GM and the SM: (i) the classification of the leptons and quarks in terms of additive quantum numbers; (ii) the roles played by the mass eigenstate quarks and the weak eigenstate quarks and (iii) the nature of the weak interactions. These are discussed in detail in Ref. 23. For the purpose of the present paper, only the essential differences (i) and (ii) will be discussed more briefly below.
The GM employs a unified classification scheme for the leptons and quarks rather than the non-unified scheme of the SM. This unified system is based upon the use of only three additive quantum numbers rather than the nine independent additive quantum numbers of the SM. These three additive quantum numbers are charge ($Q$), particle number ($p$) and generation quantum number ($g$). The non-unified system of the SM uses four additive quantum numbers for leptons: charge ($Q$), lepton number ($L$), muon lepton number ($L_{\mu}$) and tau lepton number ($L_{\tau}$) plus six additive quantum numbers for quarks: charge ($Q$), baryon number ($A$), strangeness ($S$), charm ($C$), bottomness ($B$) and topness ($T$).
Comparison of the two models, SM and GM, indicates that they have only one additive quantum number in common, namely electric charge $Q$. The second additive quantum number of the GM, particle number $p$ replaces both lepton number $L$ and baryon number $A$ of the SM. The third additive quantum number of the GM, generation quantum number $g$ effectively replaces the remaining six additive quantum numbers of the SM. Thus the GM provides both a simpler and *unified* classification scheme for leptons and quarks. Indeed the GM classification scheme indicates that leptons and quarks are intimately related and led to composite models of leptons and quarks, which in turn led to new paradigms for both mass and gravity.$^{22,24}$
An important feature of the GM classification scheme is that all three additive quantum numbers, $Q$, $p$ and $g$, are required to be conserved in all leptonic and hadronic processes. In particular, the generation quantum number $g$ is strictly conserved in weak interactions unlike some of the quantum numbers of the SM, e.g., strangeness $S$. This latter requirement led to a new treatment of quark mixing in hadronic processes$^{21}$: the GM differs from the SM in two fundamental ways, which are essential to preserve the universality of the CC weak interaction for hadronic processes.
First, the GM postulates that the mass eigenstate quarks of the same generation, e.g., ($u$, $d$), form weak isospin doublets and couple with the full strength of the CC weak interaction, like the lepton doublets. Unlike the SM, the GM requires that there is no coupling between mass eigenstate quarks from different generations. This latter requirement corresponds to the conservation of the generation quantum number $g$ in the CC weak interaction processes.
Second, the GM postulates that hadrons are composed of weak eigenstate quarks, rather than the corresponding mass eigenstate quarks as in the SM. Thus the GM differs from the SM in that it treats quark mixing differently from the method introduced by Cabibbo$^{13}$ and employed in the SM. Essentially, in the GM, the quark mixing is placed in the quark states (wave functions) rather than in the CC weak interactions. Thus in the GM, the proton is considered to consist of two up quarks and one mixed ($d'$) quark, which is a linear superposition of the down quark, the strange quark and the bottom quark: $$\begin{aligned}
d' = V_{ud}d + V_{us}s + V_{ub}b~,
\end{aligned}$$ where $V_{ij}$ are the elements of the CKM matrix,$^{13,14}$ rather than two up quarks and one down quarks as in the SM. This allows a unified and simpler classification of both leptons and quarks in terms of only three additive quantum numbers, $Q$, $p$ and $g$, each of which is conserved in all interactions. It should be noted that in both the GM and the SM, the weak eigenstate up quark is assumed to be identical with the mass eigenstate up quark, i.e., there is no mixing with the other up-like quarks, ($c$) and ($t$), unlike the down-like quarks.
The development of the unified GM classification scheme for leptons and quarks indicated that leptons and quarks are intimately related and led to the development of composite versions of the GM. It should be noted that this is not possible in terms of the non-unified classification scheme of the SM, involving different additive quantum numbers for leptons than for quarks and the non-conservation of some additive quantum numbers, such as strangeness, in the case of quarks.
Thus another essential difference between the GM and the SM is that in the GM, the leptons and quarks are composite particles rather than elementary particles as in the SM. In the GM, both leptons and quarks have a substructure, consisting of spin-1/2 massless particles, rishons and/or antirishons, each of which carries a single color charge. The constituents of leptons and quarks are bound together by strong color interactions, mediated by massless hypergluons, acting between the color charged rishons and/or antirishons. These strong color interactions of the GM are analogous to the strong color interactions of the SM, mediated by massless vector gluons, acting between color charged elementary quarks and/or antiquarks. In the GM, the strong color interaction has been taken down one layer of complexity to describe the composite nature of leptons and quarks. The only essential difference between the strong color interactions of the GM and the SM is that the former acts between color charged rishons and/or antirishons, while the latter acts between color charged elementary quark and/or antiquarks. For historical reasons we use the term "hypergluons" for the mediators of the strong color interactions at the rishon level, rather than the term "gluons" as employed in the SM, although the effective color interaction between composite quarks and/or composite antiquarks is very similar to that between the elementary quarks and/or elementary antiquarks of the SM. The substructure of leptons and quarks is described in detail in Ref. 4.
In the GM the elementary rishons and antirishons are required to have the same three kinds of additive quantum numbers as the composite leptons and quarks. Table 1 gives the three additive quantum numbers allotted to the three kinds of rishons of the GM, $T$, $V$ and $U$. For each rishon additive quantum number $N$, the corresponding antirishon has the additive quantum number $-N$. In particular, each rishon has $p = +\frac{1}{3}$, while each antirishon has $p = -\frac{1}{3}$. Thus the particle number $p$ allotted to a composite lepton or quark reflects its degree of particle or antiparticle nature.

| rishon |      $Q$       |      $p$       |   $g$   |
|:-------|:--------------:|:--------------:|:-------:|
|  $T$   | $+\frac{1}{3}$ | $+\frac{1}{3}$ |   $0$   |
|  $V$   |      $0$       | $+\frac{1}{3}$ |   $0$   |
|  $U$   |      $0$       | $+\frac{1}{3}$ | $-1$    |

Table 1. GM additive quantum numbers for rishons
Table 2 displays both the structures and their additive quantum numbers of the first generation of composite leptons and quarks in the GM.

```latex
\begin{small}
\begin{center}
\begin{tabular}{|lcccc|} \hline
 particle &~~$structure$~~ &~~$Q$~~ &~~$p$~~ &~~$g$~~ \\ \hline
~$e^{+}$&$TTT$&$+1$&$+1$&~~$0$~~ \\
~$u$&$TT\bar{V}$&$+\frac{2}{3}$&$+\frac{1}{3}$&~~$0$~~ \\
~$\bar{d}$&$T\bar{V}\bar{V}$&$+\frac{1}{3}$&$-\frac{1}{3}$&~~$0$~~ \\
~$\nu_{e}$&$\bar{V}\bar{V}\bar{V}$&$0$&$-1$&~~$0$~~ \\
~$\bar{\nu_{e}}$&$VVV$&$0$&$+1$&~~$0$~~ \\
~$d$&$\bar{T}VV$&$-\frac{1}{3}$&$+\frac{1}{3}$&~~$0$~~ \\
~$\bar{u}$&$\bar{T}\bar{T}V$&$-\frac{2}{3}$&$-\frac{1}{3}$&~~$0$~~ \\
~$e^{-}$&$\bar{T}\bar{T}\bar{T}$&$-1$&$-1$&~~$0$~~ \\
\hline
\end{tabular}
\end{center}
\end{small}
```

Table 2. GM of first generation of leptons and quarks
Each lepton of the first generation is assumed to be colorless, consisting of three rishons (or antirishons), each with a different color (or anticolor), analogous to the baryons (or antibaryons) of the SM. The leptons are built out of $T$-rishons and $V$-rishons or their antiparticles $\bar{T}$ and $\bar{V}$, all of which have generation quantum number $g$ = 0.
In the GM it is assumed that each quark of the first generation is a composite of a colored rishon and a colorless rishon-antirishon pair, ($T\bar{V}$) or ($\bar{T}V$), so that the quarks carry a color charge. Similarly, the antiquarks are a composite of an anticolored antirishon and a colorless rishon-antirishon pair, so that the antiquarks carry an anticolor charge.
The rishon structures of the second generation particles are assumed to be the same as the corresponding particles of the first generation plus the addition of a colorless rishon-antirishon pair, $\Pi$, where $$\begin{aligned}
\Pi = [(\bar{U}V) + (\bar{V}U)]/\sqrt{2}~,
\end{aligned}$$ which is a quantum mechanical mixture of ($\bar{U}V$) and ($\bar{V}U$), which have $Q = p = 0$ but $g = \pm{1}$. respectively. In this way, the pattern for the first generation is repeated for the second generation. Eq. (2) indicates that the generation quantum number $g$ for each second generation particle has two possible values, $\pm{1}$, although in any given transition the generation quantum is required to be conserved.
Similarly, the rishon structures of the third generation particles are assumed to be the same as the corresponding particles of the first generation plus the addition of two $\Pi$ rishon-antirishon pairs so that the pattern of the first and second generation is continued for the third generation. The structure $$\begin{aligned}
\Pi\Pi = [(\bar{U}V)(\bar{U}V) + (\bar{U}V)(\bar{V}U) + (\bar{V}U)(\bar{U}V) + (\bar{V}U)(\bar{V}U)]/2
\end{aligned}$$ indicates that the generation quantum number for each third generation particle has three possible values $g$ = $0$, $\pm{2}$, although in any given transition the generation quantum number is required to be conserved.
Eqs. (2) and (3) indicate that the weak eigenstate quark $d'$ has charge $Q = -\frac{1}{3}$ and particle number $p = +\frac{1}{3}$ although each component has different values of the generation quantum number $g$.

The solution of the matter-antimatter asymmetry problem involves the particle number additive quantum number $p$ of the GM. In particular the values of $p$ corresponding to a weak eigenstate up quark ($p = +\frac{1}{3}$), a weak eigenstate down quark ($p = +\frac{1}{3}$) and an electron ($p = -1$). The values of $p = +\frac{1}{3}$ of the quarks, correspond to the values of their baryon number in the SM, while the value of $p = -1$ of the electron, corresponds to minus the value of the lepton number of the electron in the SM. In the GM, the electron consists entirely of antirishons, i.e., antiparticles, while in the SM it is assumed to be a particle, although there is no a priori reason for this assumption.
In the GM the proton is assumed to consist of three weak eigenstate quarks, two up quarks and one down quark, so that the proton has particle number $p = +1$. Consequently, a hydrogen atom, consisting of one proton and one electron has particle number $p = 0$: the hydrogen atom in the GM consists basically of an equal number of rishons and antirishons, so that there is no asymmetry of matter and antimatter there.
In the GM the neutron consists of three weak eigenstate quarks, one up quark and two down quarks, so that the neutron also has particle number $p = +1$. Consequently, a helium atom, consisting of two protons, two neutrons and two electrons has particle number $p = +2$: the helium atom in the GM consists of six more rishons than antirishons, i.e., more matter than antimatter. In the GM it is assumed that during the formation of helium in the aftermath of the Big Bang that an equivalent surplus of antimatter was formed as neutrinos, which have $p = -1$, so that overall equal numbers of rishons and antirishons prevailed. This assumption is a consequence of the conservation of $p$ in all interactions.
Thus the ordinary matter present in the universe, prior to the fusion process into heavier elements, has essentially particle number $p = 0$. Since the additive quantum number $p$ is conserved in all interactions, this implies that the overall particle number of the universe will remain essentially as $p = 0$, i.e., symmetric in particle and antiparticle matter.
To summarize: the ordinary matter present in the universe has an overall particle number of $p = 0$, so that it contains equal numbers of both rishons and antirishons. This implies that the original antimatter created in the Big Bang is now contained within the stable composite leptons, i.e., electrons and neutrinos, and the stable composite quarks, i.e., the weak eigenstate up and down quarks, which comprise the protons and neutrons. The hydrogen, helium and heavier atoms all consist of electrons, protons and neutrons. This explains where all the antiparticles have gone. However, it does not explain why the universe consists primarily of hydrogen atoms and not antihydrogen atoms. It is suggested that the hydrogen-antihydrogen asymmetry may be understood as follows.
In the GM, antihydrogen consists of the same rishons and antirishons as does hydrogen, although the rishons and antirishons are differently arranged in the two systems. This implies that both hydrogen atoms and antihydrogen atoms should be formed during the aftermath of the Big Bang with about the same probability. In fact, estimates from the cosmic microwave background data suggest that for every billion hydrogen-antihydrogen pairs there was just one extra hydrogen atom. It is suggested that this extremely small difference, one extra hydrogen atom in $10^{9}$ hydrogen-antihydrogen pairs, may arise from statistical fluctuations associated with the complex many-body processes involved in the formation of either a hydrogen atom or an antihydrogen atom. The uniformity of the universe,$^{25}$ in particular, the lack of antihydrogen throughout the universe, indicates that the above statistical fluctuations took place prior to the 'inflationary period'$^{26,27}$ associated with the Big Bang scenario.

Within the framework of the GM of particle physics, it has been demonstrated that the matter-antimatter asymmetry problem may be understood in terms of the particle additive quantum number ($p$) and the composite nature of the leptons and quarks of the GM. The ordinary matter present in the universe has an overall particle number $p = 0$, so that it contains the same number of particles (rishons) as antiparticles (antirishons).
This implies that the original antimatter created in the Big Bang is now contained within the stable composite leptons, the electrons and neutrinos, and the stable composite quarks, the weak eigenstate up and down quarks that comprise the protons and neutrons. The hydrogen, helium and heavier atoms all consist of electrons, protons and neutrons.
Thus there is no matter-antimatter asymmetry in the present universe. However, there does exist a hydrogen-antihydrogen asymmetry: the present universe consists predominently of hydrogen atoms and virtually no antihydrogen atoms. In the SM this is tantamount to the matter-antimatter asymmetry, since both protons and electrons are assumed to be matter. In the GM this is not the case, since both hydrogen and antihydrogen atoms contain the same number of rishons as the number of antirishons.
An understanding of the hydrogen-antihydrogen asymmetry requires knowledge of the physical nature of the Big Bang but unfortunately this knowledge is currently far from complete. The prevailing model of the Big Bang is based upon the theory of general relativity:$^{28}$ extrapolation of the expansion of the universe backwards in time yields an infinite density and temperature at a finite time in the past (approximately 13.8 billion years ago). Thus the 'birth' of the universe seems to be associated with a 'singularity', which not only signals a breakdown of general relativity but also all the laws of physics. This leads to serious impediments to understanding the physical nature of the Big Bang and consequently the development of the hydrogen-antihydrogen asymmetry in the aftermath of the Big Bang.
In the SM, the singularity is generally ignored and it is assumed that the Big Bang initially produces numerous elementary particle-antiparticle pairs such as electron-positron pairs and quark-antiquark pairs by converting energy into mass according to $m = E/c^{2}$. Thus the early universe consisted of a soup of particle-antiparticle pairs continually being created and annihilated. Later, as the universe cooled following an inflationary period, the quarks and antiquarks would form protons, neutrons, antiprotons, antineutrons, etc., and eventually atoms of hydrogen, antihydrogen, helium and antihelium. These would later annihilate in pairs until only atoms of hydrogen and helium prevailed. In this scenario, it seems unlikely that either electrons or positrons would prevail so that neither hydrogen atoms nor antihydrogen atoms would prevail. This simply reflects that the creation and annihilation of electron-positron pairs constitute a unique process.
In the GM, neglecting the singularity, it is expected that the Big Bang would initially produce numerous elementary rishon-antirishon pairs. Then as the universe cooled following an inflationary period, the rishons and antirishons would form the leptons, quarks and their antiparticles and eventually atoms of hydrogen, antihydrogen, helium and antihelium. These would later annihilate in pairs until only atoms of hydrogen and helium prevailed. In this scenario, small statistical fluctuations occur at the rishon-antirishon level so that for every billion of hydrogen-antihydrogen pairs there is just one extra hydrogen atom. This simply reflects that the formation of electron-positron pairs is a more complex process in the GM than the unique process in the SM.
Thus there are two main conclusions: (1) there is no matter-antimatter asymmetry in the present universe and (2) it is suggested that the observed small hydrogen-antihydrogen asymmetry in the present universe can be understood in terms of statistical fluctuations associated with the complex many-body processes involved in the formation of either a hydrogen atom or an antihydrogen atom.
Finally it should be noted that if the Big Bang produced equal numbers of particles and antiparticles so that the initial state of the universe had particle number $p = 0$, then the GM *predicts* that the present state of the universe should also have $p = 0$, since particle number $p$ is conserved in all interactions.

I am grateful to N. H. Fletcher, D. Robson, J. M. Robson and L. J. Tassie for helpful discussions.

1. P. A. R. Ade et al., (Planck Collaboration) arXiv:1502.01590v1 \[astro-p h.CO\] 25 Feb 2015 to be published in *Astronomy and Astrophysics*. 2. B. A. Robson, *Int. J. Mod. Phys. E* **22** (2013) 1350067. 3. B. A. Robson, *Int. J. Mod. Phys. E* **24** (2015) 1550012. 4. B. A. Robson, The Generation Model of Particle Physics in *Particle Physics*, Ed. E. Kennedy (InTech Open Access Publisher, Rijeka, Croatia, 2012). 5. K. Gottfried and V. F. Weisskopf, *Concepts of Particle Physics* Vol. 1 Oxford University Press, New York, 1984). 6. D. J. Gross and F. Wilczek, *Phys. Rev. Lett.* **30** (1973) 1343. 7. H. D. Politzer, *Phys. Rev. Lett.* **30** (1973) 1346. 8. F. Wilczek, *Nature* **433** (2005) 239. 9. R. Morris, *Cosmic Questions*, (John Wiley and Sons, New York 1993). . A. D. Sakharov, *JETP* **5** (1967) 24. . G. R. Farrar and M. E. Shaposhnikov, *Phys. Rev. Lett.* **70** (1993) 2833. . J. H. Christenson, J. W. Cronin, V. I. Fitch and R. Turlay, *Phys. Rev. Lett.* (1964) 138. . N. Cabibbo, *Phys. Rev. Lett.* **10** (1963) 531. . M. Kobayashi and T. Maskawa, *Prog. Theor. Phys.* **49** (1973) 652. . M. Gell-Mann, *Phys. Lett.* **8** (1964) 214. . G. Zweig, *CERN reprts* **8182/TH 401** and **8419/TH 412** (1964). . M. Dine and A. Kusenko, *Rev. Mod. Phys.* **76** (2004) 1. . B. A. Robson, *Int. J. Mod. Phys. E* **11** (2002) 555. . B. A. Robson, *Int. J. Mod. Phys. E* **13** (2004) 999. . B. A. Robson, *Int. J. Mod. Phys. E* **14** (2005) 1151. . P. W. Evans and B. A. Robson, *Int. J. Mod. Phys. E* **15** (2006) 617. . B. A. Robson, *Int. J. Mod. Phys. E* **20** (2011) 733. . B. A. Robson, *Advances in High Energy Physics* **2013** (2013) 341738. . B. A. Robson, *Int. J. Mod. Phys. E* **18** (2009) 1773. . D. Lincoln, *Understanding the Universe from Quarks to the Cosmos*, rev. edn. (World Scientific, Singapore, 2012). . A. H. Guth, *Phys. Rev. D* **23** (1981) 347. . A. D. Linde, *Phys. Lett. B* **108** (1982) 389. . A. Einstein, *Ann. Physik* **49** (1916) 769.