Jekyll2024-01-18T10:14:19+01:00https://latower.github.io/feed.xmlanna latourpersonal descriptionanna latourMoon milk2023-09-09T00:00:00+02:002023-09-09T00:00:00+02:00https://latower.github.io/posts/2023/09/moonmilk<p>The first conferences I ever attended as a doctorate student were <a href="https://ijcai-17.org/">IJCAI 2017</a> and <a href="https://cp2017.a4cp.org/">CP 2017</a>, which both took place in Melbourne. At the time, I had a position as a visiting researcher at <a href="https://uclouvain.be/en/research-institutes/icteam">ICTEAM</a> at Université catholique de Louvain. After the conference, three fellow doctorate students from UC Louvain and I travelled to Tasmania, for a two-and-a-half-day trip. It resulted in one of my favourite travel stories of all time.</p>
<h2 id="the-plan">The plan</h2>
<p>On our first day in Tasmania, Hélène, Guillaume, John and I had gone on a hike to see a forest and waterfalls. We spent the second day going to Port Arthur, the famous former penal colony that was the site of the 1996 Port Arthur Massacre, which triggered Australia’s ban on guns.</p>
<p>On our third and last day, we would drive from Hobart to Devonport, so we could catch the overnight ferry back to Melbourne from there. The plan was to stop by <a href="https://parks.tas.gov.au/explore-our-parks/mole-creek-karst-national-park">Mole Creek Karst National Park</a> on our way north, so we could visit the <a href="https://www.discovertasmania.com.au/things-to-do/tours/molecreekcaves/marakoopa-cave-great-cathedral-and-glow-worms-tour/">Marakoopa caves</a>, which are famous for their glowworms. Even though it was winter in Australia (all of this happened on 4 September 2017), which means fewer glowworms than in summer, we were still excited to by the prospect of seeing an underground starry sky.</p>
<p>Or, at least, I was. Us girls had pretty much done all the planning and reservation-making and ticket-buying, under the implicit agreement that the boys would not complain about the choices we made and the attractions we visited. The Marakoopa caves had been my suggestion, and I just hoped that they would be exciting enough for the others to be happy with that decision.</p>
<p>Being in charge of logistics, Hélène and I had minutely planned every detail of the trip, including the routes that we would take to get to the different attractions. I had loaded the <code class="language-plaintext highlighter-rouge">.gpx</code> files of the routes into my Garmin eTrex® 10, just in case all phones would fail. As we were feeding our AirBnB’s alpacas (one was called Frankie, and I forgot the other one’s name, which is incredibly irritating) one last time, Hélène looked at the map and noticed that there was an alternative route north, which would take us along some lakes, and only be a little bit slower. She proposed to take that one, instead of the one we had planned. Since seeing some lakes sounded like a good idea, and since she was the driver and therefore had veto rights on the route, we agreed, and we went on our way.</p>
<h2 id="a-harrowing-ride">A harrowing ride</h2>
<p>It turned out that the road that looked like one of the main roads of Tasmania was actually a gravel road through the mountains. Not a huge issue, except that we were also in the middle of a snow storm. It was -4 °C outside, and the gravel road wound its way along the slopes, which were thickly forested with icicle-adorned eucalyptus trees. We could only drive 30 km/h. Any faster, and we were afraid of slipping in a bend in the road or colliding with another car, due to the bad visibility in the snow storm. Any slower, and we were afraid that we would get stuck in the snow and be unable to restart the car. We had been warned that one of the biggest causes of deadly road accidents in Australia were collisions with kangaroos, so that worried me, too (in fact, that evening, we had to carry a dead wallaby off the road because it was blocking our way).</p>
<p>Two days ago, as we picked up our rental car, the rental car company had tried to sell us an upgrade to a bigger car. We had refused, but found that they had given us the bigger car anyway (likely it had been the only one they had, and they had tried to make some money off of us by trying to make us pay extra for it). Now, we were very grateful to have a heavier vehicle, which was less likely to be blown off the mountain road by a gust of wind.</p>
<p>As I looked at the time, my heart sank. There was no way that we were going to make the 1 pm tour through the Marakoopa caves that I had selected for us. I didn’t say anything, though. No point in stressing out our driver.</p>
<h2 id="emily">Emily</h2>
<p><em>Somehow</em>, though, we pulled into the parking lot of the Marakoopa caves visitors centre at 12:58 pm. I ran to the ticket office, while Hélène, Guillaume and John parked the car. I bought the tickets, and we ran to the cave entrance, to find nobody there waiting for us. Did we miss it? Had the guide just gone in without us?</p>
<p>As we looked around and tried to figure out what to do, a young woman arrived, carrying a guitar case and a violin case. Hearing us speak English in three different accents, she introduced herself as “Emily”, and asked who we were and what had brought us to Tasmania. We explained, and as I was waiting for an opportunity to ask her why on earth she was carrying a guitar and a violin, our tour guide arrived, and took Hélène, Guillaume, John, Emily and me into the cave.</p>
<h2 id="thud">Thud!</h2>
<p>It was beautiful. The limestone was reddish and yellowish, and glittered with all the crystals embedded in the stone. We heard the drip drip dripping of stalactites and stalagmites forming around us. We followed an underground river, sometimes diverting away from it, then catching up with smaller streams. Often, we had to squeeze through low or narrow passages, and all the time I wondered why Emily would put herself through all of this with a guitar and a violin.</p>
<p>Eventually, we reached quite a large cavern, through which a wider river flowed. The guide turned off the lights and, in the dark, we saw the small specks of lights that were the brave little glowworms trying to attract a mate. I imagined myself in a friendlier version of the Koom Valley caves that Commander Vimes finds himself in, in Terry Pratchett’s <a href="https://www.goodreads.com/book/show/62530.Thud"><em>Thud!</em></a>.</p>
<h2 id="from-the-ashes">From the ashes</h2>
<p>We moved on to the highlight of the tour: a large cavern, called The Great Cathedral. There, the tour guide dimmed the lights, and Emily took out her violin. She explained that she was a composer, and that she was in the process of composing some music. Some time ago, she had been walking on the beach, in the aftermath of a forest fire, when she saw something move. Somehow, a bird’s nest had survived the fire, and the baby chicks were hatching, shaking the ashes off their tiny little heads.</p>
<p>I don’t remember if she actually said this, but in my mind, Emily told us that a parent bird arrived to attend to the babies. I hope that that’s what happened.</p>
<p>Emily explained that she had composed a piece inspired by that experience, and was now adapting it for performance in The Great Cathedral, specifically. Every day, she would enter the cave with the first tour, and stay there until the last tour of the day would take her back above ground. In between those tours, she would be alone in the Cathedral, working on her music.</p>
<p>Then, the tour guide dimmed the lights, and Emily played the piece for us.</p>
<h2 id="awesome-unexpected-and-free">Awesome, unexpected, and free</h2>
<p>It was magical. Her music was quiet in a way that I always find hard to explain to people. How can music be “quiet”? But it was, and it was beautiful. It reminded me of Arvo Pärt’s work. Later, when I asked her who her favourite composers were, she mentioned him first.</p>
<p>Standing in The Great Cathedral, suddenly getting a private concert, listening to the kind of music that I loved, I tried to experience that moment to the fullest. I was such a lucky person. I had had the opportunity to travel all the way here, and to experience all of this. Happy, happy, happy. As Guillaume later described it, this experience was “awesome, unexpected, and free”.</p>
<h2 id="greetings-from-brussels">Greetings from Brussels</h2>
<p>After Emily’s concert, we left her in the Cathedral, and made our way back to the surface. When I travel, I always like to carry post cards of my hometown. That way, if I meet someone special, I can leave them a little memento of our meeting, and leave them my contact details. Since <a href="https://en.wikipedia.org/wiki/Louvain-la-Neuve">Louvain-la-Neuve</a>, however much I love it, is perhaps not the most photogenic place in Belgium, I had brought postcards of Brussels, instead.</p>
<p>I had one left, of the <a href="https://en.wikipedia.org/wiki/Brussels_Town_Hall">Brabantine gothic Town Hall of Brussels</a>, if I remember correctly, and we decided to write Emily a post card. We thanked her for her concert, and left our contact details, asking her to let us know if/when she would ever release her music. We asked the nice lady at the ticket office to give our post card to Emily.</p>
<p>We never heard back from her.</p>
<h2 id="the-end-of-this-story-for-now">The end of this story (for now)</h2>
<p>Until now. Sort of. I had often wondered what had happened to Emily’s project. Surely, if I were to contact the Marakoopa caves visitors centre, <em>someone</em> would remember an Emily who went down to the caves every day in September 2017 with a guitar and a violin to compose a piece of music? I never contacted them, though.</p>
<p>A few days ago, however, I decided to Google her. Emily turned out to be Emily Sheppard, and that she ended up creating a full album from her time in the caves: <a href="https://emilycloud.bandcamp.com/album/moonmilk">MoonMilk</a>. Based on her description, I wonder if the piece she played for us was an early version of “Aftermath”.</p>
<p>I have purchased her album, but I haven’t listened to it yet. Part of me is afraid that the music will disappoint me, or overwrite my memory of it, precisely because it is such a precious memory of mine. Part of me is also trying to savour the experience, building up my own anticipation for just a little longer. Some music just hits me straight in my soul.</p>
<p>Maybe I will report back, to share what happened when I finally listen to the echos of one my most precious travel experiences ever.</p>
<hr />
<h2 id="ps-some-notes">P.S. Some notes</h2>
<p><em>Moon milk</em> is a white, creamy substance that is found in some limestone caves. See its <a href="https://en.wikipedia.org/wiki/Moonmilk">Wikipedia page</a> for some hypotheses on its origin. Moon milk is also an Ayurvedic drink, <a href="https://www.thenationalnews.com/lifestyle/wellbeing/2023/06/11/what-is-moon-milk-ayurvedic-recipe-goes-viral-for-sleep-promoting-benefits/">which apparently is super “hot” right now</a>, and supposedly helps you sleep.</p>
<p>When I asked our tour guide about the meaning of “marakoopa”, she explained that it likely means “beautiful” in the language that was spoken by the Indigenous people. The European colonisers eliminated not only most of the people, but also their language, so they do not even know that for certain. They do have indications that the caves were of cultural importance to the Indigenous people, but they don’t know much more than that. Even though I had just spent three weeks in Australia, repeatedly hearing these kinds of stories, it still broke my heart. Two days ago, we had touched trees that were old enough to have been around before colonisation. Maybe, when those trees were much smaller, Indigenous people had touched those trees also. Now, nothing but a few words and whispers of their existence were left. It is such a waste. It is such overwhelming injustice.</p>
<p>While writing this blog post, I made a donation to the <a href="https://www.givinglandback.org/">Aboriginal Land Council of Tasmania</a>, who are running a crowdfunding campaign to buy back land, so it can return to the lutruwita/Tasmania’s Aboriginal Community.</p>anna latourThe first conferences I ever attended as a doctorate student were IJCAI 2017 and CP 2017, which both took place in Melbourne. At the time, I had a position as a visiting researcher at ICTEAM at Université catholique de Louvain. After the conference, three fellow doctorate students from UC Louvain and I travelled to Tasmania, for a two-and-a-half-day trip. It resulted in one of my favourite travel stories of all time.Introducing gismo: a tool for finding grouped independent supports2023-06-15T00:00:00+02:002023-06-15T00:00:00+02:00https://latower.github.io/posts/2023/06/gismo<p>My first paper since joining <a href="https://meelgroup.github.io/">Prof. Dr. Kuldeep Meel’s group</a> at the National University of Singapore (NUS) has been accepted to IJCAI 2023! The topic of this paper was a completely new direction for me, and I learned a lot during this project. I had the great privilege to work with Kuldeep and with <a href="https://search.asu.edu/profile/40210">Prof. Dr. Arunabha Sen</a> for Arizona State University (ASU) on this project, and learned a lot from each of them. In this blog post, I will share a bit about the problem that we solve, why it needs solving, and how we solve it, introducing our new tool: <a href="https://github.com/meelgroup/gismo">gismo</a>.</p>
<p>Note: this blog post was written to give intuitions and provide more figures and tables to help understand the material. For a more formal description, please <a href="https://latower.github.io/publication/2023-08-01-Solving-the-Identifying-Code-Set-Problem-with-Grouped-Independent-Support">click here</a> to go to a page with links to the paper, the extended version of the paper, our code, slides, a poster, a short video, and our <code class="language-plaintext highlighter-rouge">.bib</code> file.</p>
<h2 id="exchanging-space-for-time">Exchanging space for time?</h2>
<p>As each constraint programmer knows, the way that you choose to <em>model</em> your problem is at least as important as the way you choose to <em>solve</em> it. However, no matter how good your favourite encoding is, you will inevitably stumble upon a problem whose encoding size is so large, that you cannot store it in your RAM.</p>
<p>If you do not want to give up on your favourite encoding, you will have to give up on the solver that you are using, instead. Maybe you can come up with a streaming algorithm for your problem? Maybe you can let go of some theoretical guarantees?</p>
<p>We wondered what we could achieve by <em>changing the encoding</em>. What if we could come up with an <em>exponentially</em> more succinct encoding than that of the current state of the art? What would we have to give up on, then? Maybe we can gain an exponential reduction in size in exchange for higher theoretical complexity? If so, can we design a solver for that harder problem that is fast <em>in practice</em>? If so, can we use that solver to solve exponentially larger problem instances than the current state of the art?</p>
<p>In this work, we present a case study of an NP-hard problem, the <em>generalised identifying code set (GICS)</em> problem<sup id="fnref:gics" role="doc-noteref"><a href="#fn:gics" class="footnote" rel="footnote">1</a></sup>, which we reduce to a computationally harder problem: that of finding a <em>grouped independent support (GIS)</em> of a Boolean formula (more on that later). We then design and implement a new solver, <em>gismo</em>, for finding the grouped independent support of a Boolean formula, and demonstrate how effective gismo is in solving the GICS problem.</p>
<h2 id="hotel-fire-safety">Hotel fire safety</h2>
<p>Let me explain the <em>generalised identifying code set (GICS)</em><sup id="fnref:gics:1" role="doc-noteref"><a href="#fn:gics" class="footnote" rel="footnote">1</a></sup> problem with an example.</p>
<h3 id="a-famous-hotel">A famous hotel</h3>
<p>I am known among my coworkers as someone who gets a bit agitated about fire safety<sup id="fnref:argument" role="doc-noteref"><a href="#fn:argument" class="footnote" rel="footnote">2</a></sup>.</p>
<p>Right now, I live in Singapore, which is famous for many things, including the impressive Marina Bay Sands hotel (MBS):</p>
<table>
<thead>
<tr>
<th style="text-align: center"><img src="/images/2023/2023-06-01_mbs_merlion_blurred_1024x768.jpg" alt="A view of Marina Bay in Singapore." /></th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center"><em>The famous Marina Bay Sands hotel, with the ArtScience museum on the left, and the symbol of Singapore, the Merlion, in the foreground on the right. Photo by: Anna Latour</em></td>
</tr>
</tbody>
</table>
<h3 id="the-dynamics-of-smoke-detection">The dynamics of smoke detection</h3>
<p>With its 2600 rooms, organised into three 57-story towers, MBS is a little too big for us to use as a toy example, so let’s just use a cosy, imaginary hotel with only 5 rooms, instead:</p>
<p><img src="/images/2023/2023-06-01_5-rooms.png" alt="A hotel with five rooms." class="align-center" /></p>
<p>We imagine that we can place smoke detectors in the rooms. For example, we could place a smoke detector in the blue room, and one in the orange room:</p>
<p><img src="/images/2023/2023-06-01_5-rooms-2-detectors.png" alt="A hotel with five rooms and two detectors" class="align-center" /></p>
<p>These smoke detectors have the property that they can detect smoke from a fire in the same room as they were placed in immediately, but can detect smoke from a fire in an adjacent room with a small time delay. We assume that fires do not have time to spread, and that smoke detectors cannot sense smoke further than one room away.</p>
<p>We imagine that the hotel’s concierge has a dashboard with an indicator light for each smoke detector. Hence, if a fire breaks out in the blue room at time $t_0$, the detector in the blue room immediately detects the smoke, and the indicator light for that detector turns blue at time $t_0$. We assume that a light stays on until we turn it off, so at time $t_1 = t_0 + 1$, the blue light is still on. Here is an example of the pattern that we see when there is a fire in the green room:</p>
<p><img src="/images/2023/2023-06-01_5-rooms-2-detectors-green-on-fire.png" alt="If there is a fire in the green room, and detectors in the blue room and in the orange room, this is the pattern that we see in the lights" class="align-center" /></p>
<h3 id="a-unique-signature">A unique signature</h3>
<p>The pattern that we see above when there is a fire in the green room, is that at $t_0$, when the fire breaks out, none of the detectors detect any smoke. Hence, all lights are off. At time $t_1$, however, the smoke has travelled from the green room to the blue and orange rooms, so the detectors in those rooms detect the smoke, and their corresponding lights on the indicator dashboard turn on. Hence, at time $t_1$, both the blue and the orange light are on.</p>
<p>We call a pattern like this a <em>signature</em><sup id="fnref:ic" role="doc-noteref"><a href="#fn:ic" class="footnote" rel="footnote">3</a></sup>. Ideally, each room should have a unique signature, so we know where to send the firefighters when a fire breaks out. Looking at the figure above, you have probably realised that in this case, we cannot distinguish a fire in the green room from a fire in the red room, because they would both have the same signature.</p>
<p>The GICS problem asks to find out in which rooms we should place a smoke detector, such that all fires are detected, <em>and</em> uniquely identified. The goal is to <em>minimise</em> the number of smoke detectors that we place.</p>
<h3 id="a-graph-as-a-model">A graph as a model</h3>
<p>Let us make this a bit more abstract. In particular: let us model the hotel as a graph $\Gamma := (V, E)$. Each node in $V$ represents a room, and there is an edge between two nodes if their corresponding rooms are adjacent:</p>
<p><img src="/images/2023/2023-06-01_a-graph.png" alt="The hotel modelled as a network on five nodes" class="align-center" /></p>
<p>The GICS problem asks to find a dominating set with specific properties. We will call this set $D$, and it will correspond to the set of rooms in which we place a smoke detector. $D$ is called a <em>generalised identifying code set</em> of a graph $\Gamma := (V,E)$ if each node has a unique signature. The goal is to minimise the cardinality of $D$.</p>
<p>We will model the signatures of the nodes as tuples of sets of nodes: $\sigma_{v} := \langle S_v^0, S_v^1 \rangle$. Here, the first element of the signature, $S_v^0 := \{v\} \cap D$, models the indicator lights that are on at $t_0$ if a fire breaks out in room $v$ at time $t_0$. The second element of the signature, $S_v^1 := N_1^+(v) \cap D$, models the indicator lights that are on at $t_1$. Here, $N_1^+(v) := N_1(v) \cup \{v\}$ is the <em>closed 1-neighbourhood</em> of node $v$.</p>
<h3 id="a-solution">A solution?</h3>
<p>Now, let’s check if our candidate solution, $D := \{B, O\}$ is indeed a solution to the GICS problem on this graph. We can simply write down all the signatures:</p>
<p><img src="/images/2023/2023-06-01_table-bo.png" alt="The signatures for when detectors are placed in the blue room and the orange room" class="align-center" /></p>
<p>Unsurprisingly, we conclude that this $D$ is no solution to our problem. We can add a smoke detector to the purple room, however, and see what happens:</p>
<p><img src="/images/2023/2023-06-01_table-bop.png" alt="The signatures for when detectors are placed in the blue, orange and purple rooms" class="align-center" /></p>
<p>Now, we see that each fire can be uniquely identified. However, the problem was also to minimise the cardinality of $D$. In this case, we can do that by removing the smoke detector from the orange room:</p>
<p><img src="/images/2023/2023-06-01_table-bp.png" alt="The signatures for when detectors are placed in the blue room and the purple room" class="align-center" /></p>
<h3 id="a-generalisation">A generalisation</h3>
<p>In the context of detecting fires in a hotel, it is not unreasonable to assume that there is only ever one fire breaking out at a time. However, other applications of identifying codes include detecting criminals in social networks (<a href="https://doi.org/10.1016/j.socnet.2020.07.009">Basu & Sen, 2021a</a>), and detecting spreaders of misinformation in online networks (<a href="https://doi.org/10.36190/2021.15">Basu & Sen, 2021b</a>). In those contexts, it is reasonable to assume that more than one ‘fault’ occurs in the network at the same time.</p>
<p>We denote the <em>maximum number of simultaneous faults</em> with $k$, and it reflects the maximum number of nodes that can reasonably be expected to ‘fail’ at the same time. In our example: it is the maximum number of rooms that can catch fire at the same time.</p>
<p>In the example above, we had implicitly assumed that $k = 1$. However, we could generalise the concept of closed 1-neighbourhoods and signatures to be defined for <em>sets of nodes</em> rather than <em>individual nodes</em>. In particular, we can define $N_1^+(U) := \bigcup_{v \in U} N_1^+(v)$ as the closed 1-neighbourhood of set of nodes $U \in V$, and update the definition of the signature accordingly: $\sigma_U := \langle S_U^0, S_U^1\rangle$, with $S_U^0 := U \cap D$ and $S_U^1 := N_1^+(U) \cap D$.</p>
<p>We update the table of signatures accordingly:</p>
<p><img src="/images/2023/2023-06-01_table-bp-sets.png" alt="The signatures of sets of rooms for when detectors are placed in the blue room and the purple room" class="align-center" /></p>
<p>Hence, the problem that we study in this work is as follows:</p>
<blockquote>
<p>Given a network $\Gamma := (V,E)$ and a maximum number of simultaneous failures $k$, find a dominating set $D \subseteq V$ such that for each pair of sets $U, W \subseteq V$, it holds that $\sigma_U \neq \sigma_W$, and $| D|$ is minimised.</p>
</blockquote>
<h2 id="current-state-of-the-art">Current state of the art</h2>
<p>The approach taken by the current state of the art is to encode this NP-hard problem as an <em>integer-linear program (ILP)</em>, and to use an off-the-shelf MIP solver like CPLEX to solve it. The problem with this approach is that it does not scale well with the number of nodes in the network $V$ and the maximum number of simultaneous failures $k$.</p>
<p>Intuitively, this approach explicitly encodes that all pairs of rows in the table above have to be different from each other. As a result, the number of linear constraints in the encoding scales exponentially with $k$. Hence, the ILP encoding of the GICS problem has $O(\binom{|V|}{k}^2)$ linear constraints, which grows as $O(|V|^k)$, and hence is exponential in $k$. In this work, we adapted the encoding from (<a href="https://dl.acm.org/doi/abs/10.1145/3397776.3397779">Padhee, Biswas, Pal, Basu and Sen, 2020</a>) to work for $k > 1$.</p>
<p>In this work, we propose to reduce the GICS problem to the computationally harder problem of finding a grouped independent support of a Boolean formula, which I will say a bit more about now.</p>
<h2 id="background-independent-supports">Background: Independent supports</h2>
<p>Let’s first get an intuition for what an independent support is, and then define the concept of a <em>grouped independent support</em>.</p>
<h3 id="independent-support">Independent Support</h3>
<p>Intuitively, the independent support $I$ of a Boolean formula $F(X)$ (<a href="https://dl.acm.org/doi/abs/10.5555/2892753.2892792">Chakraborty, Fremont, Meel, Seshia and Vardi, 2014</a>) is a subset of variables with the special property that for all solution of $F(X)$, the truth values of the variables in $I$ uniquely determine the truth values of the variables in $X - I$. I will illustrate this with an example.</p>
<p>Consider the following Boolean formula on three variables: $F(X) := (x_1 \lor x_2) \leftrightarrow x_3$. Here is a truth table for this formula, which only lists the variable assignments that are solutions to this formula (here, I am using $\sigma: X \mapsto {0,1}$ to indicate an assignment of truth values to variables, rather than a signature of a (set of) node(s)):</p>
<p><img src="/images/2023/2023-06-01_truth-table.png" alt="The truth table of the example formula" class="align-center" /></p>
<p>Let us now look at two different ways of <em>projecting</em> these solutions on subsets of variables:</p>
<p><img src="/images/2023/2023-06-01_truth-table-projected.png" alt="The truth table of the example formula, with solutions projected on two different projection sets." class="align-center" /></p>
<p>In the left table, we see that projected solutions $\sigma_{1 \downarrow S}$ and $\sigma_{2 \downarrow S}$ coincide, <em>e.g.</em>, $\sigma_{1 \downarrow S} = \sigma_{2 \downarrow S}$. Hence, the cardinality of the set of projected solutions is smaller than the cardinality of the set of full solutions. On the other hand, in the right table, we see that none of the projected solutions coincide: all projected solutions are unique. Hence, projecting on projection set $I := \{x_1, x_2\}$ <em>preserves</em> the cardinality of the set of solutions in this example.</p>
<p>This is another way to look at independent supports of Boolean formulae. An independent support $I \subseteq X$ of a Boolean formula $F(X)$ is a subset of variables that <em>preserves</em> the cardinality of the set of solutions under projection. We will use this property later on, in our reduction of the generalised identifying code set problem to the grouped independent support problem.</p>
<h3 id="grouped-independent-support-gis">Grouped Independent Support (GIS)</h3>
<p>In our work, we define a <em>grouped independent support (GIS)</em> as an extension of the vanilla independent support. We assume that we are given not only Boolean formula $F(X)$, but also a <em>partition</em> of $X$, $\mathcal{G}$. We now ask to find a subset of that partition $\mathcal{I} \subseteq \mathcal{G}$ such that $I := \bigcup_{G \in \mathcal{I}} G$ is an independent support of $F(X)$. Now, variables are grouped together in little subsets of variables. A variable can only be added to an independent support together with all variables in its group. Hence, for each group, it holds that either all variables in that group end up in the GIS, or none of them do.</p>
<p>Let’s consider an example, for the same example Boolean formula as above, $F(X) := (x_1 \lor x_2) \leftrightarrow x_3$. Consider the partition $\mathcal{G}_1 := \{\{x_1, x_2\}, \{ x_3 \}\}$. Since $I := \{x_1, x_2\}$ is an independent support of $F(X)$, a <em>grouped</em> independent support of $\langle F(X), \mathcal{G}_1 \rangle$ is $\mathcal{I}_1 := \{\{x_1, x_2\}\}$.</p>
<p>Now consider the following partition: $\mathcal{G}_2 := \{\{x_1\}, \{x_2, x_3\}\}$, instead. Now, since neither $\{x_1\}$, nor $\{x_2, x_3\}$ is an independent support of $F(X)$, the only possible grouped independent support that we can find for $\langle F(X), \mathcal{G}_2 \rangle$, is $\mathcal{I}_2 = \mathcal{G}_2 = \{\{x_1\}, \{x_2, x_3\}\}$, since $\{x_1, x_2, x_3\} = X$ <em>is</em> an independent support of $F(X)$.</p>
<p>We now define the <em>GIS problem</em> as follows:</p>
<blockquote>
<p>Give a Boolean formula $F(X)$ and a partition of the variables $\mathcal{G}$, find a subset $\mathcal{I} \subseteq \mathcal{G}$ such that $I := \bigcup_{G \in \mathcal{I}} G$ is an independent support of $F(X)$, and $| \mathcal{I} |$ is minimised.</p>
</blockquote>
<h2 id="reduction">Reduction</h2>
<p>So how do we reduce the GICS problem to the GIS problem? That’s a great question, I’d love to tell you!<sup id="fnref:elyse" role="doc-noteref"><a href="#fn:elyse" class="footnote" rel="footnote">4</a></sup></p>
<h3 id="the-boolean-formula">The Boolean Formula</h3>
<p>As mentioned above, GICS problems are typically formulated on graphs. Given a graph $\Gamma := (V,E)$, we define two variables for each node $v \in V$. One variable, $x_v$, models the first element of the signatures. The other variable, $y_v$, models the second element. We partition the set of all variables as follows: $\mathcal{G} := \{ G_v := \{x_v, y_v\} \mid v \in V\}$. Hence, in the hotel example problem above, we would have ten variables, partitioned into five groups.</p>
<p>Key to our reduction is that we assume that each room has a smoke detector, and then remove smoke detectors from rooms, until we have the smallest possible set of rooms with smoke detectors, such that each set of fires of cardinality at most $k$ can be uniquely identified.</p>
<p>Assuming that each room contains a smoke detector, variable $x_v$ is an indicator variable that is <em>True</em> if the smoke detector in room $v$ detects smoke at time $t_0$. Note that this means that $x_v$ is essentially an indicator variable that is <em>True</em> if a fire breaks out in room $v$ at $t_0$, and <em>False</em> otherwise. Similarly, $y_v$ is an indicator variable that is <em>True</em> if the smoke detector in room $v$ detects smoke at time $t_1$.</p>
<p>Recall the dynamics of smoke detectors detecting smoke from the same room and from adjacent rooms. We can model these dynamics in the following set of constraints:</p>
\[F_{\text{detection}} := \bigwedge_{v \in V} \left(y_v \leftrightarrow \bigvee_{u \in N_1^+(v)} x_u\right)\]
<p>We must also encode the assumption that at most $k$ fires break out at the same time, and do that with a cardinality constraint:</p>
\[F_{\text{cardinality},k} := \sum_{v \in V} x_v \leq k\]
<p>Hence, we obtain the following formula:</p>
\[F_k (X,Y) := F_{\text{detection}} \land F_{\text{cardinality},k}\]
<p>Note that we need $| V | + \sum_{v \in V} deg(v) = 2 \cdot | E | + | V | = O(| E |)$ material equivalences to encode $F_{\text{detection}}$, and that $F_{\text{cardinality},k}$ can be encoded using $O(k \cdot | V |)$ clauses (<a href="https://doi.org/10.1007/11564751_73">Sinz, 2005</a>).<sup id="fnref:card" role="doc-noteref"><a href="#fn:card" class="footnote" rel="footnote">5</a></sup> Hence, in this encoding, $F_k (X,Y)$ has $O(k \cdot | V | + | E |)$ clauses. Note that our encoding grows linearly with both network size and $k$, whereas the ILP encoding of the former state of the art grows exponentially with $k$.</p>
<h3 id="the-solution-to-the-gics-problem">The Solution to the GICS Problem</h3>
<p>By construction, the above formula has exactly 1 solution for each signature that we need. After all, $F_{\text{detection}}$ is always satisfiable without any additional constraints. However, adding $F_{\text{cardinality},k}$ ensures that the only solutions are those in which at most $k$ variables in $X$ are <em>True</em>, while the others are <em>False</em>. Hence, we have $\sum_{j=0}^k \binom{| V |}{k}$ solutions to $F_k (X,Y)$.</p>
<p>The trick is to find a GIS $\mathcal{I} \subseteq \mathcal{G}$, such that when we project all solutions to $F_k (X,Y)$ on $I := \bigcup_{G \in \mathcal{I}} G$, we preserve the cardinality of the set of projected solutions, and minimise the cardinality of $\mathcal{I}$. Now, each group in $\mathcal{I}$ corresponds to exactly one node, such that the solution to the GICS problem is $D := \{ v \in V \mid G_v \in \mathcal{I}\}$.</p>
<p>Intuitively, we try to find the smallest subset of nodes, such that, when we project the solutions of $F_k (X,Y)$ on the variables associated with those nodes, none of the solutions coincide. By construction, each solution to $F_k (X,Y)$ corresponds to exactly one signature, and vice versa. Hence, if solutions were to coincide, this means that signatures coincide and they are no longer unique.</p>
<p>I know that this all sounds a little bit abstract. I will give an example below, in the explaination of how our new tool, <strong>gismo</strong>, works.</p>
<h2 id="gismo">Gismo</h2>
<p>Having a succinct encoding of a problem is only of any use if you have a tool that can solve the problem when it is encoded in such a more succinct form. Hence, we need a tool that finds a minimised grouped independent support, given a Boolean formula and a partition of its variables. In our work, we introduce such a tool: gismo.</p>
<h3 id="example-run">Example run</h3>
<p>I will give a high-level overview and intuition of what gismo does and how it works, using the hotel smoke detector example problem describe above. For simplicity and brevity, let us assume $k = 1$. We now have the following truth table for $F_1 (X,Y)$:</p>
<p><img src="/images/2023/2023-06-01_truth-table-example-full.png" alt="The truth table for the example problem, with k = 1." class="align-center" /></p>
<p>Gismo is initialised with candidate independent support $\mathcal{I} := \mathcal{G} = \{G_v := \{x_v, y_v\} \mid v \in V\}$. Hence, the corresponding candidate independent support is $I := \bigcup_{v \in V} G_v$. Then, it iterates over the groups $G_v$ in the partition. For each group, it checks for each variable if that variable can be removed from $I$ such that $I$ remains an independent support of $F_k (X,Y)$. If both variables can be removed, then the group is removed from $\mathcal{I}$ and the algorithm moves on to test the next group. If at least one variable needs to be part of $I$ for $I$ to be an independent support of $F_k (X,Y)$, then the group remains an element of $\mathcal{I}$ and is never considered again.</p>
<p>As an example, suppose that gismo starts with group $G_R$, and first tests if $y_R$ can be removed from $I$:</p>
<p><img src="/images/2023/2023-06-01_truth-table-example-yr.png" alt="The truth table for the example problem, with k = 1, projected on all variables except for yR." class="align-center" /></p>
<p>A quick inspection of the truth table above tells us that this is fine. All projected solutions are unique, none of them overlap. Gismo then checks if $x_{\textbf{R}}$ can also be removed from $I$. It turns out that it can, so gismo removes $G_{\textbf{R}}$ from $\mathcal{I}$ and moves on to the next group.</p>
<p>Suppose the next group is $G_{\textbf{O}}$. A quick inspection of the table shows that both $x_O$ and $y_O$ can be removed from $I$, and hence gismo also removes $G_{\textbf{O}}$ from $\mathcal{I}$, such that what we have left is $\mathcal{I} = {G_{\textbf{B}}, G_{\textbf{G}}, G_{\textbf{P}}}$:</p>
<p><img src="/images/2023/2023-06-01_truth-table-example-GR-GO.png" alt="The truth table for the example problem, with k = 1, projected on all variables except for xO, xR, yO and yR." class="align-center" /></p>
<p>Suppose that gismo now decides to process group $G_P$, starting with variable $y_{\textbf{P}}$:</p>
<p><img src="/images/2023/2023-06-01_truth-table-example-GR-GO-yp.png" alt="The truth table for the example problem, with k = 1, projected on all variables except for xO, xR, yO, yR, and yP." class="align-center" /></p>
<p>This is still fine, but as soon as gismo tries to remove $x_{\textbf{P}}$, something is wrong:</p>
<p><img src="/images/2023/2023-06-01_truth-table-example-GR-GO-GP.png" alt="The truth table for the example problem, with k = 1, projected on all variables except for xO, xR, xP, yO, yR, and yP." class="align-center" /></p>
<p>Specifically, we now see that the solutions for $\varnothing$ and $\{\textbf{P}\}$ overlap! Hence, gismo concludes that $G_{\textbf{P}}$ must be part of the GIS, and does <em>not</em> remove it from $\mathcal{I}$, but processes the next variable group.</p>
<p>Eventually, gismo finds that $\mathcal{I} := \{G_{\textbf{B}}, G_{\textbf{P}}\}$ is a GIS of $\langle F_1(X,Y), \mathcal{G}\rangle$, and returns. The resulting projected solutions are the following:</p>
<p><img src="/images/2023/2023-06-01_truth-table-example-I.png" alt="The truth table for the example problem, with k = 1, projected on xB, xP, yB, and yP." class="align-center" /></p>
<p>Notice how all the projected solutions are unique, and notice how they directly encode the signatures that we found for $k = 1$ and $D := \{\textbf{B}, \textbf{P}\}$ in the example problem at the beginning of this post.</p>
<!-- ### Checking if Something is a GIS
A key element of gismo is checking if a candidate GIS is indeed a GIS. Following the existing literature on independent supports, we do this by using Padoa's Theorem ([Padoa, 1901](https://www.pdcnet.org/wcp1/content/wcp1_1901_0003_0309_0365)). In particular, we check if the following formula is satisfiable:
$$
\psi(Z, \hat{Z}, i) := F(Z) \land F(Z \mapsto \hat{Z}) \land \bigwedge_{j = 1}^{m} e_j \rightarrow (z_j \leftrightarrow \hat{z}_j) \land \xi \land z_i \land \neg \hat{z_i}.
$$
There's a lot to unpack here.
In the formula above, $\hat{Z}$ are fresh copies of the Boolean variables $Z$. All that $\bigwedge_{j = 1}^{m} e_j \rightarrow (z_j \leftrightarrow \hat{z}_j)$ says, is that the indicator variable $e_j$ is *True* if variable $z_j$ and its copy $\hat{z}_j$ take the same value. Then, $\xi$ is shorthand for a set of unit clauses that express which $e_j$ are fixed to *True*. Hence, these indicate the subset of variables $z_j$ that we require to be equal to their copies $\hat{z}_j$. We call $\xi$ the set of *assumptions*, and, by abusing notation, we can say that $\xi$ is a subset of variables $\xi \subseteq Z$. Note that $z_i \not\in \xi$. Finally, $z_i \land \neg \hat{z}_i$ expresses that $z_i$ must have the opposite truth value to $\hat{z}_i$.[^same]
Hence, if $\psi(Z, \hat{Z}, i)$ is *satisfiable*, it means that there exists a partial assignment, which assigns truth values to the variables in $\xi \subseteq Z$, such that, if we were to extend that partial assignment to a full assignment that is a *solution* to $F(Z)$, there are (at least) two ways of doing so: in one of the full assignments, $z_i \mapsto 1$, and in the other, $z_i \mapsto 0$.
In gismo, we use $\xi$ to specify which variables are part of the independent support. When testing if a variable is needed in the independent support, we simply define $\xi$ to contain all variables in the group in the current candidate GIS, *except* for those in the variable group that we are testing. -->
<h3 id="discussion">Discussion</h3>
<p>A key element of gismo is checking if a candidate GIS is indeed a GIS. Following the existing literature on independent supports, we do this by using Padoa’s Theorem (<a href="https://www.pdcnet.org/wcp1/content/wcp1_1901_0003_0309_0365">Padoa, 1901</a>). Modulo a lot of details, the way to test if a variable should be part of the independent support is to construct a Boolean formula and check if it is <em>un</em>satisfiable. If it is unsatisfiable, then the variable must be part of the independent support.</p>
<p>Hence, gismo makes at most $2 \cdot | V |$ SAT calls during its execution. We can think of these SAT calls as calls to a co-NP oracle. Consequently, testing if a candidate GIS is indeed a GIS, is computationally more expensive than checking if a candidate GICS is indeed a GICS, since that is polynomial in the size of the encoding (which in itself can be exponential in $k$, as discussed above).</p>
<p>You may also have noticed that, in the current implementation, gismo is a <em>greedy</em> algorithm. Hence, it can only guarantee a <em>subset-minimal</em> GIS.<sup id="fnref:subset" role="doc-noteref"><a href="#fn:subset" class="footnote" rel="footnote">6</a></sup> However, the ILP method for solving GICS as described in the literature guarantees a <em>cardinality-minimal</em> solution. Hence, it is possible that gismo returns a solution with a larger cardinality than the solution returned by the ILP method.</p>
<p>However, there is no good reason why we couldn’t create an implementation of gismo with the same guarantees as given by the former state of the art, other than that we just couldn’t be bothered. Feel free to contact us if you’re bored and want to give it a shot!</p>
<p>Also: we couldn’t be bothered to implement <em>any</em> optimisations. In fact gismo processes the groups in <em>lexicographical order</em>. This is not how you would do it if you wanted gismo to be fast, and this is not how you would do it if you wanted gismo to return a solution with a cardinality that is as small as possible. There are plenty of heuristics that can be used for a speedier execution of the algorithm and a smaller returned solution<sup id="fnref:arjun" role="doc-noteref"><a href="#fn:arjun" class="footnote" rel="footnote">7</a></sup>, but we just never adapted them to the grouped setting. Again: if you’re bored, feel free to fork <a href="https://github.com/meelgroup/gismo/tree/master">our repository</a> and implement some of those heuristics!</p>
<h2 id="results">Results</h2>
<p>Our results can probably be summarised best in the following figure:</p>
<p><img src="/images/2023/2023-06-01_IC24_IC22_total-time-vs-k_ilp-config1_square_ijcai_poster.png" alt="Running time results for our gismo pipeline, compared to the ILP-based pipeline from the previous state of the art." class="align-center" /></p>
<p>This scatter plot shows the running times of the entire encode+solve pipelines for our GIS-based pipeline (vertical axis), compared to the ILP-based pipeline that is based on the former state of the art (SOTA) (based on <a href="https://dl.acm.org/doi/abs/10.1145/3397776.3397779">Padhee, Biswas, Pal, Basu and Sen, 2020</a>), in CPU seconds, for 50 different networks and 9 different values of $k$ (indicated by colour). The network sizes vary from 10 to over 1 million nodes, and 14 to 1.5 million edges, with median degrees varying from 1 to 78. They are real-world networks sourced from the <a href="https://networkrepository.com/">Network Repository</a> (<a href="https://ojs.aaai.org/index.php/AAAI/article/view/9277">Rossi and Ahmed, 2015</a>), and include networks of different types, like social networks and road networks. Any data point below the diagonal indicates that our gismo method solved that (network, $k$) combination faster than the former state of the art. Note that the axes are in log scale. We used a timeout time of 1 hour (3600 seconds), and allowed 4 GB of RAM.</p>
<p>In the above figure, we see that many of the instances ran out of either time or space. The largest instance that could be encoded to CNF using our method, had 227 320 nodes. On the other hand, the largest network that could be encoded into ILP by the former SATO, had 494 nodes. Hence, our method could encode networks that were 460$\times$ larger than the largest network that could be encoded by the state of the art.</p>
<p>The ILP method could also solve that instance within the permitted time (even though it could only encode it for $k=1$). The largest instance solved by our method had 21 363 nodes, and it could be solved for all tested values of $k$. This is a 43$\times$ improvement upon the former state of the art.</p>
<p>All instances that could be solved by the ILP method, could also be solved by our gismo-based method. For those instances that could be solved by both methods, we compared the cardinalities of the returned solutions. We found that for the majority of those instances, the cardinality of the solution computed by the gismo-based method was either equal to, or at most 10% larger than the cardinality of the solution returned by the ILP-based method.</p>
<p>Recall that we made zero efforts to optimise gismo to make it fast or return a small solution, so we think that there is still a lot of room for improvement of these results here. On the other hand, we spent quite some time trying to improve the ILP-based method, managing to increase the size of the largest network it could handle from ~300 nodes to ~500 nodes. However, we always ended up paying either in terms of memory use, or in terms of running time. You can find a link to the extended version of our paper with more details on this <a href="https://latower.github.io/publication/2023-08-01-Solving-the-Identifying-Code-Set-Problem-with-Grouped-Independent-Support">here</a>.</p>
<h2 id="take-aways">Take-aways</h2>
<p>In this work, we demonstrated how we can solve <em>larger problems instances</em> and solve them <em>faster</em>, by reducing the original problem to a <em>computationally harder</em> problem, and developing a solver that was fast and good enough in practice to be of practical use.</p>
<p>Note that this is possible because today’s SAT solvers are so incredibly fast at solving NP-hard problems. This opens the door for us to start working on developing practical tools that solve problems that are higher up the polynomial hierarchy, meaning that we can start to <em>model and solve</em> problems that are higher up the polynomial hierarchy.</p>
<p>Exciting times!</p>
<h2 id="footnotes">Footnotes</h2>
<div class="footnotes" role="doc-endnotes">
<ol>
<li id="fn:gics" role="doc-endnote">
<p>The <em>Identifying Code Set (GIS)</em> problem was originally introduced 25 years ago by <a href="https://ieeexplore.ieee.org/document/661507">Karpovsky, Chakrabarty and Levitin</a>. Despite its age, it is still being studied today. It has applications in, <em>e.g.</em>, identifying criminals in social networks (<a href="https://doi.org/10.1016/j.socnet.2020.07.009">Basu & Sen, 2021a</a>), identifying spreaders of misinformation in online networks (<a href="https://doi.org/10.36190/2021.15">Basu & Sen, 2021b</a>), and even the deployment of satellites (<a href="https://doi.org/10.1145/3288599.3288632">Sen, Horan Goliber, Basu, Zhou and Ghosh, 2019</a>). <a href="#fnref:gics" class="reversefootnote" role="doc-backlink">↩</a> <a href="#fnref:gics:1" class="reversefootnote" role="doc-backlink">↩<sup>2</sup></a></p>
</li>
<li id="fn:argument" role="doc-endnote">
<p>On one memorable occasion in Melbourne, I spent 90 minutes arguing with people at the reception desk of a hostel about the exact meanings of “light off”, “light flashing”, and “light on” in the hostel’s smoke detectors. I have since learned to always carry my own when I travel. <a href="#fnref:argument" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:ic" role="doc-endnote">
<p>In the literature, <em>e.g.</em>, (<a href="https://ieeexplore.ieee.org/document/661507">Karpovsky, Chakrabarty and Levitin, 1993</a>), a signature is also referred to as an <em>identifying code</em>. <a href="#fnref:ic" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:elyse" role="doc-endnote">
<p>Is this a reference to the hilarious Elyse Myers? That’s a great question, <a href="https://youtu.be/m45iukxaDHg?si=4Bpr1CRbxlXwR_GO">I’d love to tell you</a>! <a href="#fnref:elyse" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:card" role="doc-endnote">
<p>CNF encodings of cardinality constraints typically introduce auxiliary variables. I am omitting those from the discussion in this blog post, for the purposes of brevity (ahem), but please see <a href="https://www.ijcai.org/proceedings/2023/0219.pdf">our paper</a> for more details on what role the auxiliary variables play in our approach. <a href="#fnref:card" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:subset" role="doc-endnote">
<p>At least, in theory. Implementation-wise, this claim is a bit more nuanced. Please read <a href="https://www.ijcai.org/proceedings/2023/0219.pdf">our paper</a> for details. <a href="#fnref:subset" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
<li id="fn:arjun" role="doc-endnote">
<p>See, <em>e.g.</em>, <a href="https://github.com/meelgroup/arjun">Arjun</a>. <a href="#fnref:arjun" class="reversefootnote" role="doc-backlink">↩</a></p>
</li>
</ol>
</div>anna latourMy first paper since joining Prof. Dr. Kuldeep Meel’s group at the National University of Singapore (NUS) has been accepted to IJCAI 2023! The topic of this paper was a completely new direction for me, and I learned a lot during this project. I had the great privilege to work with Kuldeep and with Prof. Dr. Arunabha Sen for Arizona State University (ASU) on this project, and learned a lot from each of them. In this blog post, I will share a bit about the problem that we solve, why it needs solving, and how we solve it, introducing our new tool: gismo.Books that helped me through my doctorate2022-11-13T00:00:00+01:002022-11-13T00:00:00+01:00https://latower.github.io/posts/2022/11/book-recommendations<p>Two months ago, I defended my dissertation. I am very grateful to my advisors, my doctorate committee, my opposition committee, and my paranimphs. I thought long and hard about which thank-you presents would be appropriate and of value to them. In the end, I just decided to present them with some wisdom.</p>
<p>So I selected seven of the books I read as a doctorate student, and bought a few copies of each. These books all changed the way I looked at the world, at science, or at myself. Some of them held a mirror up to me. Some of them inspired me to be a better person, or to work to make the world a better place. Some of them made me realise that my responsibilities as a scientist extend further than I previously thought.</p>
<p>Each of them helped me grow as a person, and each of them influenced my journey as a doctorate student and as a scientist in one way or another.</p>
<p>I distributed them randomly among my advisors, committee members, and paranimphs, with the explicit permission to each of them to swap with each other or to give their book to one of their friends, coworkers or students, if they felt that their book didn’t resonate with them and would be more appreciated by someone else.</p>
<p>It seems that by now, all the books that I had to send overseas have arrived at their destinations, and I wanted to share a bit about which books I picked and why.</p>
<p><a href="/images/2022/IMG_5288.jpg" title="Image shows seven books on a dusty pink table cloth. The books are: Lab Girl - A story of trees, science and love, by Hope Jahren; The Immortal Life of Henrietta Lacks, by Rebecca Skloot; Circe, by Madeline Miller; Superior - The Return of Race Science, by Angela Saini; The Guilty Feminist - From our noble goals to our worst hypocrisies, by Deborah Frances-White; Ten Steps to Nanette, by Hannah Gadsby; and Inferior - The True Power of Women and the Science that Shows it, by Angela Saini."><img src="/images/2022/IMG_5288_1024x768.jpg" alt="img caption test" /></a></p>
<h3 id="the-guilty-feminist-by-deborah-frances-white"><a href="https://www.goodreads.com/book/show/39703115-the-guilty-feminist">The Guilty Feminist</a>, by Deborah Frances-White</h3>
<p>While this book in itself is a great read, full of jokes and wisdom, it is mostly a placeholder for the <a href="https://guiltyfeminist.com/">The Guilty Feminist podcast</a>. Early into my doctorate, my advisor Siegfried’s tenant recommended the show to me, and I’ve been a listener ever since. The main message of the podcast is: <em>you don’t have to be perfect to make meaningful change.</em></p>
<p>It’s through this podcast that I dared to call myself a feminist. Deborah, her co-hosts and her guests motivated me to show up, to speak my mind, and to stand up for myself and others. Additionally, this show was a gateway drug (to borrow a phrase from DFW herself) into many modern (feminist) thinkers, with whom I connected and interacted online.</p>
<p>It broadened my world and my thinking. It gave me a lifeline, a place of recognition, a place of growth. It gave me joy and companionship when I felt isolated as a woman in a male-dominated field.</p>
<h3 id="ten-steps-to-nanette-a-memoir-situation-by-hannah-gadsby"><a href="https://www.goodreads.com/book/show/40588534-ten-steps-to-nanette">Ten Steps to Nanette: A Memoir Situation</a>, by Hannah Gadsby</h3>
<p>I hadn’t actually read this book (although I bought myself a copy and am in the middle of it now), but in a way, this is also a placeholder book for me. It stands for <em>Nanette</em> and <em>Douglas</em>, Gadsby’s Netflix Specials, as well as for her speeches (<a href="https://youtu.be/5AUeO5nZNLI">this one</a> and <a href="https://youtu.be/OEPsqFLhHBc">this one</a>, in particular).</p>
<p>I recognise a lot of myself in Gasby’s stories, and she does an incredibly good job at telling them. I’ve used both Nanette and Douglas as tools to communicate truths about myself to other people. She has words for things that I cannot say.</p>
<p>She has so much wisdom to offer. There’s a reason I cite her in the final chapter of <a href="https://hdl.handle.net/1887/3455662">my dissertation</a>.</p>
<h3 id="lab-girl-by-hope-jahren"><a href="https://www.goodreads.com/book/show/25733983-lab-girl">Lab Girl</a>, by Hope Jahren</h3>
<p>I read this book in less than two days. It is a memoir of a female academic, trying to make her way in a male-dominated field. I can relate. It was incredibly painful to read.</p>
<p>It is also a book about tree facts. Those were a joy! For months after reading this book, I infodumped endless tree facts on my friends and family. A great read!</p>
<h3 id="circe-by-madeline-miller"><a href="https://www.goodreads.com/book/show/35959740-circe">Circe</a>, by Madeline Miller</h3>
<p>Unlike <em>Lab Girl</em>, this book took me months to finish, mostly because I could only read about one chapter a week, needing time to process what I’d read.</p>
<p>I was taught Greek myths in school, but through this retelling of the story of Circe, did I finally relate to them in a way that made me understand why these are classics. I guess it also helped that I now have some life experience under my belt. This book really hit me hard.</p>
<p>For extra context about why Miller wrote this book, I can also recommend <a href="https://www.vox.com/podcasts/2020/4/24/21233353/madeline-miller-the-ezra-klein-show-circe-the-song-of-achilles-greek-myth">Ezra Klein’s interview</a> with the author.</p>
<h3 id="inferior-and-superior-by-angela-saini"><a href="https://www.goodreads.com/book/show/31869108-inferior">Inferior</a> and <a href="https://www.goodreads.com/book/show/42042093-superior">Superior</a>, by Angela Saini</h3>
<p>I think every scientist should read these two books by Angela Saini.</p>
<p>The first, <em>Inferior</em>, is about research into the differences between men and women. Saini does a great job at dismantling the flawed logic and assumptions behind research questions, study design and interpretation of data. She’s a great critical thinker and understands the power of the stories we tell ourselves and others.</p>
<p>In <em>Superior</em>, she does the same, but for the research into the difference between “races”. It’s an absolutely terrifying read, illustrating the destructive power of the clout that comes with academic titles.</p>
<p>These books stimulated me to look critically at any piece of research that is about people, or has conclusions that affect people, because they make it very clear how bias affects scientific research.</p>
<h3 id="the-immortal-life-of-henrietta-lacks-by-rebecca-skloot"><a href="https://www.goodreads.com/book/show/6493208-the-immortal-life-of-henrietta-lacks">The Immortal Life of Henrietta Lacks</a>, by Rebecca Skloot</h3>
<p>Before I read this book, all I knew about the story of Henrietta Lacks was: “White doctor takes cells from Black patient without her knowledge or consent, and gets rich and famous.”</p>
<p>This book provided <em>a lot</em> of context, from <em>a lot</em> of different angles. It is about journalism, science, history, and the personal histories of Henrietta and her family. I’m truly amazed by how much the entire world has benefitted from Henrietta’s cells, and mortified by how her family was treated.</p>
<p>This was a fascinating read, and I’m happy that Henrietta’s story has been getting some more attention the last years. Every scientist should read this book.</p>
<p>I hope you, reader, may pick up one or more of these books one day. Please let me know if you do, and let me know what you thought of the book?</p>anna latourTwo months ago, I defended my dissertation. I am very grateful to my advisors, my doctorate committee, my opposition committee, and my paranimphs. I thought long and hard about which thank-you presents would be appropriate and of value to them. In the end, I just decided to present them with some wisdom.It takes a village2022-10-13T00:00:00+02:002022-10-13T00:00:00+02:00https://latower.github.io/posts/2022/10/acknowledgements<p>As a Master student, I once asked Siegfried if I should use ‘‘I’’ or ‘‘we’’ in my thesis.
After all, the words were written by me, but we did the research together.
He explained that, even if you are the sole author of a text, you should always write ‘‘we’’, because no piece of research ever is the product of just one person.
I believed him then, but the experience of being a PhD candidate drove the lesson home, never to be forgotten.
In this blog post, however, I am truly ‘‘I’’, and use it to thank those that make us ‘‘we’’.</p>
<h2 id="my-advisors">My advisors</h2>
<p>First, I thank my advisor, <a href="https://www.info.ucl.ac.be/~snijssen/">Dr. Siegfried Nijssen</a>.
His relentless hard work to help me finish our first paper (and the later ones) was motivating and made me feel like we were a team.
His patient mentorship made me comfortable admitting my mistakes, so he could help me fix them.
He taught me how to answer scientific questions, and helped me overcome adversity and failure.
I treasure his scientific, career-related and personal guidance and support.
Someone once asked me to describe Siegfried. After 30 or so seconds, they said: ‘‘Whoa, you must really like your advisor, because you are literally lost for words to describe him!” That’s accurate.</p>
<p>I also thank my promotor, <a href="https://hoos.ca/">Prof. Dr. Holger H. Hoos</a>, who adopted me into his research group when I was already many months into my doctorate research, and helped me arrange a research visit to the University of Toronto.
Without him, my attitude towards algorithm development and my opinion on how it should be done, would not have been the same.
He created opportunities for me and taught me how to recognise them as such, for which I am very grateful.
In addition, he taught me the one-liner that informs how I look at any scientific research, be it my own or someone else’s: be a benevolent critic.</p>
<p>I thank my other promotor, <a href="https://people.utwente.nl/j.n.kok">Prof. Dr. Joost N. Kok</a>, with whom I started the PhD journey.
He has been an optimistic and trusting mentor to me, which was very comforting.
When it mattered, he was always quick to respond and asked those questions that I had not yet thought of.</p>
<p>I also thank my advisor <a href="https://www.cs.toronto.edu/~fbacchus/">Prof. Dr. Fahiem Bacchus</a> for welcoming me at the University of Toronto and opening my eyes to new avenues of science and to new approaches to problem-solving.</p>
<h2 id="my-committee">My committee</h2>
<p>Next, I thank the members of my doctorate committee, <a href="https://www.catholijnjonker.nl/">Prof. Dr. C.M. Jonker</a>, <a href="https://ml-research.github.io/people/kkersting/">Prof. Dr. K. Kersting</a>, <a href="https://www.universiteitleiden.nl/en/staffmembers/jetty-kleijn">Prof. Dr. H.C.M. Kleijn</a>, <a href="https://www.bayesian.nl/">Prof. Dr. P. Lucas</a>, <a href="https://www.universiteitleiden.nl/en/staffmembers/aske-plaat#tab-1">Prof. Dr. A. Plaat</a>, and <a href="https://research.monash.edu/en/persons/peter-stuckey">Prof. Dr. P. Stuckey</a> for reading my dissertation, deliberating its scientific value, and giving me valuable feedback to improve its contents.</p>
<p>I thank <a href="https://patternsthatmatter.org/">Dr. M. van Leeuwen</a> and <a href="https://www.universiteitleiden.nl/en/staffmembers/marcello-bonsangue#tab-1">Prof. Dr. M. Bonsangue</a> for being my opponents during my defence.</p>
<h2 id="my-funders">My funders</h2>
<p>My work was supported by the <a href="https://www.nwo.nl/en">Netherlands Organisation for Scientific Research (NWO)</a>, and I thank NWO for funding my research.
I thank Google for awarding me a Women Techmaker’s scholarship, and I thank the University of Toronto for funding my research visit to their <a href="https://web.cs.toronto.edu/">Department of Computer Science</a>. I thank the <a href="https://siks.nl/">Netherlands Research School for Information and Knowledge Systems (SIKS)</a> for their financial support of workshops and the printing of my dissertation. Finally, I thank the <a href="https://liacs.leidenuniv.nl/">Leiden Institute of Advanced Computer Science (LIACS)</a> for funding my return to Leiden for my dissertation defence.</p>
<h2 id="my-co-authors">My co-authors</h2>
<p>I am grateful to my co-author <a href="https://behrouz-babaki.github.io/">Dr. Behrouz Babaki</a>, who was the first person who made me feel comfortable talking about my own research, by being genuinely curious in a completely honest and non-intimidating manner.
He is a good coder and a great friend.</p>
<p>I thank my other co-authors, <a href="https://www.bell-labs.com/about/researcher-profiles/antondries/#gref">Dr. Anton Dries</a>, <a href="https://people.cs.kuleuven.be/~angelika.kimmig/">Prof. Dr. Angelika Kimmig</a>, <a href="https://web.cs.ucla.edu/~guyvdb/">Prof. Dr. Guy Van den Broeck</a>, <a href="https://www.linkedin.com/in/danielfokkinga">Daniël Fokkinga</a>, <a href="https://www.universiteitleiden.nl/en/staffmembers/marie-anastacio#tab-1">Marie Anastacio</a> and <a href="https://people.utwente.nl/j.g.rook">Jeroen Rook</a> for all their hard work, their critical questions, their smart insights, our fruitful discussions, and all the jokes that made the pill of late-night writing easier to swallow.</p>
<h2 id="my-colleagues">My colleagues</h2>
<p>I had the great fortune to work at three different universities in three different countries during my time as a doctoral student. In addition, I was lucky to retain a strong connection with KU Leuven, I am very grateful to the many, many coworkers who welcomed me there, joined me for lunch or games, and cheered up my coffee breaks.</p>
<h3 id="at-université-catholique-de-louvain">At Université catholique de Louvain</h3>
<p>I thank my co-workers at the <a href="https://uclouvain.be/en/research-institutes/icteam">Institute of Information and Communication Technologies,
Electronics and Applied Mathematics (ICTEAM)</a> from Universit'e catholique de Louvain for our discussions in the ``cafet’’ and on Slack, and for the very best social activities that academia has to offer:
Gaël Aglin,
François Aubry,
Roberto d’Ambrosio,
Vincent Branders,
Simon Busard,
Antoine Cailliau,
Quentin Cappard,
Guillaume Derval,
Yves Deville,
Fabien Duchêne,
Benoît Duhoux,
Pierre Dupont,
Xavier Gillard,
Olivier Goletti,
Seyed Hossein Haeri,
Mathieu Jadin,
Nicolas Laurent,
Alex Mattenet,
Guillaume Maudoux,
Kim Mens,
Etienne Riviere,
Peter van Roy,
Pierre Schaus,
Michael Saint-Guillain,
Charles Thomas,
Sascha Van Cauwelaert,
Hélène Verhaeghe,</p>
<h3 id="at-leiden-university">At Leiden University</h3>
<p>I thank my co-workers from <a href="https://liacs.leidenuniv.nl/">Leiden Institute of Advanced Computer Science (LIACS)</a> at Leiden University for the games of Codenames that we played in the FooBar, for the afternoon walks, and for all the moral and practical support:
Laurens Arp,
Mitra Baratchi,
Alice Bisschop,
Koen van der Blom,
Hanjo Boekhout,
Abdeljalil el Boujadayni,
Yi Chu,
Daniela Gawehns,
Marcello Gómez Maureira,
Pieter Leyman,
Hugo Manuel Proenca,
Irene Martorelli,
Rens Meerhoff,
Thomas Moerland,
Gilles Ottervanger,
António Pereira Barata,
Bram Renting,
Jan van Rijn,
Lise Stork,
Frank Takes,
Jaco Tetteroo,
Suzan Verberne,
Lieuwe Vinkhuijzen,
Can Wang,
Hao Wang,
Felix Wittleben,
Furong Ye.</p>
<h3 id="at-the-university-of-toronto">At the University of Toronto</h3>
<p>I am grateful to my co-workers from the <a href="https://web.cs.toronto.edu/">Department of Computer Science</a> of the University of Toronto for our lunches, the games of Hanabi we played over Zoom, and the updates on the well-being of office plants:
Toryn Klassen,
Andrew Li,
Sheila McIlraith,
Margarita Paz Castro,
Maayan Shvo,
Rodrigo Toro Icarte.</p>
<h3 id="at-ku-leuven">At KU Leuven</h3>
<p>I thank my former co-workers (and plus-ones) from KU Leuven, for keeping in touch with me and inviting me to lectures, defences and drinks. In particular, I thank Jessa Bekker & Ruben for opening their home to me so many times. I am also grateful to
Hendrick Blockeel,
Sebastijan Dumančić,
Samuel Kolb,
Luc De Raedt, and
Nikolina Šoštari,
for including me in both social and scientific activities.</p>
<!-- This dissertation would have been of lower quality without the feedback from reviewers on earlier presentations of the work that we present here.
They made our arguments sharper, our results more complete, and our science better.
I am grateful to the anonymous reviewers who were our benevolent critics. -->
<h2 id="support-staff">Support staff</h2>
<p>I am grateful to the system administrators who built and maintained the servers on which I ran my experiments, and to the administrative staff who helped me navigate bureaucracy.
I thank the cleaners, concierges, receptionists, security personnel, mess hall employees and others who made my workspaces comfortable and safe.
I thank the following people in particular:
Alexandra Blank,
Anthony Gégo,
Vianney Govers,
Alexa Kodde,
Vanessa Maons,
Jayshri Murli,
Marloes van der Nat,
Ludovic Taffin,
Liselotte van der Woerd.</p>
<h2 id="mentors-and-honoured-enablers">Mentors and honoured enablers</h2>
<p>I am also grateful to the mentors that I found inside and outside academia, who made me stronger, wiser and kinder.
In particular, I thank Irma Ravkic, whose encouragement, support and feedback helped me to open many doors.
I thank fellow Google scholars Ibtihal Ferwana, Alison O’Shea, Hila Peleg, and Christina Zaga, for being such inspiring and supportive forces in my life.
I thank my paranimphs Jessa and Behrouz for standing by my side, now and always.</p>
<h2 id="friends-and-family">Friends and family</h2>
<p>Finally, I thank my friends and family.
I do not mention them by name, because of privacy, but this dissertation would not have existed without their patience and support.
They cheered me on and cheered me up.
They knew me before I did.
They were not scared away by my flaws, but reminded me of my talents.
Not all of them are with us any more, but all of them are with me.
I am grateful to have them in my life.</p>
<p><em>Note: part of this text was published in <a href="https://hdl.handle.net/1887/3455662">my dissertation</a>. Since I had a strict word limit of max 800 words there, I wrote this extended version, such that I could mention more people by name. There are so many people I am grateful to, that I likely have forgotten at least one. My apologies! Please get in touch if you believe that someone is missing!</em></p>anna latourAs a Master student, I once asked Siegfried if I should use ‘‘I’’ or ‘‘we’’ in my thesis. After all, the words were written by me, but we did the research together. He explained that, even if you are the sole author of a text, you should always write ‘‘we’’, because no piece of research ever is the product of just one person. I believed him then, but the experience of being a PhD candidate drove the lesson home, never to be forgotten. In this blog post, however, I am truly ‘‘I’’, and use it to thank those that make us ‘‘we’’.In Memoriam: Fahiem Bacchus2022-09-27T00:00:00+02:002022-09-27T00:00:00+02:00https://latower.github.io/posts/2022/09/in-memoriam-fahiem-bacchus<p>Last weekend, we learned that <a href="https://web.cs.toronto.edu/news-events/news/in-memoriam-fahiem-bacchus">professor Fahiem Bacchus had passed away</a>. I was, and still am absolutely devastated to hear this news.</p>
<p>Fahiem was an amazing scientist, with an enormous influence in the SAT (Boolean satisfiability) community. He has an impressive list of accomplishments (including being the chair of the SAT Association, being a fellow of the Association for Advancement of Artificial Intelligence (AAAI), and being the recipient of Canadian Artificial Intelligence Association’s Lifetime Achievement Award), and we called him “Mr. MaxSAT”. But to me, Fahiem was more than that. Let me share a few personal memories of him.</p>
<h3 id="a-stranger-in-the-night">A stranger in the night</h3>
<p>I met him on a cold and stormy Friday evening (11 August 2017, to be precise), on a pier in St. Kilda, just outside Melbourne, Australia.</p>
<p>I was there with some of my former coworkers from KU Leuven, to watch the penguins come ashore. We’d arrived early, and had asked a local what to expect. He told us to come back in 90 minutes, and then we’d see “thousands of penguins” come up the pier. We went to the pub to warm up a bit, and when we returned 90 minutes later, I was surprised by the lack of people on the pier. Surely, thousands of penguins would attract more of an audience? We looked out at the sea, but it was quite void of any penguin activity.</p>
<p>Then I heard one of the few other freezing people on the pier say to his companions: “If we’re lucky, we might see five or six penguins tonight!”</p>
<p>Sorry. What!?</p>
<p>I turned around and asked the stranger how he knew, and we got to talking. We started out with a discussion of penguin counts, but quite naturally moved on to alien abductions and the apocalypse. It was a pleasant conversation, and after having spotted five penguins, we each went our way.</p>
<p>The next morning I arrived bright and early for my first workshop day of my very first conference: IJCAI 2017. At registration, I bumped into the stranger I had met the night before. I was quite surprised. A little later, I felt rather embarrassed when Fahiem walked on stage for the official opening, and I realised that last night’s stranger was actually the conference chair of IJCAI that year.</p>
<h3 id="a-welcoming-host-and-a-supportive-mentor">A welcoming host and a supportive mentor</h3>
<p>It turned out that Fahiem and I had quite some research interests in common. At the time, I was working in a department where people with whom I had research interests in common were pretty scarce. We kept in touch, one thing led to another, and Fahiem invited me to spend a few months with his group at the University of Toronto.</p>
<p>While at UofT, Fahiem taught me much about how to think about algorithms and complexity. Each meeting we had ended with me feeling a bit dumb because I was made more aware of how much I really didn’t know or understand yet. At the same time, I felt honoured that he took the time to talk to me and teach me. I loved the reading groups that he organised. They changed the way in which I read papers from the SAT community. I am a lot more critical now, understand better what is good and what is just air (even though I clearly still have a lot to learn).</p>
<p>I am so grateful for the time I got to spend with him and with his group in Toronto.</p>
<p>Fahiem was so generous. With his time, with his knowledge, with his humour. He will be missed so much by everyone who knew him.</p>
<figure>
<img align="right" src="/images/2022/2019_10_5_768x1024.JPG" width="350" />
<figcaption align="center"><b>Fahiem with the ADA research group's mascotte: Lego Ada Lovelace. I took this picture on my last day at UofT, mid October 2019.</b></figcaption>
</figure>
<!-- [![img](/images/2022/2019_10_5_768x1024.JPG)](/images/2022/2019_10_5.JPG)
*A picture I took of Fahiem with the ADA research group's mascotte: Lego Ada Lovelace. I took this picture on my last day at UofT, mid October 2019.* -->anna latourLast weekend, we learned that professor Fahiem Bacchus had passed away. I was, and still am absolutely devastated to hear this news.Workshop on Counting and Sampling, 2021 edition2021-07-14T00:00:00+02:002021-07-14T00:00:00+02:00https://latower.github.io/posts/2021/07/workshop-on-counting-and-sampling-2021-edition<p>Just like last year, the <a href="https://mccompetition.org/2021/mcw_program">International Workshop on Counting and Sampling</a> was held online, in conjunction with the <a href="https://www.iiia.csic.es/sat2021/">SAT conference</a>. Just like last year, I was honoured to be invited to submit an extended abstract to this workshop.</p>
<p>We decided to submit <a href="https://mccompetition.org/assets/files/2021/WCS_2021_abstract_8_cachingSchemes.pdf">an update</a> of Jeroen’s work on caching for model counters, based on his master thesis work. It was accepted, so last week Jeroen presented our work.</p>
<p><img src="/images/2021/misc/Screenshot_20210706_190034_anon.png" alt="/images/2021/misc/Screenshot_20210706_190034_anon.png" /></p>
<p>While I was naturally happy to see our work presented, I also very much enjoyed the rest of the program. It has been a while since I’ve seen so many interesting talks in a row. I particularly liked the contributions from <a href="https://tuukkakorhonen.com/">Tuukka Korhonen</a> and <a href="https://www.cs.hmc.edu/~bang/">Lucas Bang</a>.</p>
<p>Jeroen’s slides can be found <a href="https://mccompetition.org/assets/files/2021/WCS_2021_slides_8_cachingSchemes.pdf">here</a>, and a recording of his presentation is also <a href="https://cloudstore.zih.tu-dresden.de/index.php/s/4aRmLwHr5jZrkoi">available online</a>.</p>
<p>Thanks to the organisers! I am looking forward to attending next year’s edition!</p>anna latourJust like last year, the International Workshop on Counting and Sampling was held online, in conjunction with the SAT conference. Just like last year, I was honoured to be invited to submit an extended abstract to this workshop.Defence time for Jeroen2021-06-29T00:00:00+02:002021-06-29T00:00:00+02:00https://latower.github.io/posts/2021/06/defence-time-for-jeroen<p>I am very proud of my student <a href="https://www.linkedin.com/in/jeroen-rook-5a4a992b">Jeroen Rook</a>, who defended his Master thesis today! The title of his presentation was: <em>Caching in Model Counters: A Journey through Space and Time</em>. With a very general audience, Jeroen had his work cut out for him to explain not only his work, but also the basics of propositional model counting.</p>
<p><img src="/images/2021/misc/Screenshot_20210629_114907-anon.png" alt="/images/2021/misc/Screenshot_20210629_114907-anon.png" /></p>
<p>After his presentation, Jeroen defended his work to me and his other advisers, <a href="https://ada.liacs.nl/members/#Holger">Prof. Dr. Holger Hoos</a> and <a href="https://www.info.ucl.ac.be/~snijssen/">Prof. Dr. Siegfried Nijssen</a>. He handled our questions as well as those from the audience quite well, impressing us with his knowledge of the #P complexity class.</p>
<p>A <a href="https://ada.liacs.nl/papers/RooEtAl21.pdf">preliminary version of this work</a> was accepted at the <a href="https://mccompetition.org/2021/mcw_description">Workshop on Counting and Sampling 2021</a>.</p>anna latourI am very proud of my student Jeroen Rook, who defended his Master thesis today! The title of his presentation was: Caching in Model Counters: A Journey through Space and Time. With a very general audience, Jeroen had his work cut out for him to explain not only his work, but also the basics of propositional model counting.I’m a good reviewer!2021-02-05T00:00:00+01:002021-02-05T00:00:00+01:00https://latower.github.io/posts/2021/02/outstanding-reviewer-award<p>Actually, that is not true. I am an <em>outstanding</em> reviewer! Or so say the Association for the Advancement of Artificial Intelligence and the AAAI-21 Program Committee.</p>
<p><a href="/images/2021/misc/IMG_3947.jpg"><img src="/images/2021/misc/IMG_3947-1024x768.jpg" alt="img" /></a></p>
<p>If I’m perfectly honest, I was quite insecure about reviewing for AAAI. It was my very first time as a PC member, and I was not quite sure that I was knowledgeable enough to be able to be sufficiently critical of the contents of a paper and to recognise flaws, especially those related to novelty and obscure theorems that have pages-long proofs.</p>
<p>My colleagues encouraged me, by reminding me that I had read and graded roughly 150 student papers/reports/theses already. For many of those, the feedback I provided led to new and improved versions, and in some cases even to scientific publications. All in all, my colleagues reckoned I was ready.</p>
<p>I then simply did the best I could. I did not receive any feedback from the AAAI-21 Program Committee, so I can only guess why they picked me among the thirteen outstanding PC members out of all those thousands. Just in case you are reading this looking for tips on how to be a good reviewer, here are my recommendations for reviewing anything, be it a scientific paper submitted for publication, or a student report for an (under)graduate course.</p>
<h5 id="be-specific">Be specific</h5>
<p>All good feedback is actionable. For example: instead of saying “Section 4 is unclear”, say “I would find it easier to understand Section 4 if concept X was formally defined.” Note that this also reflects the fact that your feedback is your <em>opinion</em>, not <em>fact</em>. It also indicates what made Section 4 unclear to you, and what would improve Section 4’s clarity for you.</p>
<p>If authors have the opportunity to write a rebuttal, it is helpful if you number your points of critique and your questions. They can then easily use the numbers to refer to and respond to these critiques and questions, saving valuable rebuttal space. Conversely, you can easily find their responses and check if they have addressed all your points.</p>
<p>It is also helpful if you indicate, at least to your fellow reviewers, but maybe also to the authors, what you took into account in your final assessment of the work. Especially if a paper ultimately is rejected, it is good to make explicit that this was, <em>e.g.,</em> because the quality of the experiments was lacking and not because there were too many typos.</p>
<h5 id="be-supportive">Be supportive</h5>
<p>I firmly believe that if I help you thrive, it makes me thrive, too. I want my students to do well, because a) their success reflects well on me and on my university, and b) it’s simply much more fun if they succeed than if they fail.</p>
<p>Similarly, I want the papers at the conferences where I (try to) publish my work to be of high quality. I genuinely tried to come up with feedback that would make the next version of the work I was reviewing better, regardless of whether it would be accepted or not.</p>
<p>Naturally, it does not hurt to also compliment the authors on anything they did particularly well. We all struggle to get our work published, so encouragement and appreciation are always welcome. Furthermore, you will also benefit if people learn what makes a paper interesting or pleasant to read for you, so you can also compliment authors for thoroughly selfish reasons!</p>
<h5 id="be-curious">Be curious</h5>
<p>Reviewing papers is a great opportunity to learn, which can be a great motivator to put some serious effort into it. You get a glimpse into the latest advances in your (or a related) field, which I trust you find just as exciting as I do.</p>
<p>On top of that, you can also learn a lot about other people’s writing process. While reviewing, ask yourself if the language and the structure in the paper works for you. Are there helpful analogies? Are the acronyms clearly explained? Is there a particular framing that you find compelling, or quite the opposite? Take notes and learn!</p>
<h5 id="be-honest">Be honest</h5>
<p>Especially if it is your first time reviewing, you may not be familiar enough with all the material to assess its quality. Try to learn as you go, but also don’t overwork yourself. If you have reached the end of your knowledge, just be open about that to your fellow reviewers and area chair. Maybe they can fill you in, or at least take into account that your knowledge is lacking.</p>
<p>You may also not fully understand the process or the conventions, especially because not all of them are always clearly communicated. It is absolutely okay to indicate to the other reviewers and the area chair that you are unsure if a certain paper is out of scope or if certain conditions (like anonymity) are not met, as long as you indicate how and where you have looked for the answer and what the result was of that search. You may not be the only one who is confused, but you also do not want to cause a paper to be rejected just because something was not communicated clearly.</p>
<h5 id="be-confident">Be confident</h5>
<p>Out of all the people they could have asked to review this paper, they chose you. You are part of the community. You have knowledge. You have ideas. You have a vision. You are qualified to give it your best shot. You have a lot to offer, so show it to them.</p>
<p>You are not the only reviewer and it is okay to disagree with the others. If, during the discussion, you find that somebody makes a good argument, let yourself be pursuaded and admit that you have changed your mind. Being able to change your mind when presented with compelling new information is a strength, not a weakness. If the new information is not compelling to you, it is also perfectly fine to not change your mind. You are entitled to your opinion.</p>
<h5 id="be-a-benevolent-critic">Be a benevolent critic</h5>
<p>This is really the summary of the points above. It is a phrase that prof. Holger Hoos (my PI) likes to use, and I find it very helpful. We also use it in our group, when we give each other feedback on our work. With any feedback I give, I ask myself if I am indeed being critical enough, and not slacking off or shying away from uncomfortable truths. Additionally, I ask if the feedback I give is constructive and respectful, and indeed likely to help the other person succeed, instead of demotivating them or dragging them down.</p>
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">In these days of crazy reviewing load, we are grateful to have exceptional colleagues in our community: <a href="https://twitter.com/thserra?ref_src=twsrc%5Etfw">@thserra</a> <a href="https://twitter.com/aldlatour?ref_src=twsrc%5Etfw">@aldlatour</a> <a href="https://twitter.com/tchakra2?ref_src=twsrc%5Etfw">@tchakra2</a> <a href="https://twitter.com/kr_t?ref_src=twsrc%5Etfw">@kr_t</a> <a href="https://t.co/L3mO1Re7Hn">https://t.co/L3mO1Re7Hn</a></p>— Kuldeep S. Meel (@ksmeel) <a href="https://twitter.com/ksmeel/status/1357354498704900101?ref_src=twsrc%5Etfw">February 4, 2021</a></blockquote>
<script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<p>The award came as a complete surprise to me, if not to others. As one of my colleagues put it: “You cannot do anything without winning an award for it, can you?” Clearly that is untrue, but I am not going to deny that I wasn’t a bit flattered to hear that. Ultimately, it is nice to be appreciated by your community.</p>
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Congratulations to <a href="https://twitter.com/aldlatour?ref_src=twsrc%5Etfw">@aldlatour</a> for being recognized as an outstanding reviewer at <a href="https://twitter.com/hashtag/AAAI2021?src=hash&ref_src=twsrc%5Etfw">#AAAI2021</a>! Well done! <a href="https://t.co/MQOK1sYPBl">https://t.co/MQOK1sYPBl</a></p>— Siegfried Nijssen (@SGRNijssen) <a href="https://twitter.com/SGRNijssen/status/1357358981522612225?ref_src=twsrc%5Etfw">February 4, 2021</a></blockquote>
<script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">While I was away from social media, I missed this great achievement by Anna Latour <a href="https://twitter.com/aldlatour?ref_src=twsrc%5Etfw">@aldlatour</a> : <br />She was one of the 13 outstanding reviewers (out of thousands) in AAAI'21. <a href="https://t.co/MlpAaz4MrZ">https://t.co/MlpAaz4MrZ</a></p>— Behrouz Babaki (@BehrouzBabaki) <a href="https://twitter.com/BehrouzBabaki/status/1430921566741831686?ref_src=twsrc%5Etfw">August 26, 2021</a></blockquote>
<script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>anna latourActually, that is not true. I am an outstanding reviewer! Or so say the Association for the Advancement of Artificial Intelligence and the AAAI-21 Program Committee.Daniël’s graduation2020-03-07T00:00:00+01:002020-03-07T00:00:00+01:00https://latower.github.io/posts/2020/03/daniels-graduation<p>I feel like I just levelled-up as a scientist! Yesterday, the wonderful Daniël Fokkinga graduated with a very nice grade!</p>
<p>He contacted me in 2018, because he was interested in working on a project that I had proposed to help me integrate in the <a href="http://ada.liacs.nl/">ADA research group</a>, after they had ‘adopted’ me as a PhD student. The plan was to apply the paradigm of Programming by Optimisation (PbO) to an algorithm that my co-authors and I had developed for solving Stochastic Constraint Optimisation problems. Marie Anastacio would be my co-supervisor for this project, which was ultimately overseen by Holger Hoos and Siegfried Nijssen. Thus, I would have an opportunity to get acquainted with PbO, and with Marie and Holger, while at the same time helping a student graduate and do some cool, new science.</p>
<p>And that’s exactly what Daniël did! <a href="http://ada.liacs.nl/papers/FokEtAl19.pdf">His work </a>was accepted at the Data Science meets Optimisation workshop held in conjunction with IJCAI 2019 in Macau, and I had the pleasure of seeing him present his work there.</p>
<p>After a successful presentation and defence of his work in November 2019, he had completed all the work that he needed to get his MSc degree in Computer Science. Yesterday, we attended his graduation ceremony, after which we had drinks in the pub opposite of the Academic building in Leiden: Barrera.</p>
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">I am very proud of my first Master student at <a href="https://twitter.com/UniLeiden?ref_src=twsrc%5Etfw">@UniLeiden</a>, Daniël Fokkinga (co-supervised by Anna Louise Latour, Marie Anastacio and Siegfried Nijssen), whose official graduation we celebrated today. 7.92 ... very well done, Daniël - <a href="https://twitter.com/ada_research?ref_src=twsrc%5Etfw">@ada_research</a> will miss you! <a href="https://t.co/qcGCCAJUgR">pic.twitter.com/qcGCCAJUgR</a></p>— Holger Hoos (@HolgerHoos) <a href="https://twitter.com/HolgerHoos/status/1235965744262807552?ref_src=twsrc%5Etfw">March 6, 2020</a></blockquote>
<script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<p>I’m very proud of Daniël (and of myself) for achieving this milestone, and hope his next job will bring him a lot of fulfilment and adventure!</p>anna latourI feel like I just levelled-up as a scientist! Yesterday, the wonderful Daniël Fokkinga graduated with a very nice grade!Daniël defends his work2019-11-28T00:00:00+01:002019-11-28T00:00:00+01:00https://latower.github.io/posts/2019/11/daniel-defends<p>Yesterday was a very special day: Daniël Fokkinga, the master student who I have been supervising together with Marie Anastacio, Holger Hoos and Siegfried Nijssen, presented and defended his master thesis!</p>
<p>It is wild to see this happening only a few years after I defended mine. It feels like it was just such a short time ago that I was in his shoes, and yet I’m at the other side of this interaction now, prepping difficult questions for him to answer.</p>
<p>I was very happy to see that he brought a lot of friends and family, and it was lovely to meet them. Meeting Daniël’s parents and brother made me feel quite special, because he’s been such an important person in my work life for over a year, working with him on an interesting line of research. It was nice to have someone at the institute to talk to about my own research, and very gratifying to see him do so well at his presentation. It made me feel special that I got to share that with the <em>actual</em> important people in his life 🙂</p>
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Very proud of <a href="https://twitter.com/hashtag/ComputerScience?src=hash&ref_src=twsrc%5Etfw">#ComputerScience</a> master student Daniël Fokkinga, who presented the work he did under supervision of <a href="https://twitter.com/HolgerHoos?ref_src=twsrc%5Etfw">@HolgerHoos</a>, @_MIA_An_, <a href="https://twitter.com/SGRNijssen?ref_src=twsrc%5Etfw">@SGRNijssen</a> and me, yesterday <a href="https://twitter.com/LIACS?ref_src=twsrc%5Etfw">@LIACS</a>. He did an excellent job explaining a lot of material!<a href="https://twitter.com/hashtag/MachineLearning?src=hash&ref_src=twsrc%5Etfw">#MachineLearning</a> <a href="https://twitter.com/hashtag/AI?src=hash&ref_src=twsrc%5Etfw">#AI</a> <a href="https://twitter.com/hashtag/ConstraintProgramming?src=hash&ref_src=twsrc%5Etfw">#ConstraintProgramming</a> <a href="https://t.co/nKzy2LWYRD">pic.twitter.com/nKzy2LWYRD</a></p>— Anna (@aldlatour) <a href="https://twitter.com/aldlatour/status/1199627090754252801?ref_src=twsrc%5Etfw">November 27, 2019</a></blockquote>
<script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<p>Congratulations to Daniël for achieving this milestone!</p>anna latourYesterday was a very special day: Daniël Fokkinga, the master student who I have been supervising together with Marie Anastacio, Holger Hoos and Siegfried Nijssen, presented and defended his master thesis!