Keywords

1 Introduction

Energy efficiency and consumption reduction is a major challenge for our society due to awareness raising to the greenhouse effect and growing tensions on the energy market. European Union (EU) set the ambitious objective to divide by four greenhouse gas emissions by 2050. Yet, a large part of the final energy consumed in Europe, 26.6 %, is used within residential sector, according to the EEA [2]. For this reason, several programmes in the residential sector have been proposed such as building renovation, definition of low energy building (LEB) and smart energy controller [4], consumer awareness to cost and carbon emissions thanks to real-time feedback [13]. At a larger scale, smart grid have been proposed [9] in order to optimise the production and the distribution of electricity depending on consumption.

Nevertheless, individuals’ behaviour also strongly influences energy consumption. In France, according to [12], despite a moderate increase of household electricity consumption (8 % from 1973 to 2003), a strong increase of the specific uses of electricity (i.e. electricity used except for heating) occurred (85 % for the same period). In this context, the study of propositions to diminish specific uses of electricity becomes a crucial issue.

One aspect of the problem is to study the consumption of electrical appliances in real-life situations. That aspect is at the core of the REMODECEFootnote 1 european project, that provides knowledge on electricity waste due to inefficient appliances and standby consumption. A complementary approach is to study household activities. Several works have been proposed in this direction such as [1, 7, 8], but they usually focus on electricity demand prediction, so as to optimise energy control systems. Nevertheless, one might want to consider influencing people’s consumption behaviour through incentives such as variable electricity pricing, awareness campaigns, etc. For instance, [10] suggests that a critical peak price program might reduce by 30 % the peak load.

Several models allows to take into account human activities and their resulting electricity demands. Many of them rely on statistical approaches such as [18, 20] that use hidden Markov chains to generate human activities related to electricity demands. Despite their statistical validity, they focus on representing an “average” familly and scenario and, thus, do not allow to investigate on the activity dynamics related, for instance, to specific events. Actually, agent-based models are best fitted for such analysis, as recently exhibited by the model proposed in [7]. This model relies on the Brahms language [16] to allow explicit representation and organisation of human activities. Nevertheless, the parametrization of this model appears to be very complex. They are hardly accessible to field experts and do not allow simulation of complex and long situations.

In this paper, we present a meta-model and a simulator, called SMACH, that allows experts to model, simulate and study the household activities and their relation with electrical consumption depending on specific pricing policies or appliance use. This system can be used to evaluate possible incentives to diminish peak hours electricity demand.

In numerous modelling efforts, expertise collection is combined with definition of the technical architecture which often limits the scalability of the model. In contrary, our approach, incremental and situated modelling [15], clearly separated the two processes: (1) we propose a meta-model generic enough to (2) let field experts integrate their knowledge and evaluate their hypotheses by defining scenarios (for instance, in the present application: a household of two adults, two kids, one infant, their activities their habits, house environment and specific events). Once a new question emerges or an incoherence is pointed out by domain experts, the cycle starts again by making amendment to the previous meta-model. In practice, our meta-model and the dedicated simulator (SMACH) allow experts to define fine-grain activities (ranging from few minutes to hours) and to study their evolution over long period of time (one year). Using an advanced and intuitive user interface, the simulator allows experts to understand the respective influence of activities and energy consumption, and the co-influence of activities.

In this paper, we focus on the presentation of the meta-model of human activities within the household (presented in Sect. 2) and the dynamics of this model which includes communication, beliefs, action selection and behaviour adaptation (detailed in Sect. 3). Section 4, introduces the simulator GUI and provides two distinctive examples of household emergent adaptation forced by action competition and variable electricity pricing. Section 5 concludes the paper and presents the ongoing work.

2 Meta-Model of Human Activity

Our meta-model of human activity follows two purposes that are tightly connected. First, it aims at describing human behaviours in the context of household electricity consumption. This description must remain easy to manipulate, even for non-computer specialists. To this purpose, we followed an individual-centered agent-based approach in which human activity is decomposed into tasks. Second, it serves as agent description model for our multi-agent simulator (Sect. 3). This simulator allows to study the evolution of human behaviour depending on the characteristici.e.s of energy pricing and household appliances, that are defined in the environment.

2.1 Environment

Let \([d_s,d_e]\) be the considered time period. Energy prices can be specified to different time periods \(\lbrace [d_i;d_{i+1}],price_i\rbrace \) with \(d_0=d_s\) and \(price_i \in \mathbb {R}^+\), the kilowatt hour price (kWh) for the \(i^\mathrm {th}\) sub-period.

The house is composed of several rooms where electrical appliances are spread. Let \(\mathcal {R}\) be the set of rooms and \(\mathcal {E}\) the set of appliances. For each room \(r~(r\in R)\), we note \(E_r\subset \mathcal {E}\) the set of electrical appliances in this room. In our model, each appliance can only be in one room, fixed for the duration of the simulation.

Appliances. Each appliance \(e \in E\) is characterised by its electrical consumption \(\theta _i\). We note \(power: \mathcal {E}\rightarrow \mathbb {R}^+\) the function that returns the current electrical consumption of an appliance. In our model, we consider two different kinds of appliances:

State-based appliances are defined as a tuple \(\lbrace \theta _o,\theta _s,st\rbrace \) where \(\theta _o\) and \(\theta _s\) are the electrical consumptions (in \(\mathbb {R}^+\)) when \(e\) is running or in standby mode, and \(st\in \{\mathrm {off}, \mathrm {standby}, \mathrm {on}\}\) is the state of the appliance, modified by individuals in the house during their activities. Heaters, TVs, fridges... can be represented by state-based appliances.

Program-based appliances are defined as a tuple \(<P_e,st>\) where \(P_e\) is a set of operating programs characterised by load curves. Each program \(p\) is a couple \((\tau _p,\phi _p)\) where \(\tau _p\) is the program duration and \(\phi _p:[0,\tau _p]\rightarrow \mathbb {R}^+\) gives the appliance consumption at each time of the program. The status \(st\) of the appliance is then defined by a couple \(st=(p_c, t_c)\) where \(p_c\) is the currently selected program and \(t_c\) is the time since the beginning of this program. Thus, \(power(e) = \phi _{p_c}(t_c)\). Ovens can be represented by this kind of appliances. Note that state-based appliances can be seen as specific cases of program based appliances (with three programs and constant load curves).

All energy consumption profiles comes in our model from real data from the REMODECE project.

2.2 Household Members and Their Behaviours

Individuals represent the household members. Each individual \(i\in \mathcal {I}\) is characterised by its responsibility level \(res_i\) and the set of actions it can perform \(A_i\) (see below).

The responsibility level allows us to distinguish between children, youngsters, adults and elderlies in the simulation (see Sect. 3). Moreover, at each time of the simulation, we note:

  • \(room(i)\in \mathcal {R}\) the room in which the individual is located;

  • \(action(i)\in A_i\) the individual’s current activity;

  • \(B_i\) the individual’s beliefs set (see Sect. 3.1);

  • \(C_i\) the individual’s communications set (see Sect. 3.1);

Tasks. A task \(t\in \mathcal {T}\) represents a generic activity in the house, from which individual actions are derived. A task is a tuple \(<\tau _{min}, \tau _{max}, bene, visi, coll, E_t, T_{pre}>\) where:

  • \(\tau _{min}, \tau _{max}\) the minimum and the maximum task duration;

  • \(bene\in \{alone, collective\}\) describes whether this task, once achieved, can be used by other individuals or not (see preconditions below);

  • \(visi\in \{none, individual, room, house\}\) describes the visibility (by other individuals) during and after the task realisation (see visibility of actions in the following subsection);

  • \(coll\in \{none, allowed, mandatory\}\) describes whether this task cannot, can or must be performed alone or with other individuals.;

  • \( E_t = \{<e,p>\}~|~ e~\in ~E~ \& ~p~\in ~\{e.Pe\}\) the set of appliances used during this task realisation and the associated programs (for program-based appliances);

  • \(T_{pre} \subset \mathcal {T}\) is the set of pre-conditional tasks of \(t\). An individual can perform a given task if and only it has the information that all pre-conditional tasks have been achieved by himself (if \(bene=alone\)) or by others (if \(bene=collective\)). The precondition relation maps into a graph of tasks;

Actions, Rythms and Events. An action \(a\in \mathcal {A}\) represents the instanciation of a task by an individual. We denote \(actor(a)\) the unique \(i\in \mathcal {I}\) such that \(a\in \mathcal {A}_i\).Footnote 2

An action is defined by a tuple \(a=\langle t,w,R_a,st\rangle \) where \(t\in \mathcal {T}\) is the associated task, \(w\in \mathcal {W}\) is the action rhythm (see below), \(R_a\in \mathcal {R}\) is the set of rooms in which this action can be performed and \(st\in {undone,done}\) is the action status, whose dynamics is described in Sect. 3.2. When an action has been achieved (\(st=done\)), we note \(rooms(a)\) the set of rooms in which it has been done.

Rhythms. In order to express habits of humans, the concept of rhythm has been introduced in the meta-model. A rhythm \(w~(w\in W)\) allows to define, for each action, a frequency and preferred periods. The preferred period allows to specify the month, day of the week and the time slots in which an agent may perform a task. To each of these specifications is associated a force indicating if the system should more or less take into account these periods. More formally, a rhythm is a tuple \(\langle per_w, freq_w, var_w, Pp_w \rangle \) where:

  • \(per\in \{day, week, month, year\}\) is the period considered;

  • \(freq\in \mathbb {N}^+\) is the frequency for this period;

    For instance, \(per=day\) and \(freq=2\) means “twice a day”.

  • \(var\in \{weak, medium, strong\}\) is the frequency variability;

  • \(PP\) is a set of preferred sub-periods in the considered period. Each preferred period \(pp_i\) is a tuple with \(\langle [d_1,d_2],strength \rangle \) where \(d_1\) and \(d_2\) define the sub-period, \(strength\in \{weak, medium, imperative\}\) the strength of the preferred period;

For instance, let us consider the task “eating”. We might want to define the default rhythm for this task as being performed three times a day in most situations (\(per=day\), \(freq=3\), \(var=weak\)) with preferred periods \(pp_{1} = <[7:00,9:00], imperative>\), \(pp_2=<[12:00,14:00], weak>\) and \(pp_3=<[19:00,22:00], strong>\), which means that our individual will eventually eat in the morning, possibly at lunch and very probably at dinner. Note that the number of preferred periods does not need to be equal to \(freq\) (in which case some executions of the task will remain completely free over the period).

Events. Events represents exceptional situations (such as holidays, sickness, etc.) during which usual actions cannot be performed. An event \(q\in \mathcal {Q}\) can be defined as a couple \(([d_{s_q},d_{e_q}],W_q\) with \(W_q\) a set of couples \((a,w)\). Concretely, an event associates new rhythms \(w\) to some actions \(a\) for a given time period \([d_{s_q},d_{e_q}]\). For instance, during holidays, the rhythm associated with actions “work” is null.

Collective Aspects. Our meta model was designed so as to integrate the collective aspects in family organisation, such as helping the children, sharing domestic tasks or spending time together during certain activities. The \(coll\) and \(bene\) parameters in tasks play a key role in leading to a cooperation mechanism among individuals, following the simulation model that is presented in the next section. As an illustration, there is a synchronisation mechanism between agents when \(coll=mandatory\) so that individuals wait for each other to begin the task. Similarly, the fact that some tasks with collective benefits can be used by other agents allows to really describe complex cooperation in the house.

3 Simulation of Human Activities

Based on the meta-model presented in the previous section, human activity is simulated in a multi-agent simulator called SMACH. In this simulator, agents correspond to the human individuals in the model and their procedural loop is presented in the next two subsections. The adaptation of this loop over time to the scenario constraints is presented in Subsect. 3.3.

3.1 Multi-agent Model

To each individual \(i\in \mathcal {I}\) corresponds an agent in SMACH. All agents run synchronously in the platform and each step consists into selecting the best current action based on the agent’s beliefs. In this subsection, we present the agent beliefs and the communication model. Next subsection presents the agent’s dynamics.

Beliefs. A belief \(b\) of an individual is a tuple \(b=\langle d,a,s \rangle \) such that \(d\) is the creation date, \(a\in \mathcal {A}\) an action and \(s\in \{\mathrm {undone}, \mathrm {running}, \mathrm {done}\}\) is the believed status of this action. \(<d,a,s>\in B_i\) means that, at time \(d\), individual \(i\) had an information about action \(a\) being in status \(s\) (with \(s=running\) when \(\exists i\in \mathcal {I}\) such that \(action(i)=a\)). This belief is kept in \(i\)’s beliefs base as long as no observation or deduction contradicts it.

The initial beliefs set \(B_i\) of an agent \(i\) is that all actions have the status: undone. We also consider individuals know from the start which one can perform which task. The dynamics of the beliefs set is presented in Sect. 3.2.

Communications. In addition to individual actions, people in the household must communicate to exchange information or request the participation of others in tasks. This is represented using a multi-agent communication approach such as FIPA-ACL [3], based on speech-act theory by Searle [14].

A conversation \(c\in C_i\) is an ordered set of \(n\) messages, \(msg_1,...,msg_n\) with \(msg_i=<d, to, from, perf\in Perf, c>\) where \(d\) is the date of the message, \(to\) and \(from\) are the sender and the receiver of the message, \(perf\) is the message performative and \(c\) its content.

In our model, the main considered performatives are: I do ..., Are you ready to ... ?, What are you doing?, Did you ... ?, Can you ... ? and their following replies No, Yes, Later. The content of the message, when required, is always a single task \(t\in \mathcal {T}\).

The selection of messages, based on the agents beliefs, is presented in the next subsection.

3.2 Agents’ Dynamics

This section first presents how beliefs are maintained in the agents base. Then, we present how actions are selected, based on individual’s preferences, beliefs and communications.

Beliefs Update. Beliefs in the agent’s base \(B_i\) are added or removed at each turn, based on the agent’s perception (either direct perception in the visibility zone of an action, or via a message) and on automatic inferences on actions status and individual’s possible rooms.

More formally, let \(d_0\) be the current time stamp and let us note \(+_i b\) and \(-_i b\) the addition and removal of belief \(b\) in \(B_i\).

We first define the visibility zone of an action \(a\in \mathcal {A}\), depending on its status and task’s visibility, as follows (all cases are exclusive):

  • if \(a.t.visi=none\), then it is not visible: \(visi(a)=\emptyset \);

  • if \(a\) is active (i.e. \(\exists i\in \mathcal {I}\) such that \(action(i)=a\)) and has visibility \(a.t.visi\in \{individual,room\}\), then \(visi(a)=\{room(i)\}_{\forall i | action(i)=a}\);

  • if \(a\) is active and \(a.t.visi=home\), then \(visi(a)=\mathcal {R}\)

  • if \(a\) is finished (i.e. \(a.st=done\)) and \(a\) is visible on individuals (\(a.t.visi=individual)\), then \(visi(a)=room(actor(a))\);

  • if \(a\) is finished and \(a.st.visi\in \{room, home\}\), then \(visi(a)=rooms(a)\);

The agent belief base \(B_i\) is updated when observing actions from their visibility zone:

\(\forall a | room(i)\in visi(a), \not \exists \langle d', a, status(a) \rangle \in B_i \Rightarrow +_i \langle d_0, a, status(a) \rangle \)

Similarly, when receiving a message with performative I do or an answer to a message Did you in a conversation, a new belief is added: \(+_i \langle d_0, a, status(a) \rangle \), with \(a\) the action corresponding to the sender and the task (content) of the message.

Moreover, a coherence mechanism removes all previous incompatible belief:

  • An action can only have one status: \(+_i \langle d_0, a, status(a) \rangle \Rightarrow \forall d'<d_0, -_i \langle d', a, \) \( s'\ne status(a) \rangle \);

  • An agent can only do one action at a time: \(+_i \langle d_0, a, status(a) \rangle \Rightarrow \forall a' | actor(a)\!=actor(a'), -_i \langle d', a', s' \rangle \, \mathrm {and}\, +_i \langle d_0, a', done \rangle \);

  • A task “must” be over after its maximum duration: if \(\exists b\in B_i\) such that \(b.d+b.a.t.\tau _{max} > d_0\), then \(-_i b\) and \(+_i \langle d_0, b.a, done \rangle \);

  • Two actions associated with one single “exclusive” task (\(a_1.t=a_2.t=t\) and \(t.coll=none\)) cannot be active simultaneously: \(-_i \langle d', a_2, running \rangle \, \mathrm {and}\,\) \( +_i \langle d_0, a_2, done \rangle \).

Note that when a previous belief is updated, its status is moved to done (actions that can no longer be performed are considered as achieved by default).

Action Dynamic. The status of an action \(st\) (from undone to done) is actually more complex than a simple done/undone boolean. It is controlled by four internal variables:

  • \(real_{number} \in \mathbb {N^+}\) is the number of realisation already conducted within the current day. The value of \(a.st\in \{done,undone\}\) used in beliefs is directly derived from \(a.real_{number}\ge 1\);

  • \(real_{max} \in \mathbb {N^+}\) is the planned maximum number of realisation for the current day (which directly depends on \(w\));

  • \(\tau \le a.t.\tau _{max}\) is the elapsed duration when \(a\) is running;

  • \(pr\in [-1;1]\) is the action priority.

The priority \(a.pr\) evolves in time (see below, Sect. 3.2) and the agent selects the action with the highest priority amongst all possible actions. An action is possible if and only if all the following criteria are met (see also Table 1):

  • Every precondition tasks have been conducted;

  • All needed appliances are available;

Note that \(a.st\) cannot be computed directly by the agent. On the contrary, the agent will use its belief base to decide whether actions are done or undone and whether they can be performed. In the algorithm in Table 1, \(a.st=x\) means \(\exists <d,a,done>\in B_i\). However, when starting an action, the simulator will check all the actual preconditions and an agent will not be able to perform an action that it believed possible if Table 1 is not checked. In this case, all inconsistent beliefs are removed from the agent base.

Table 1. Action availability conditions.

Interruption and Realisation. The running action of an individual (\(a=action(i)\)), can be interrupted for two reasons: (1) another (possible) action, \(a'\), has a higher priority or (2) \(a\) became impossible. When this occurs, another action will be selected and the status of \(a\) is modified depending on its duration time:

  • If \(a\) has been executed for a duration \(\tau \ge \tau _{min}\), its number of realisation \(a.real_{number}\) is incremented and \(a.\tau \) is reset to 0. The action status \(a.st\) switches do done.

  • If \(a.\tau < \tau _{min}\) The action is put in a “standby mode“: \(a.\tau \) is blocked at its current value, its number of realisation is not increased. For instance, a child is interrupted during homework, (s)he does not loose the benefit of having started working.

Daily Reset. The action’s state evolves over time depending on the individual behaviour and his/her environment. It is reset at midnight except for the sleep action which is reset at noon. In practice, \(a.st\) is reset to \(undone\), \(a.real_{number}\), \(a.\tau \) and \(a.pr\) are reset to 0, and the maximum number of realisation is re-computed depending on the action rhythm if the new day contains a preferential period, \(ppi\), and if some realisation are to be done (\(w.real < w.real_{max}\)).

Action Priority. An action priority takes into account the individual’s internal state: preferenceFootnote 3, commitment to the current action (see Table 2 for details) and the influence of the associated rhythm (\(a.w\), see also Sect. 3.3). In addition to the individual’s internal state, the priority of an action may be influenced by external factors: energy price level (variability of the energy price is summarised as 3 levels), other individuals invitations (through messages) and events influence. Table 2 describes the computation of this raw priority, called \(pr_{raw}\):

\(pr_{raw} = pref + inf\_{real} + inf\_{pp} + inf\_{eng} + inf\_{ener} + inf\_{inci} + inf\_{eve}\)

Table 2. Raw priority external factors.

All the coefficient values have been determined empirically, only their relative order is significant. For instance, the individual preference is much less important than its commitment/lassitude to his/her current action.

In order to allow the representation of sequential behaviour (e.g. leave for work requires to be suit up which requires to have taken a shower), the action priority must also consider the priority of the most urgent depending action, i.e. the maximum of priorities of all actions for which \(a\) is in precondition:

$$pr_{dep} = max_{a.t\in a'.T_{pre}}\{a'.pr\}$$

Thus, the action priority \(a.pr\) is the maximum of these two values:

$$a.pr=max\{a.pr_{raw}, pr_{dep}\}$$

3.3 Behaviour Adaptation

Adaptation is essential in our model as we want to study the possible reactions of a household to variable energy pricing, habits emergence and other single events (e.g. holidays, sickness, etc.). Adaptation is conducted trough re-organisation of the household, i.e. when tasks are made and who does which collective task.

We implemented two adaptation mechanisms during a simulation: (1) everyday life obligations or strong habits are represented through rhythms with imperative frequencies and/or preferred period (PP) and (2) habits may emerge thanks to the controlled mobility of actions.

Everyday Life Strong Constraints. Some everyday life actions may require to be conducted at specific time. Such constraint is controlled through the PP influence (see Table 2): positive during a PP and negative outside of any PP, in order to favour within PP and penalise outside PP realisation respectively. Unfortunately, as in the everyday life, i.e. several actions may compete for a realisation during an overlapping timeslot (e.g. have breakfast and take shower both should be done between 7 to 8am). To lessen such competition between imperative rhythms, each action at the end of the day reevaluates its \(bonus\) and \(penalty\) values according to the following policy:

  • \(bonus\) must remain between \(0\) and \(0.15\);

  • \(penalty\) must remain between \(-0.15\) and \(0\);

  • When the action could not be executed during its PP this day, \(bonus\) is increased \(0.02\);

  • When the action was achieved during its PP for this day, the \(bonus\) is decreased by \(0.01\). This ensures a slow re-organisation capacity.

  • When the action was executed outside a PP, \(bonus\) is increased by \(0.01\);

  • When the system could not reach the target realisation number for this action (i.e., \(real_{number}<real_{max}\)), \(penalty\) is decreased by \(0.02\), since we want to give priority to action achievement over PP constraints.

In other words, actions that could be done during their PP during day \(n\) will be less favoured on their PP in day \(n+1\) and vice-versa. Moreover, actions that missed some executions will be encouraged. Although this policy cannot guarantee the satisfaction of all realisation constraints (which may not be possible at all), it provides modeller more freedom regarding rhythms definition.

Everyday Life Habits. Outside the competitive timeslot, habits may emerge as in everyday life. This is achieved in SMACH via the automatic creation of non-imperative rhythms during simulation. In practice, if an action has been triggered at a given period, this period will be favoured the following days (using a limited memory window)Footnote 4. As a consequence, all actions with no specified PP are allowed to find the most suitable periods for their realisations and to keep them as long they are suitable.

The maximum values for bonus and penalty are lesser than those of imperative PP, so this kind of actions can change its PP more easily. The next section will give an example of such adaptation: in conjunction with the priority penalty during periods with expensive energy, the household organisation is altered.

4 Implementation and Evaluation

The SMACH simulator has been implemented in Java and several example scenarios have been proposed to validate our approach.

We developed our own agent-based simulation platform for the SMACH project because we required a GUI adapted to domain expert (e.g. use of a programming language was out of the question) with an intuitive way to define the model. Such experts also demanded a specific simulation analysis GUI to correlate activities and electricity consumption. This GUI is detailed in the following subsection. We will also discuss two examples that illustrate the ability of the model to express rhythm constraints and, at the same time, and the actions reorganisation process. The first example focuses on action competition whereas the second one demonstrates how is handled household adaptation in the situation of a change in electricity pricing policy.

Fig. 1.
figure 1

SMACH GUI (analysis mode).

4.1 Simulation Analysis GUI

The SMACH simulation analysis GUI shown in Fig. 1 can be detailed as follows. The overall electricity consumption is shown in panel (1). Each color represents a different appliance’s consumption (the central gap correspond to holidays). Panel (1’) presents some global variable (total electricity consumption, associated price and social indicators). Below, panel (2), details individuals activities over the week selected in panel 1 (S45) whereas panels (3 and 3’) presents a zoom for even more details (one rectangle representing one minute). Finally, panel (4) allows to investigates actions actual rhythms (only some actions are selected). Concretely, the horizontal axe represent the passing of days whereas the vertical axe represen the time of the day. For instance, we can see that the work actions (blocks centered horizontally) occurs only during week days.Footnote 5

4.2 Dealing with Competing Actions

Our first example considers a family of 3 with a conflict situation: they have to make diner, have diner and have shower within the 7–9 pm time slot. This time slot imposes a constraint due to the actions durations and the exclusiveness of the have shower action (one at a time). The adaptation process will organise progressively the actions to ease their execution.

Fig. 2.
figure 2

Activity diagram: (a) first week and (b) working day pattern.

In the simulation first week, individuals usually fails to have shower as shown in Fig. 2(a). This diagram represents the individuals’ acitvities as colored bar over time. In particular, the sleep action (strawberry pink) and the work action (brown) can serve as reference points. These actions have regular schedule since the beginning (no adaptation needed) as they have no strong competitors and large preferred periods (around 8 hours). In the conflict timeslot, diner-related actions are occuring whereas have shower is not (only the mother do it on monday). The advantage of diner-related actions is due to two factors: (1) make dinner is a collective benefit task (one individual can cook for 3) and (2) have dinner is a coordinated one which imply strongly incentive invitations.

The conflict is resolved through adaptation of the preferred periods (PP) and results in the following working-day pattern showed in Fig. 2(b). After work, the mother takes her shower while the father and Liz make diner. Once diner is ready, the father or Liz invite the others to have diner. After diner, the father takes a shower followed by Liz.

This example demonstrates how the adaptation process can organize the actions in relation with PP constraints. Although, this organization is not fully stable, due to the continuous adaptations of the PP, it can last several weeks.

4.3 Adaptation of Habits in Relation with a New Pricing

The second example is based on similar parameters but shows how PP modifications work with agents sensitivity to the electricity price. In this example, the simulation spans over 10 weeks from January to March. In order to evaluate the capabilities of adaptation to variable electricity price we make the following hypotheses. In January, the electricity price is fixed to a medium level. The following month, we introduce a variable price policy: high from 6 to 8 pm and low for the rest of day (everyday). Finally, in March, the price is switched back to the original policy (fixed price at medium level).

Several actions, i.e. watch TV, use computer, garden, take shower, play chess, without specified PP are also added to the ones presented in the previous example. Some of them consume electricity and are, thus, sensible to electricity price. The variation of electricity pricing induce actions mobility as show on the long term activity diagrams (Fig. 3). In Fig. 3(a), we focus on the watch TV action (in black). Although, two actions have been added as time landmark: have breakfast (in the bottom) that takes place between 6:30 and 8:15 and have diner (in the top) between 19:30 and 20:30. In this simulation, individuals do watch TV during 4 periods: (1) After breakfast, (2) during the afternoon on week-ends and wednesday (3) before and (4) after diner.

Fig. 3.
figure 3

Long term activity diagram: (a) watch Tv and (b) homework (Color figure online).

In January, individuals mostly watch TV before the diner though a slow change from after diner to after breakfast habit is appearing all along this month. When February comes, with its special pricing, the before diner period is abandoned to the benefit of the after breakfast and after-diner periods due to the energy price penalty. One may notice that a slim black line remains before diner in February. Indeed only 2 agents have completely quit watching TV before diner. The third one continues to do it but for a shorter duration. It means that the other influences, mainly the strength of the before-diner PP, have balanced the energy-price penalty. It is interesting to notice that the effect of the penalty is progressive (it may completely stop or just shorten an action) and vary from one agent to another. In March, when the special pricing is stopped, we can observe a motion from after-breakfast and after-diner periods to the before-diner period as there is no electricity price penalty. Nevertheless, the last two weeks of simulation still bear this penalty influence (as adaptations are a progressive process): the before-diner period happens later and lasts shorter. This evolution demonstrates the capacity both to create and to modify habits thanks to the adaptation of the PP.

Note that, the movement of the watch TV action implies that other action have moved too. On the second long-term diagram (Fig. 3(b)), we track the evolution of the do homework action (red). As the time slot occupied by the watch TV action in January is free in February, the action do homework happens more often during the before-diner period. We observe that the return of an uniform pricing does not push back the do homework action: Energy special pricing effects persists even after its end.

4.4 Adaptation to Unforeseen Event

Our third example is a similar simulation, lasting 10 weeks, considering a family of three (John and Mary and their children Bill). In contrary to the previous examples, we have here a change of schedule. Concretely, Mary starts as unemployed but gets a job on the 5th week (full time from monday to friday).

Once Mary starts to work, she has more activities to conduct but the same amount of time. As our agents have a tendency to stability, she tries to conduct all her previous activities plus the work one. The result of such contradiction is a drop of the completion rate (from 97 to 93 %): Mary starts some action but does not have time to finish them. Such phenomenon may not be realistic we do not study it. The one phenomenon to consider here is the evolution of the household chore reputation before and after the employment of Mary. During the first 4 weeks, Mary perform more than 70 % of them because she has more spare time than John as shown on the Fig. 4(b). Later on, her workload rises thus, a significant part of the housework migrates toward John: Mary having less time to deal with them, those tasks are more likely to be made by John. As we set her working hours longer than his, John then takes the bigger part of the housework, around 60 %. Bill, on his side, can participate a bit to the collective tasks making breakfast and lunch, the only housework tasks possible for him.

Even though a balanced housework sharing is not a general feature of a “real world household”, we believe that the workload allocation ability of our model to be useful as a general trend. Although, when necessary, several possibilities to constrain the sharing are offered to the modeller.

Fig. 4.
figure 4

(a) Completion rate in % by week and (b) Housework tasks sharing in % (Mary in blue, John in green and Bill in yellow) (Color figure online).

4.5 Discussion on Evaluation

These three examples illustrate the ability of the model to express rhythm constraints and, at the same time, and the actions reorganisation process due to various. In particular, any individuals can have too many activities to conduct in a given time period. Some of these activities are strongly constrained, in terms of frequency and time (e.g. work), of synchronisation with other individuals (e.g. dinner together, homework help) whereas others are much less constrained (e.g. various household chore) or even almost not constrained (leisure mostly). These challenges are tackled thanks to the adaptive priority computation and the emergence of habits. Once, the household organisation is in place, our model also provide dynamic organisation mechanisms that allows the household to cope with unforeseen events (e.g. energy tariff change or new activities in our examples).

5 Conclusions and Current Work

In this paper, we presented the model and implementation of SMACH, a multi-agent simulator of human activity. This simulator supports the investigation of activity adaptation and energy consumption evolution in response to different appliances or pricing policies. We could not present all the details of this simulator that results from a 5-years collaboration between the French EDF energy company and AI researchers, but we outlined its main features: accessibility of the model to non-computer specialists and intelligent interface for activity analysis and explanation. SMACH also comprises a machine learning algorithm for automated management of temperature in the house [5] and an interactive modelling system that helps refining the agent’s behaviour [15].

This model has been evaluated in several example scenarios. The three examples presented in this paper illustrated the ability of our model to represent both the constraints and some of the “degrees of freedom” of everyday life. Furthermore, with the help of the two adaptation processes (actions competition and habits emergence), agents are able to explore new organisation and to discover pattern of actions in relation with time constraints and energy price for saving purpose and other unforeseen events. In addition to this evaluation, our simulator is provided with a participatory-simulation user interface (introduced in [6]) that allow to give control of one or several agents to users. Students in our lab “played their own role” in our test scenarios, which allowed us to validate the believability of the model. In most situations, students could not distinguish between artificial agents and human-controlled ones.

We are currently extending the SMACH model to study the activity of groups of families in different environments, over long period of time (one year) and taking into account external temperature and building’s thermodynamical properties. This lead us to reconsider the action rhythm model and to use multi-level agent systems for individuals, families and activities. Our long-term goal is to allow energy companies to be able to investigate incentive to reduce or to have a better prediction of consumption peaks using simulation of human activity.