prompt_front: Now, answer the following question based on the text below, only give me the answer and do not output any other words.

Question: How many experiments were demonstrated to test the capabilities of the controller?

Read the following text and answer briefly.

Context 1: Paper Info

Title: Force Feedback Control For Dexterous Robotic Hands Using Conditional Postural Synergies
Publish Date: Unkown
Author List: Dimitrios Dimou, José Santos-Victor, Plinio Moreno

Figure

Fig  1 Example of modeling the contacts and friction during manipulation 
Fig  2  Schematic representation of the proposed force controller The input is the state (GRASP or RELEASE) and the force readings Based on that the grasp size is adjusted by a value C and is given to the posture mapping function along with the desired grasp type A finger configuration is then generated and commanded to the robot 
Fig  3  Our control algorithm in Python-like pseudocode 
Fig  4  Our first experiment The robot picks up a bottle, transports it, and places down on the desk In the bottom part of the figure, you can see the control signals during this task 
Fig  5 The household objects used in our experiments 
Under the pictures of the execution you can see the signals recorded by the controller: the average normal force applied by all fingers (blue line), the thresholds f threshold high n  (purple dashed line) and f threshold low n (yellow dashed line), the average tangential force (green), and the grasp size used in each time-step (red) The task is divided four stages: 1) (red part) the initial grasp of the object, in this stage the force controller closes the grasp until the applied normal
Fig 6 In the upper row of images, you can see our second experiment The robot picks up the chips can, rotates it 90 degrees, and places back down In the middle row, for our third experiment, the robot picks up the chips can, rotates it 90 degrees, and hands it over to a person In the bottom row, for our forth experiment, the robot picks up a foam brick, rotates it 180 degrees, and hands it over to a person, using a pinch grasp 

abstract

We present a force feedback controller for a dexterous robotic hand equipped with force sensors on its fingertips  Our controller uses the conditional postural synergies framework to generate the grasp postures, i e  the finger configuration of the robot, at each time step based on forces measured on the robot's fingertips 
Using this framework we are able to control the hand during different grasp types using only one variable, the grasp size, which we define as the distance between the tip of the thumb and the index finger  Instead of controlling the finger limbs independently, our controller generates control signals for all the hand joints in a (lowdimensional) shared space (i e 
synergy space)  In addition, our approach is modular, which allows to execute various types of precision grips, by changing the synergy space according to the type of grasp  We show that our controller is able to lift objects of various weights and materials, adjust the grasp configuration during changes in the object's weight, and perform object placements and object handovers 

INTRODUCTION

To perform complex manipulation tasks in unstructured environments, humans use tactile feedback from their fingers  This feedback is provided by tactile afferents located in the skin of the hand  Particularly, for handling small objects with precise movements, the afferents located in the fingertips are used, which have high density and adapt fast to pressure changes  
These afferents provide information about the characteristics of the exerted contact forces, such as the magnitude and the direction  For anthropomorphic robots to be able to perform dexterous tasks similar force feedback signals must be used to alleviate problems arising from uncertainty in measurements, and handle external perturbations 
For example, using open-loop position control to lift a heavy object may fail due to slip without any feedback mechanism to provide tactile information  Previous works have used tactile sensors to design force controllers that use slip prediction to update the desired normal forces applied by the fingertips 
The slip predictors are based on machine learning models such as neural networks and random forests to classify multi-modal signals from a tactile sensor  In all previous works, each finger was separately controlled by an independent force controller  In addition, they required labeled data to train the slip predictors and because each finger is controlled independently is not obvious how to implement different anthropomorphic grasp types 
In this work we develop a force controller that takes as input the force readings of the fingertips and computes the grasp size which is then used along with a grasp type label to generate a grasp posture with the desired characteristics  To avoid slippage the desired normal contact force is calculated to be proportional to the tangential contact forces 
The applied normal force is then controlled using the size of the grasp as a control variable  Larger grasp sizes mean less force is applied to the object  So the grasp size is calculated from the error between the desired normal force and the actual measured normal force  The grasp size is then given to the posture sampler that generates a grasp posture, i e  the finger joint angles 
The posture sampler is modeled with a conditional Variational Auto-Encoder (cVAE) based on the framework proposed in   With this framework we abstract away the low-level control of the fingers and generate hand postures based on high-level properties such as the type and the size of the grasp  So it works as a mapping function that takes as input a low-dimensional vector and the grasp type and size as conditional variables and maps them to a set of joint angles 
We show that with our controller we can control a dexterous robotic hand to lift objects of different weights using three precision grasps  Our controller is also able to compensate and retain a stable grasp during changes in the objects' weight, for example when filling up a cup or emptying it  In addition we show how with the addition of the hand pose information we can use the controller to calculate if the tangential force is due to gravity or due to a support surface and use this information to perform handovers and place down objects on surfaces 
We perform several real-world experiments with a dexterous robotic hand to showcase the capabilities of our controller and support our design choices  To sum up our main contributions are • We develop a controller for a dexterous robotic hand that uses force feedback and the conditional synergies framework to perform dexterous manipulation tasks 
• We show that with our controller we can easily use different precision grasp types, by changing only the grasp type variable which is given to the grasp posture mapping function  • We demonstrate by incorporating information about the world pose of the hand we can use our controller to perform additional tasks such as placing down and handing over objects 
Roboticists have looked for inspiration in humans for developing methods for complex object manipulation   Neuroscientists have studied for a long time the processes that allow humans to use tactile feedback to perform complex manipulation tasks  Humans tend to adjust the grip force according to the object's weight, its friction and they use a safety margin to account for uncertainties  
To gather information about the tactile states they use multiple afferents that are located in the skin of the fingers   There are different afferents in different parts of the hand depending on their usage, e g  fast adapting afferents in the fingertips for precise manipulation  Based on signals from these afferents, humans encode simple contact events into action phases, such as grasping, lifting or releasing, which they combine in order to perform more complex and long-horizon manipulation tasks  
In robotics tactile sensors have been used for object stabilization and slip prediction in a variety of settings  For example, in , a compliant anthropomorphic prosthetic hand was controlled using force sensing to maintain object stability and avoid slip  In , they develop a control approach that uses integrated force and spatial tactile signals to avoid slip with unknown objects in real world settings 
In , , grasp quality metrics are computed based on the tactile feedback from the robots fingertips  In these works, simple two or three fingered grippers were considered for simple grasping tasks  Force control with anthropomorphic robotic hands has also been explored in more recent works  In , they employ three slip prediction methods to estimate when slip starts and based on the force signals at that moment they calculate the friction coefficient value 
Based on the calculated friction coefficient, they design a force controller that independently controls each finger to achieve a desired normal force  The desired normal contact force is set to be proportional to the tangential contact force and a safety margin based on the evidence found in   In , they train a random forest to classify the contact states into the classes: no contact, contact, slip 
Based on this classification signal, when slip is detected they increase the desired normal contact force to avoid it  In they train a recurrent neural network to estimate slip and the object material from the readings of a Biotac sensor  The force controller is increasing the desired normal contact force when slip is detected 
All these works , , use tactile feedback sensors to predict slip  They collect labeled data, on which they train their models  This approach is based on complex and expensive tactile sensors, and the process of collecting data is cumbersome  In addition, the data do not cover all possible hand poses, which would be impractical 
In contrast, in our work we do not rely on slip prediction, we avoid slip by defining a tangential force gain and a safety margin that work for a large number of objects  Furthermore, instead of independently controlling each finger we use a synergistic framework to generate grasp postures, that is conditioned on two variables: the grasp type and the grasp size 
This way, instead of controlling the values of each joint of each finger, we control only the two conditional variables greatly simplifying the control pipeline  This also, gives us the ability to use different grasp types in our manipulation tasks by changing only the grasp type variable  In also a synergistic framework was used to prevent an object from slipping from a humanoid hand, but they modeled only one synergy for a tripod grasp and they used the forces on the robotic arm as feedback, while we use force feedback from the fingertips 
Our control algorithm could also be applied to different hands as it does not depend on the hands configuration  Finally, in previous approaches only lifting tasks had been considered  In our work we demonstrate that our approach can be used to perform more complex tasks, such as placing objects on surfaces and performing handovers, which was not done in previous works 
Our goal in this work is to design a control algorithm for an anthropomorphic robotic hand to perform dexterous manipulation skills such as lifting and placing down objects  Our control algorithm will use tactile feedback from the force sensors on the fingertips of the hand to decide the forces that need to be applied to the object in each step of the task 
Given the desired forces to be applied, the size of the grasp will be computed  Given the grasp size and a desired grasp type, the posture generator will generate a grasp posture, i e  the hand configuration, such that the force constraints are satisfied  To model the contacts and friction we use Coulombs' law, which states that in order to avoid slip, the normal contact force f n to the contact surface of an object, times the fiction coefficient µ, has to be larger than the tangential force f t :
µf n ≥ f t You can see an example in Figure , where an object is pressed against a wall by an applied normal force f n , and we have the tangential force f t = mg due to gravity  In order for the object to remain stable we need to apply a normal force: where µ is the friction coefficient between the object and the wall 
In the case of a dexterous hand manipulating an object, we want the normal forces applied by all fingers to be greater than the tangential force divided by the friction coefficient of the materials of the object and the fingertip  Since it is hard to accurately compute the friction coefficient between all possible object materials previous works have used multi-modal tactile sensors like the BioTac sensor, which provides information about the pressure, skin deformation, and temperature, to predict slip and based on that signal to increase the applied normal force 
In our work we use the FTS3 sensors which is a low-cost sensor that measures the 3D force applied in each fingertip  In addition, previous works gathered labeled datasets in order to train their slip prediction models which is time-consuming and limits the possible orientations of the hand, because gathering labeled data for all possible orientations is impractical 
To overcome this we experimentally selected the parameters that determine the value of the applied normal force such that we avoid slip for all objects in our dataset, from the lightest to the heaviest  In order to guarantee contact between the fingertip and the object, in the beginning of the grasping phase, we use an offset f of f set n as the minimum normal force applied by each finger 
In they also suggest that humans use an additional safety margin which is proportional to the tangential force, f margin n ∝ f t   So the final desired normal contact force becomes: where G is the gain that includes the friction coefficient and the additional safety margin  To alleviate the effects of noise in the sensors, the running average of the measured normal force f n and tangential force f t is used, as a low pass filter 
So for each force measurement we have the following relation: where α ∈ (0, 1) is a parameter that determines how much new measurements affect the value, and is experimentally selected  Given the measured normal force f n from the fingertip sensors we can compute the error f err n = f des n − f n   We use this error signal to control the grasp size variable g size , that we use as a conditional variable in our posture mapping function 
The grasp size represents the distance between the thumb and the index finger in a grasp posture  So a smaller grasp size will result in a tighter grasp and greater normal force applied to the surface of the object  We use a linear controller for the grasp size variable that is implemented as follows: where K is a parameter that controls the rate of decrease of the grasp size, and is experimentally selected 
So when the error between the desired normal force and the actual normal force is large the grasp size decreases so tighter grasp postures are generated in order to apply more normal force  In practice, in order to avoid oscillations in the grasp size we use the desired normal force as a high threshold that we want the measured normal force to be below:
If the normal force is below that threshold the grasp size does not change even if there are small oscillations in the measured tangential and normal forces  Also, in order to avoid the hand applying too much force that damages the hardware or the object we use a low threshold, that is: where w threshold is the width of the threshold in mN  
If the measured normal force is below the grasp size increases in order to apply less force  So the final grasp size variable for grasping is calculated as follows: where This is similar to the deadband control method , where instead of having a fixed reference point, an operating range is set  If the response is in this range, the controller does not exert any correction 
In our case, the operating range changes according to the force signals from the robot's fingertips  The grasp posture mapping function is based on the conditional postural synergies model presented in   It uses a conditional Variational Auto-Encoder model to generate grasps postures conditioned on additional variables such as the grasp size 
In this work we augment this model to also generate grasp postures conditioned on the grasp type  The model is trained on a set of labeled grasp samples acquired by teleoperating a robotic hand using a data-glove  Using this model we are able to abstract away the low-level control of each joint of each finger and generate grasps based on more general characteristics such as the type and the size of the grasp 
In this way we can control all the fingers jointly by a single value, the grasp size, thus greatly reducing the control parameters  In addition we are able to use the same control algorithm for different precision grasp types, by changing the grasp type conditional variable  Finally, we can modify our controller to release objects instead of grasping them 
Given the pose of the hand in the world coordinate frame, which we can acquire from the robotic arm that is attached to, we can use the forward kinematics of the hand to compute the poses of each fingertip  Then using the force readings of each fingertip we can calculate the global direction of the net tangential force 
If the angle between the direction of the net tangential force and the direction of gravity is less than 90 degrees, i e  the net tangential force's direction is towards the ground, we assume that the tangential force is due to gravity pulling the object, so the force controller tries to grasp it  If the angle is more than 90 degrees, i e  the net tangential force's direction is upward, it means that something is pushing (or pulling) the object upward, in which case we assume that the object is touching on a support surface or someone is pulling the object so the controller increases the grasp size given to the posture mapping function proportionally to the normal force measured thus slowly releasing the object 
Opening the grasp is done by controlling the grasp size variable as follows: That way we can place objects on surfaces but also perform robot to human handovers, where the robot holds the object and the human grasps the object and slightly pushes or pulls it up, signaling to the robot that there is a support surface 
The robot then slowly releases the object by opening its grasp  We showcase these scenarios in the experiments' section  Based on these observations, we present our force controller in Figure   The hand starts in an open pre-grasp position, a latent point is sampled from the prior distribution of the posture mapping function, and given the desired grasp type and the grasp size a grasp posture, i e  the joint angles of the fingers, is sampled 
The initial grasp size is set to the maximum value, and when the force controller comes into effect and depending on the state of the system and the forces on the fingertips grasp size changes by some value C, according to equations 1,2, until the desired normal force is achieved  To choose between grasping or releasing an object we use a finite state machine formulation 
When the hand reaches the desired grasp pose, which we assume is provided, the GRASP state is activated, in which the controller tries to grasp the object  When the controller detects that the tangential force applied to the object is coming from a support surface the state changes to the RELEASE state, in which the controller releases the object by opening the grasp 
You can see the full algorithm in Python-like pseudocode in Figure   To summarize, the advantages of our controller compared with previous approaches are threefold: 1) instead of controlling each joint of each finger of the hand we use only two variables, the grasp size and the grasp type, which allows us to perform multiple grasp types by changing only one variable while the grasp size variable is common among all grasp types, that greatly reduces the complexity of the control process compared to independently controlling a 21 DoF hand to perform different grasp types, 2) we do not rely on slip prediction for controlling the desired normal force, which involves gathering labeled data and works only for the hand poses in the training dataset, and 3) we can use our controller to also release objects instead of only grasping them 

Experimental Set-up 

For our experiments we used the Seed Robotics RH8D Hand , which is a robotic hand with 7 DoFs  The hand is equipped with the FTS-3 force sensors in each fingertip, which are high resolution tactile sensors that provide the 3D force applied in each fingertip  The sensor provides data at a rate of 50Hz  For the experiments the hand was mounted on a Kinova Gen3 7DoF robot 
To train the posture mapping function we used the CyberGlove to teleoperate the hand and collect 468 grasps belonging to three precision grasp  types: tripod, pinch, lateral tripod  The architecture of the cVAE model was the same as in , with the addition of the grasp type as a conditional variable, which was one-hot encoded 
We used 10 household objects shown in Figure   With the heaviest object weighing 380g and the lightest 1g  During the experiments the trajectories of the arm were prerecorded, while the hand was controlled online by our control algorithm 

Parameter tuning 

To select the values of the parameters in our controllers we conducted preliminary experiments where we tested lifting and releasing several objects, with different physical properties  To select the value of the normal offset force f of f set n , we used an empty plastic cup as our test object, and we choose a value such that the fingers do not deform the cup 
The final value of the parameter was set to -50 mN  To select the values of the gain G and the rate of decrease K, of the grasp size, we experimented with the heaviest object in our dataset, which is the mustard bottle and weighs 380g  The gain G was set to 2 0 such that the desired normal force would be enough to hold the object 
The rate of change of the grasp size was set to 100 0, based on the operating frequency of the force sensor and the range of values of the tangential force  For the tangential force averaging process we used a parameter value of α t = 0 7, because we want the controller to be sensitive to fast changes in its value, that can arise for example during lifting an object 
For the normal force averaging process we used a parameter value of α n = 0 5, as we do not want it to be affected by noise that could make the controller overconfident 

Experiments 

To explore the capabilities of our controller, we demonstrate five experiments of increasing complexity: 1) we picked and placed a bottle using a tripod grasp, 2) we picked, rotated and placed a chips can on a box using a tripod grasp, 3) we picked, rotated and handed over the chips can to a person using a tripod grasp, 4) we picked, rotated and handed over a brown foam brick to a person using a pinch grasp, 5) a person handed over a plastic cup to the robot, filled it with coins to increase its weight, and the robot then handed it back to the person using a tripod grasp 
You can see the execution of the first experiment in  In the middle row, for our third experiment, the robot picks up the chips can, rotates it 90 degrees, and hands it over to a person  In the bottom row, for our forth experiment, the robot picks up a foam brick, rotates it 180 degrees, and hands it over to a person, using a pinch grasp 
Fig    In our fifth experiment, a person hands over an empty plastic cup to the robot, throws coins in it to increase its weight while the robot adjusts its grip to stabilize the object, and then hand overs the cup back to the person  force is below the offset f of f set n , 2) (green part) the robot lifts the object, as it tries to lift the tangential force increases, increasing the threshold, so the grasp size decreases to apply more normal force, 3) (orange part) the robot transports the object, you can see, in point A in the Figure, a perturbation in the tangential force when the robot begins to move, the controller responds by decreasing the grasp thus stabilizing the object, and 4) (blue part) the robot enters the releasing phase, where it lowers the arm until it detects that the tangential force is due to a support surface, then it stops lowering the arm and increases the grasp size slowly releasing the object 
In point B in the Figure, you can see that there is noise in the tangential force, due to the arm moving to place the object on the table, that is also reflected in the desired normal force  Because we use the desired normal force as a threshold and not as a reference signal this noise is not manifested in the control of the grasp size 
You can see the execution of the second experiment in the upper part of Figure   This experiment demonstrates the ability of the controller to handle arbitrary hand poses  The experiment is divided in four parts: 1) the robot enters the GRASP phase and the force controller generates grasps to achieve a normal contact force below the f of f set n threshold, 2) the robot lifts the object and adjusts the grasp size to avoid the object falling, 3) the hand rotates to place the chips can on the horizontal position, and 4) the robot enters the RELEASE phase, and the arm lowers until the object touches the box, when the hand detects the supporting surface, it starts to slowly release the object 
You can see the execution of the third experiment in the middle part of Figure   This experiment demonstrates the ability of the controller to perform robot to human handovers  The experiment is divided in four parts: 1) the robot enters the GRASP phase and the force controller generates grasps to achieve a normal contact force below the f of f set n threshold, 2) the robot lifts the object and adjusts the grasp size to avoid the object falling, 3) the hand rotates to place the chips can on the vertical position, and 4) the robot enters the RELEASE phase, the arm stays still, the human grasps the object from the bottom and slightly pushes it up, the hand then detects that there is a supporting surface and starts to slowly release the object 
You can see the execution of the fourth experiment in the bottom part of Figure   This experiment is similar to previous one, but the grasp type that the robot uses is a pinch grasp, that involves only the thumb and the index finger  To perform this we only had to alter the grasp type conditional variable that was given to the posture mapping function 
You can see the execution of the fifth experiment in the bottom part of Figure   In the first part (blue) of the experiment the robot closes its grasp, by reducing the grasp size, until the normal force is below the force offset  In the next three parts (pink, green, red) the person throws coins in the cup to increase its weight 
You can see in the signal plots that each time coins are added the tangential force decreases so the normal force threshold decreases too  The grasp sizes then decreases as well in order to apply more normal force  This experiment demonstrates the ability of the controller to handle perturbations in the weight of the object during grasping 

CONCLUSION

In summary, we presented a controller that uses force feedback integrated with conditional synergies to control a dexterous robotic hand to grasp and release objects  We demonstrated that our controller can lift objects of different weights and materials while avoiding slip, react online when the weight of the object changes, place them down on surfaces, and hand them over to humans 
In addition, the control architecture is modular, so the synergy grasp mapping component can be easily changed in order to control several precision grasp types  However, our experiments also revealed various limitations of our controller  For example our method fails to stabilize the object when rotational slip occurs 
In addition hardware limitations such as, slow update rates and noise in the force measurements can create problems that result in the object falling  In future work we plan to incorporate additional sensing modalities, such as vision to alleviate some of these issues 
Context 2: A Homily from Easter Sunday, 2017 
Early on the first day of the week, while it was still dark, Mary Magdalene came to the tomb and saw that the stone had been removed from the tomb  But Mary stood weeping outside the tomb  As she wept, she bent over to look[a] into the tomb; and she saw two angels in white, sitting where the body of Jesus had been lying, one at the head and the other at the feet  They said to her, “Woman, why are you weeping?” She said to them, “They have taken away my Lord, and I do not know where they have laid him ” When she had said this, she turned around and saw Jesus standing there, but she did not know that it was Jesus  Jesus said to her, “Woman, why are you weeping? Whom are you looking for?” Supposing him to be the gardener, she said to him, “Sir, if you have carried him away, tell me where you have laid him, and I will take him away ” Jesus said to her, “Mary!” She turned and said to him in Hebrew,[b] “Rabbouni!” (which means Teacher)  Jesus said to her, “Do not hold on to me, because I have not yet ascended to the Father  But go to my brothers and say to them, ‘I am ascending to my Father and your Father, to my God and your God ’” Mary Magdalene went and announced to the disciples, “I have seen the Lord”; and she told them that he had said these things to her 
Early in the morning, while it was still dark, Mary wept in the throws of grief  Early in the morning, while it was still dark, Mary dragged herself out of bed after a sleepless night and walked to the tomb in a kind of trance  Early in the morning, while it was still dark, Mary cried—scared, confused, alone  Early in the morning, while it was still dark, Mary thought that the powers of death had the last Word  Early in the morning, while it was still dark, Mary heard a voice in the darkness calling her name—Mary 
Throughout this Lenten season, we’ve examined the ways that the powers and principalities hold us captive—how they push us towards securing our own survival, dominating others, using God for our own agenda  We’ve seen how in Jesus’ ministry, he’s constantly in resistance mode—exposing the powers for what they really are and envisioning an alternative way of living in the world  He describes this way as “the kingdom of God,” the living water we drink so we never thirst again, the light of the world  Jesus invites those who follow him into similar acts of resistance—to free us from the power money has on us by giving it away, to choose to see ourselves as Jesus sees us, resisting the shame that says I’m not enough, to practice Sabbath that contradicts productivity, to untie the grave clothes of someone who’s hands and feet are still tied in the trappings of death 
But all Jesus’ acts of resistance had a cost  All of the times he just wouldn’t shut up, all of the crowds he attracted because he actually noticed those who were normally ignored, the powers finally said enough is enough and put an end to his resistance the only way they could guarantee silence and division—by nailing him to a tree 
Just then, she turned and saw a man the shadow of a man behind her; a man she assumed was the gardener, his face unfamiliar in the darkness  He repeated the question—“Woman, why are you crying?” Thinking that perhaps he knew what happened or worse, that he was a culprit, she begged, “Sir if you have carried him away, tell me where you have put him and I will get him ” But Jesus interrupted her pleading, interrupted her desperation, and called her by name from the darkness, Mary 
Mary  He calls her name  Her name  The name that captures the particularity of her life  To the gardener, she would just be the crying woman  At other points in her life, she was the possessed woman, the woman who wasn’t enough, the woman on the outside of the group  Never nameless—but still unnamed  Never not Mary, but still, not known 
Early in the morning, while it was still dark, God defeated the powers and principalities in the ultimate act of resistance—resurrection  The grave could not contain the Lord  Even death wasn’t enough 
In the resurrection, God defeats the powers of death and shows that it’s God who has the final Word  Nothing, not even death, can keep us from being fully known by God  The powers try to have the final say on our names, our identities, the markers by which we measure ourselves, the systems that hold people captive or keep people in oppression  But Jesus calls us out of the darkness by name 
On this Easter Sunday, we hear our Risen Lord calling our names from the darkness—Jesus, the resurrected one, the name above all names, the great I am, the Prince of Peace, the alpha and omega, the light of the world  The risen Lord has spoken 
This is the name unto which you were baptized  As you come forward and mark the sign of the cross on your forehead today, hear Jesus speaking your name from the darkness and drawing you into the light 
From our worship service on the fifth Sunday of Lent, April 2, 2017 
“Is the Lord really with us or not?” “Is the Lord really with us or not?” Why did you bring us all the way from Egypt to let us die of thirst in this desert? At least in Egypt, we had water  At least in Egypt, we weren’t so thirsty  At least in Egypt, we knew what tomorrow would hold  At least in Egypt, we weren’t so thirsty 
But no, that’s not the story they give us  They are hard on their ancestors  They tell how it is  The elders who sat and wrote down these stories understood something about our bodies, who we are and how we work  After all the generations these stories passed through, they tell the truth about how quickly we forget, about how quickly we complain, about how quickly we grow thirsty, about how much we need water 
It doesn’t take long, does it  By the end of this sermon, I will no doubt feel thirsty, not from walking on hard dusty ground in the heat of the day, but just from speaking with you  Most of us wake up in the morning needing a drink  Our bodies depend on water  We cannot live without it  Thirst, then, doesn’t happen only one time  When the Israelites panicked that they had no water, they weren’t only thinking of the present moment  They knew what was coming! We need water to live! Without water, we will die! Even if we have water for today, we will need water again tomorrow! We can drink until we are satisfied, only to know that we will eventually be thirsty for more 
The gospel of John tells a story about a woman who gave up on this question all together  She moved beyond wondering if the Lord was really with her, so confident God had forgotten her that she gave up wondering at all  Born a Samaritan into a world that valued other bodies as better than her body: male bodies, Jewish bodies, even married bodies  Even after encountering Jesus, she still leaves their conversation without a name, numbered as one of many, simply called, “Samaritan woman ” She too, was thirsty  Most believe that her shame led her to drink water in the heat of the day, when no one else would be at the rocky well, when she could get a drink alone, without experiencing the stigma and stares of others  When she came to get a drink, Jesus was also at the well, thirsty himself and in need of rest and water from the long journey through Samaria 
The Israelites complaint for water sends Moses to the only one who can satisfy, the only one who can meet this need  Moses turns to God, “What should I do with these people? How can I satisfy their thirst? I’ve looked around, I’ve checked far and wide, turned the house upsidedown, looked under the seats of the car, at the bottle of every bottle, I’ve even looked for dew on the ground and under the lids of jars and there is no water to be found  Where do we go for water? Is the Lord really with us or not?
The Israelites who wrote down this story and allowed the ancestors to look like desperate complainers who doubted God and tested God, they were onto something  They knew that we are thirsty people  Jesus knew also  All who are thirsty, come! All who believe in me, drink this living water! We are desperate to feel God’s presence, to be bathed in the water of the Spirit, to know that this is not all there is, to feel a sense of belonging to the One who is greater than I  We can only make it so long in the desert, so long wandering from one trial to the next, without a drink 
And yet, Jesus also says, “Blessed are those who hunger and thirst for righteousness, for they will be filled  Notice with me: not blessed are those who are righteous, but those who thirst for righteousness  Not blessed are those who are righteous, but those who thirst for righteousness  Blessed are those who thirst for relationship with God, to know God, to see God 
I wonder, “Does Jesus want us to keep wanting?” Does Jesus want us to keep thirsting? Many faithful followers of Jesus throughout history have never claimed their thirst was quenched, never fully satisfied  You know that moment when you quench your thirst, when you sigh with relief when your throat is at ease once again, that’s the opposite of how many of God’s children have described the life of faith  They describe wanting more, being satisfied at times, while knowing they will be thirsty again 
What will be waiting for you at the rock? Will the water gush out, bursting forth, covering you from head to toe with God’s presence, drenching you in hope, cleansing you from the dust that’s caked to your feet and renewing you for a new day, a new hour, a new moment basking in the presence of God?
What will be waiting for you at the rock? Will the water drip slowly, quenching your thirst for but a moment, giving you just a glimpse of God’s spirit? Will it be so hard to get the water from the rock, that you’ll have to bend down, get underneath that dripping water to try and catch a drop? Will it be just enough for you to know, if only for a moment, that God is really with you? Will it be just enough to satisfy you for this hour, but keep you coming back for more?
What will be waiting for you at the rock? What if it seems like the water has run out, like there isn’t a drop left, the way that Mother Teresa described? What then? We follow her example  She still goes to the rock, over and over again, not to get water quench her own thirst, but to relieve the thirst of God’s other children 
This post was adapted from our sermon series on Interpreting Exodus  Pastor Megan preached this sermon at Butner Federal Prison complex on August 30, 2015 
On Father’s Day 2015, we gathered for worship at the labyrinth in front of UNC hospital, having devoted the month of June to exploring the question, “What happens after we die?” Many have watched their father’s die in this place or other similar spaces  We shared in a time of both remembrance and prayer/meditation, participating in the ancient spiritual practice of walking the labyrinth  A labyrinth is a kind of maze, laid out in a circle 
Tony graciously shared the following reflections from his experience at the labyrinth on the hot June day 
It’s smaller than I expected, stark and hard‐surfaced, with no landscaping for ornamentation or shade  I don’t know what to expect from it… or from myself  But that’s part of the appeal  I stand at the entrance, hesitating, trying to clear my mind  This doesn’t work very well, so I just start walking 
Almost immediately, the path presents itself as a linear and chronological symbol of my life’s journey  Like my physical lifetime, it has a beginning and an end, with an as‐yet undetermined amount between  This could be interesting  I like it so far… although I’m insecure about my style… and unsure about proper protocol  Is someone staring at me? Do I have to meditate? How slowly should I walk? Is it better to focus my thoughts… or to simply let them come? Will I control this thing, or allow it to control me?
I begin to see each step as an increment of elapsed time, an irretrievable expenditure of life energy  I equate my initial discomfort to the natural immaturity of my childhood years  I gradually move beyond it, into metaphorical adulthood  This is much better 
Most of the path is a series of gentle arcs  These are fairly easy to maneuver, like my comfortable life  But these segments are connected by intermittent sharp turns, mostly 180‐degree switchbacks  I see these as representing significant life changes or challenges, requiring more concentration and skill to negotiate  I notice that I am executing some of these turns mechanically, and some more gracefully  I begin to anticipate upcoming turns, and try to maintain good form around each one 
I can’t see much of the path ahead, nor the end  I spend a significant amount of mental energy dealing with this uncertainty, constantly wanting to know my real‐time ratio of “distance walked” to “distance remaining”  This is a recurring distraction 
Today is Father’s Day, and my Dad is on my mind  He recently completed his well‐walked journey, and is now watching me… even if as mere metaphor… or only as an element of my own (self‐) consciousness  I feel his presence embedded in his absence  I’m aware that it’s not only my turn to walk… it’s my only turn to walk 
I think about my children, grandson, soon‐to‐arrive granddaughter, and their descendants  The familiar succession of life, death and new life seems magical, divinely‐derived, and strangely better than living forever  My role is limited, but critical  I love the part, and embrace it 
I am acutely aware that others are journeying all around me  These are friends of mine  We meet, almost brushing, as we walk  The path seems purposefully narrow, perhaps perfectly so  I suddenly understand that it is impossible to walk this close to others without being affected by them  I affect them too… seen as small adjustments in their position or posture  As we meet, I try not to encroach too much, but making sure not to pull away  I put creative energy into maintaining the perfect degree of separation between our bodies  This feels like more art than science… each friend deserving a customized approach  This closeness seems good to me 
There is a much younger walker behind me, getting ever closer  I’m clearly holding her back  Maybe this means that the younger generation wants me to hurry up and get out of their way  I remind myself not to stretch the symbolism too far… as I pick up my pace 
I now see the end of the path ahead  I have been expecting this part to be emotionally complicated, but it is not  The final section is round… large and unrestrictive… a qualitative change from the narrow linear pathway  The circle opens up to welcome me  It is easy to step into, a perfectly natural thing to do at the end of my walk  Inside the circle, I am centered… comfortable… peaceful… thankful 
16 As Jesus passed alongside the Galilee Sea, he saw two brothers, Simon and Andrew, throwing fishing nets into the sea, for they were fishermen  17 “Come, follow me,” he said, “and I’ll show you how to fish for people ” 18 Right away, they left their nets and followed him  19 After going a little farther, he saw James and John, Zebedee’s sons, in their boat repairing the fishing nets  20 At that very moment he called them  They followed him, leaving their father Zebedee in the boat with the hired workers 
This is a story about 4 fishermen, Simon, Andrew, James and John  It’s a normal morning at the docks  Each one of them is going about business as usual  They arrived at dawn, bundled up in the cool morning air and started work without much conversation  Simon and Andrew are working on one fishing boat and see the Teacher approaching  “Hey  There he is,” says Andrew  Jesus from Nazareth  You can’t go anywhere without hearing about him lately  What’s he doing down here?” They paddle back to shore, not wanting to miss any trouble this Jesus fellow might stir up  Simon and Andrew get the beach and Jesus comes over to talk to them  It’s like he had come there that morning just to find these two guys  Jesus didn’t say much, “Come and follow me ” Jesus invited these 2 fishermen to be his disciples, to follow after him, to walk behind him, tracing his every step 
Further down the beach, the same scene repeats  This time, Jesus walks directly up to James and John who are focused on repairing their fishing net  Jesus says the same thing to them and now all four fishermen walk behind their rabbi with no idea of what’s ahead of them 
It’s a big deal! The four normal guys, working a normal job, on a normal morning, decide to follow Jesus  Maybe you’ve wondered like I have, how is it that Simon, Andrew, James and John do it? How do they drop everything to follow Jesus? What were they thinking? How did they feel?
It’s interesting  The story doesn’t tell us  There’s nothing about how they felt  It doesn’t say they were excited, or moved, or scared, or joyful or resistant  This story about four fisherman gives us only verbs  Jesus passed alongside the Galilee Sea  He saw two brothers  He said, Come, follow  Then, Simon and Andrew left and followed  Jesus saw James and John  Jesus called them  They followed him 
This is a story about four fisherman who decided to follow Jesus 
This is also a story about fishing  I’ve been fishing been fishing three or four times  Once I realized that fishing was primarily a crack of dawn activity, I knew it wasn’t really for me  Jesus uses a kind of puzzling image about fishing  He says, “Come, follow me, and I’ll show you how to fish for people ” I don’t know about you, but this I find this to be very strange  I realized this week why his image is so confusing to me  What do you imagine when someone talks about fishing? What I imagine when I hear the word “fish” or “fishing” is a fishing pole, the rod, reel, bait, tackle box, worms, that kind of fishing  So I’ve always interpreted what Jesus said this way 
I will make you fishers of men, fishers of men, fishers of men  I will make you fishers of men, if you follow me 
The road Jesus invites these four fishermen to follow him on will mean casting a net of love and welcome to people that they do not anticipate  Jesus will cast his net into the sea of a broken world, filled with sinners, people who have messed up, people who are outsiders, who don’t belong  Jesus will stay in the homes of poor, be guilty of associating prostitutes and touching the hands of people with communicable diseases  Jesus will throw his net into the sea and invite everyone in  Jesus will eventually be arrested and executed because those in power decided his fishing net included a few too many of the wrong people  This is a story about fishing 
This isn’t only a story about four fisherman, or only a story about fishing  It’s also, and perhaps, most importantly, a story about God



ground_truth: 5.

prompt_front: Now, answer the following question based on the text below, only give me the answer and do not output any other words.

Question: What did Mary tell the disciples?

Read the following text and answer briefly.

Context 2: 
If this is only a story about four fisherman who decide to follow Jesus, the pressures on you and me! After all, aren’t we too called to follow Jesus? Called to be his disciples? Wasn’t that the invitation you first heard when you first heard about Jesus? God has called us and we must decide  Jesus wants us all to follow him, to be like him, to walk in his footsteps, to do what he does  Of course this story is about that! And they do it, don’t they? Simon, Andrew, James, John, they do it! They decide and they do follow Jesus, imperfectly at that  Still, it’s a lot of pressure, a lot of responsibility  If life becomes all about what we do for Jesus, something is missing 
If this is only a story about fishing, have some of us failed? Is it too late for us? Some of us might not be the best at fishing, not all the great about casting Jesus’ loving net to our brothers and sisters  His net is sometimes, or maybe more than sometimes, a bit more expansive than we might be comfortable with  He calls us to be like him and fish for people, and yet, sometimes we can barely get the net into the water  Perhaps for others, we aren’t even convinced that Jesus would include us in the net at all, no matter how deep into the water he goes  He can really mean me? Would his net really reach me? There’s still more to the story 
This is a story about God, who God is, how God acts, what God does  Before Andrew, Simon, James and John follow Jesus, Jesus finds them  Before they follow Jesus, Jesus comes to them! They don’t have to go searching, they have been found  Jesus saw  Jesus spoke  Jesus called  Jesus said, “Come “ We don’t follow Jesus in order to find him, to prove our worthiness with what we do, or even by showing Jesus how big our nets are  We follow Jesus because he first came to us  He came down to the beach to meet these four fishermen  He came specifically for Simon and for Andrew, for James and for John, for you and me 
This blog post was adapted from Pastor Megan’s sermon at Butner Federal Prison on January 25, 2015 
The life of faith consists of seasons  One scholar suggests that we can categorize these seasons of life as seasons of being securely oriented, painfully disoriented, and surprisingly reoriented  These generalizations could apply to our self-acceptance, our relations to significant others, and our participation in public or private life  We might think about these seasons as passages of life, stages of growth, or even identity crises  Acknowledging where we find ourselves in a particular season can allow us to be honest about where we are at in our lives and where we are in relation to God 
The Psalms, a collection of prayers, songs, and poems addressed to God, correspond to these seasons of orientation, disorientation, and reorientation  As we read through the book, we find Psalms where the writer is full of thanksgiving to God, securely oriented in life  We also find Psalms that demonstrate disorientation, perhaps categorized by loss, transition, grief, suffering, or even anger  Finally, some Psalms are written from a perspective of reorientation, wherein the Psalmist transitions from a period of being disoriented to being reoriented in relation to God and others 
The Psalms can become our partner in prayer  Giving us words when we have none, we pray the Psalms joining with all those who have prayed them before us and all who will pray them after we are gone  As we pray the Psalms, we find permission to be utterly honest with God about our feelings and situation, free to speak openly and deeply to God about what we are experiencing  Praying the Psalms also helps us to envision God’s future when we can’t see it ourselves  Lastly, the Psalms guard us against religion or merely thinking about God  Using their words in prayer brings us into direct conversation with the living God, in language we may never have imagined would come from our lips 
-Pray the assigned Psalm from the daily lectionary, with set Scriptures to read each day  Click here to see today’s readings, subscribe to the daily readings by email, or download the app 
-Pray the Psalms using the practice of praying in color  Click here for an excerpt from Sybil MacBeth’s book that gives instructions for praying in color  I have the book available if anyone would like to borrow it  You can read more about praying in color on her website 
-Pray a Psalm, followed by journal writing  Consider these prompts: Where do I find myself in this Psalm? Where do I find my community? How am I being oriented to God in this prayer? What images or metaphors do I find striking? Explore the image more deeply 
-Pray through a list of Psalms, one per day or the same one each day for a week 
-Pray them as a family or with housemates at mealtime or bedtime 
-Pray abbreviated Psalms as breath prayers  A breath Ppayer rhythm is simple: Breathe in slow and deep as you whisper or think on a phrase… Hold your breath… Then exhale 
I will sing to my God as long as I am 
Psalm 8: Lord, our master, how great is your name in all the earth 
Psalm 104: Seek the Lord and his power; seek his face forever  Remember the wonders he has done 
-Pray the Psalms using lectio divina  For instructions on praying lectio divina individually or in groups, click here  There are also instructions for doing lectio divina in color from Sybil MacBeth’s book 
-Pray a Psalm from the category of life within which you find yourself—orientation, disorientation, or reorientation 
Psalms of Orientation: These Psalms reflect a confident belief that the world is well ordered, reliable, and life-giving to the person of faith 
Psalms of Disorientation: These Psalms reflect the brokenness of life, when it is no longer orderly but savage  Spoken out of the depths, they are still bold acts of faith 
Psalms of New Orientation: The pit is not the end of life; there is more  New orientation Psalms reflect the surprise of new possibilities that are experienced as pure gift from God  They are full of thanks 
Citations: The Message of the Psalms and Praying the Psalms by Walter Brueggemann and Getting Involved with God, by Ellen Davis 
Joseph’s story opens in Genesis 37 and it’s a long one  Joseph was one of 11 kids, the youngest son  In Genesis 37, the story says, “Now Jacob (Joseph’s dad) loved Joseph more than any of his other sons because he was born when Jacob was old  Jacob had made for him a long robe  When his brothers saw that their father loved him more than any of his brothers, they hated him and couldn’t even talk nicely to him ” Sibling rivalry, jealousy, family drama—maybe a little too familiar for some of us 
Just when you want to feel bad for Joseph, show him sympathy, “Poor kid—he can’t help that he’s the favorite,” Joseph makes himself quickly unlikeable  When Joseph’s head hits the pillow at night, he has vivid dreams about the future, dreams where he rules over his brothers  In one of these dreams, he’s in the field working with his brothers  They each tie a bundle of grain together…I imagine it like a hay bail  His bail rises up, towering and floating in the air above the others, while each of his ten older brother’s bails of hay, bows down to his bail, as if he’s ruling over them like a king  What’s worse—he didn’t keep his mouth shut about his dreams  Nope  He went ahead and announced them at the dinner table  When I imagine this scene, I’m reminded of the importance of friends  He seriously needed a friend to say, “Dude, listen, you have some dreams where you’re awesome and your brothers treat you like a king  They hate you, man  Keep your dreams to yourself ” Joseph lacked such a friend, so he bragged about his dreams—that combined with his fancy North Face jacket that Daddy bought for him only and the favoritism their dad showed him, brought his brothers to plot about how they might rid themselves of this pesky brat forever 
Joseph’s brothers considered killing Joseph, but they settled on kidnapping him and selling him into slavery instead  That way, they wouldn’t have his death on their foreheads, without having to put up with him anymore  They took Joseph’s fancy coat and destroyed it, making it look like a wild animal killed Joseph  This they showed to their father, so that he would assume that Joseph was dead; their dad would never suspect they had any part in his disappearance 
Meanwhile, Joseph was taken off to Egypt where he worked as a slave  Though he did well there and followed all the rules, he became a victim for a second time, when his master’s wife accused him of a crime he didn’t commit  Over a period of 13 years, Joseph worked as a slave and spent years locked up in prison  After a series of unlikely events, some terrible and some remarkable, Joseph rose to power and became the king’s right hand man, his adviser 
With the king’s blessing and support, Joseph led his country in preparing for a famine, putting food away on reserve during seven years of plenty  When a famine struck the land, Egypt was in a good position, able to lean on the reserved food that Joseph had put away  The surrounding lands, including Joseph’s homeland, had to lean on Egypt for food or else they would starve 
Joseph shows his brother’s enormous generosity  He has them go home, pack up and move their entire family, including their elderly father Jacob to Egypt to be near Joseph  Not long after making the trip to Egypt and being reunited with his father, their father, an elderly man at this point, Jacob dies 
And the final chapter of the story opens  Jacob is dead  Their father is gone  Now what?
Realizing that their father was dead, Joseph’s brothers said, “What if Joseph still bears a grudge against us and pays us back in full for all the wrong that we did to him?” 16 So they approached[b] Joseph, saying, “Your father gave this instruction before he died, 17 ‘Say to Joseph: I beg you, forgive the crime of your brothers and the wrong they did in harming you ’ Now therefore please forgive the crime of the servants of the God of your father ” Joseph wept when they spoke to him  18 Then his brothers also wept,[c] fell down before him, and said, “We are here as your slaves ” 19 But Joseph said to them, “Do not be afraid! Am I in the place of God? 20 Even though you intended to do harm to me, God intended it for good, in order to preserve a numerous people, as he is doing today  21 So have no fear; I myself will provide for you and your little ones ” In this way he reassured them, speaking kindly to them 
Fear is a powerful force  Fear motivates and fear paralyzes 
It’s a little funny how they phrase the words of their father  The brothers put a great deal of distance between themselves and Joseph  Instead of saying, “Our father told us to tell you…” they say, “Your father to us to tell you…” They distance themselves from Joseph and from the message that their dad supposedly gave them to pass along 
And then, they do it again  “Please forgive the crime of the servants of the God of your father,” his brothers say  They refer to themselves in third person—“the servants of the God of your father ” It’s not “our crime” that “we committed,” but the crime of these others 
Fear not only keeps them from confession, fear also keeps them from receiving forgiveness  They are scared for their lives the moment their father breathes his last, but haven’t they already been through this conversation with Joseph? At the dinner table, when Joseph revealed his identity to them, he tells them not to worry  “It’s ok  Yeah, it was awful, but look where I am! Look at how God has used me to help save those who would be starving now  I’m even saving you!” Joseph has already offered them forgiveness, but they haven’t fully received it  They haven’t believed what he’s said  Perhaps their views of themselves were so low that they didn’t see themselves worthy of forgiveness  Maybe they’ve carried the guilt for so long about what they’ve done, they fear what life will be like without it  It’s become so much an engrained part of their identity, they don’t know who they are apart from the guilt of what they’ve done  They fear receiving Joseph’s forgiveness  They fear forgiving themselves 
To the plea of the 10 brothers, to this made-up, manipulative, last cry for safety, Joseph has two responses  First, he weeps  His weeping—his display of vulnerability and emotion—causes his brothers to begin to weep also  There they are, 11 grown brothers, weeping on the floor of the house  Why did Joseph begin to weep? The story doesn’t say  Let’s notice, brothers and sisters—the road to releasing fear and offering and receiving forgiveness may not come without weeping 
Fear is a powerful force  Fear is an excellent motivator—moving us to do particular things and act in particular ways  But fear not only motivates, it can also paralyze, cause us to freeze right where we’re at, accept things for how they are  This final chapter begins with the brothers saying to one another, “What if…?” What if Joseph still bears a grudge against us…? Fear finishes the sentence, beginning in the words, “What if…?” Fear finishes the sentence  What if…he still bears a grudge against us? What if…we confess our evil to Joseph and he says that’s the end of us? What if…we ask for forgiveness and he denies it—if I say, will you forgive me, and he says, “no”?
“What if’s” sneak into our minds and hearts 
What if…I never get out of here?
What if I fail as a parent?
What if I don’t belong?
What if no one notices I’m gone?
What if I stand up for what I believe is right and it costs me my reputation?
What if I make a mistake at work and lose my job?
What if I risk opening myself up to someone and get hurt or betrayed again?
What if my body fails me?
What if I can never accept that the past can’t change?
What if I’m not worthy of God’s forgiveness or the forgiveness of those I’ve wronged?
What if I can never forgive myself?
We do not have to live in fear  We do not have to be motivated or paralyzed by it  Look at the God that we serve! Joseph explains how God has been with him  He says to his brothers, “Even though you intended to do harm to me, God intended it for good, in order to preserve a numerous people, as he is doing today ” Does this mean that God wanted or desired Joseph’s brothers to kidnap him, throw him into slavery and ruin his life to avenge their jealousy? No  God doesn’t desire that jealousy and revenge rule our lives  God doesn’t will for us to do evil or to harm other people  Rather, God is able to overcome evil and transform it  God can overcome evil! When Jesus was captured, tried as a criminal and sentenced to death, God overcame death, raising Jesus from the death 
This post was adapted from my sermon preached at Butner Federal Prison on September 14, 2014 
We were gathered at the plaza, right between the giant bull statue and the unattractive fences of a construction site  Luminary bags weighted with rice and lit candles marked the sacred space surrounding 30 of us, one to represent each person who died as a result of domestic violence the previous year in our state  The vigil began as planned, simple, but meaningful, to remember victims of this tragedy and raise awareness about the suffering that takes place behind closed doors  About halfway through the simple service, a woman stumbled into the vigil, interrupting the solemn mood without realizing that a group was gathered and someone was speaking  She stood silent for a few moments, listening to the speaker  When she realized that the speaker was talking about domestic violence, she began to interrupt, asking questions to the speaker, sharing details from her own experience with abuse  “What would you do…what would you do if…?” she cried  Then, as unexpectedly as she joined us and as abruptly as her interruption, she began to weep, uncontrollably crying for the rest of the vigil  A couple of women gathered around her and held her as she wept  Before long, it was my turn to pray  I barely got the words out…I could hardly project my shaking voice over her loud sobs 
“Blessed are those who mourn, for they will be comforted,” Jesus proclaims in the second line of the beatitudes  Blessed are those who mourn  How is this weeping woman, this victim of abuse, blessed? She mourns the injustices she’s experienced, her suffering, the ways her life has been shaped by pain and her inability to free herself from her oppression  Jesus says that this woman and all her sisters and brothers that mourn with her are blessed 
The Jewish culture that Jesus was born into has a rich history of mourning or practicing lament, stretching back hundreds of years before he was born  The prophets and the Psalms include poems, songs, and speeches, recounting the words of people gathered together for public mourning  This mourning wasn’t a kind of crying about having a bad day or because of a frustration at home or work  The mourning Jesus is referencing is the kind of mourning that is a response to injustice and oppression, those who mourn the impact of the powers, both material and spiritual, on the lives of the most vulnerable 
Blessed are those who mourn  Another beatitude and another paradox  Once again, Jesus’ words are outlandish and nonsensical  How is it that those who mourn are blessed? Aren’t those who are happy and fulfilled, aren’t they the ones that are blessed? Yet, in this beatitude, in this paradox, Jesus once again exposes the powers and envisions an alternative  Jesus exposes the powers that cause people to mourn in the first place, those who experience unjust suffering and loss, the same injustices that cause people to be poor in spirit  It’s these people, the mourners, that are blessed, Jesus says  These are the people that Jesus came for  In God’s empire, mourners are not written off or ignored as uncivilized, uneducated, or badly behaved  Instead, in God’s empire, they are the ones who receive God’s comfort and consolation; God’s hears their cries 
Our culture tends to restrict mourning or public displays of emotion to something appropriate for home life or private time  Further, spending time in mourning may be quickly relegated to a waste of time or an inactive posture  The expression, “Don’t just cry about it, do something,” illustrates this clearly  But mourning is not a useless waste of time or an inactive practice  Mourn is a verb  In fact, mourning elicits action and engagement  Mourning exposes the powers, shows their true colors  Seeing people in mourning is disorienting  It interrupts the lives we lead that are detached from suffering and injustice, forcing us to take another look, to pause, to listen, and to join 
The woman who interrupted our solemn vigil for victims of domestic violence exposed the powers with her loud wailing  She made me feel uncomfortable, like I wanted to look away and get away from her as quickly as possible  And yet, her cries made it impossible for me to forget her  The sound of her weeping echoed in my ears for weeks following and if I try, I can still hear them now, over nine months later  Her mourning moves me to engage in seeking justice for others who have suffered like she has 
1  James Howell, The Beatitudes for Today  Louisville: Westminster John Knox Press, 2005 , 45 
2  James Howell, The Beatitudes for Today, 46 
Context 3: Paper Info

Title: Conflict Optimization for Binary CSP Applied to Minimum Partition into Plane Subgraphs and Graph Coloring
Publish Date: 25 Mar 2023
Author List: Loïc Crombez (from LIMOS, Université Clermont Auvergne), Guilherme Da Fonseca (from LIS, Aix-Marseille Université), Florian Fontan (from Independent Researcher), Yan Gerard (from LIMOS, Université Clermont Auvergne), Aldo Gonzalez-Lorenzo (from LIS, Aix-Marseille Université), Pascal Lafourcade (from LIMOS, Université Clermont Auvergne), Luc Libralesso (from LIMOS, Université Clermont Auvergne), Benjamin Momège (from Independent Researcher), Jack Spalding-Jamieson (from David R  Cheriton School of Computer Science, University of Waterloo), Brandon Zhang (from Independent Researcher), Da Zheng (from Department of Computer Science, University of Illinois at Urbana-Champaign)

Figure

Figure 1: A partition of the input graph of the CG:SHOP2022 instance vispecn2518 into 57 plane graphs It is the smallest instance of the challenge with 2518 segments On top left, you see all 57 colors together On top right, you see a clique of size 57, hence the solution is optimal Each of the 57 colors is then presented in small figures 
Figure 2: Number of colors over time for the instance vispecn13806 using different values p The algorithm uses σ = 0 15, easy vertices, q max = 59022, but does not use the BDFS nor any clique 
Figure 3: Number of colors over time with different values of q max obtained on the instance vispecn13806 Parameters are σ = 0 15, p = 1 2, no clique knowledge, and no BDFS 
Figure 4: Number of colors over time with and without clique knowledge and BDFS obtained on the instance vispecn13806 Parameters are σ = 0 15, p = 1 2, and q max = 1500000 
Figure 5: Number of colors over time for the instance vispecn13806 for different values of σ In both figures the algorithm uses p = 1 2, easy vertices, q max = 59022, but does not use the BDFS nor any clique For σ ≥ 0 25, no solution better than 248 colors is found 
Figure 6: Number of colors over time (in hours) for the instance vispecn13806 
Several CG:SHOP 2022 results We compare the size of the largest known clique to the smallest coloring found by each team on a selection of 14 CG:SHOP 2022 instances 
[20][21][22][23][24][25] with state-of-the-art graph coloring algorithms The conflict optimizer underperforms except on the geometric graphs r* and dsjr* CE39-0007), SEVERITAS (ANR-20-CE39-0005) and by the French government IDEX-ISITE initiative 16-IDEX-0001 (CAP[20][21][22][23][24][25] The work of Luc Libralesso is supported by the French ANR PRC grant DECRYPT (ANR-18-CE39-0007) 

abstract

CG:SHOP is an annual geometric optimization challenge and the 2022 edition proposed the problem of coloring a certain geometric graph defined by line segments  Surprisingly, the top three teams used the same technique, called conflict optimization  This technique has been introduced in the 2021 edition of the challenge, to solve a coordinated motion planning problem 
In this paper, we present the technique in the more general framework of binary constraint satisfaction problems (binary CSP)  Then, the top three teams describe their different implementations of the same underlying strategy  We evaluate the performance of those implementations to vertex color not only geometric graphs, but also other types of graphs 

Introduction

The CG:SHOP challenge (Computational Geometry: Solving Hard Optimization Problems) is an annual geometric optimization competition, whose first edition took place in 2019  The 2022 edition proposed a problem called minimum partition into plane subgraphs  The input is a graph G embedded in the plane with edges drawn as straight line segments, and the goal is to partition the set of edges into a small number of plane graphs (Fig  )  
This goal can be formulated as a vertex coloring problem on a graph G defined as follows  The vertices of G are the segments defining the edges of G, and the edges of G correspond to pairs of crossing segments (segments that intersect only at a common endpoint are not considered crossing)  The three top-ranking teams (Lasa, Gitastrophe, and Shadoks) on the CG:SHOP 2022 challenge all used a common approach called conflict optimization while the fourth team used a SAT-Boosted Tabu Search  
Conflict optimization is a technique used by Shadoks to obtain the first place in the CG:SHOP 2021 challenge for low-makespan coordinated motion planning , and the main ideas of the technique lent themselves well to the 2022 challenge  Next, we describe the conflict optimizer as a metaheuristic to solve constraint satisfaction problems (CSP)  
We start by describing a CSP  A CSP is a triple of • variables X = (x 1 ,       , x n ), Each of the 57 colors is then presented in small figures  • domains D = (D 1 ,       , D n ), and • constraints R  Each variable x i must be assigned a value in the corresponding domain D i such that all constraints are satisfied 
In general, the constraints may forbid arbitrary subsets of values  We restrict our attention to a particular type of constraints (binary CSP ), which only involve pairs of assignments  A partial evaluation is an assignment of a subset of the variables, called evaluated, with the remaining variables called non-evaluated 
All constraints involving a non-evaluated variable are satisfied by default  We only consider assignments and partial assignments that satisfy all constraints  The conflict optimizer iteratively modifies a partial evaluation with the goal of emptying the set S of non-evaluated variables, at which point it stops 
At each step, a variable x i is removed from S  If there exists a value x ∈ D i that satisfies all constraints, then we assign the value x to the variable x i   Otherwise, we proceed as follows  For each possible value x ∈ D i , we consider the set K(i, x) of variables (other than x i ) that are part of constraints violated by the assignment x i = x 
We assign to x i the value x that minimizes where w(j) is a weight function to be described later  The variables x j ∈ K(i, x) become non-evaluated and added to S  The weight function should be such that w(j) increases each time x j is added to S, in order to avoid loops that keep moving the same variables back and forth from S  Let q(j) be the number of times x j became non-evaluated 
A possible weight function is w(j) = q(j)  More generally, we can have w(j) = q(j) p for some exponent p (typically between 1 and 2)  Of course, several details of the conflict optimizer are left open  For example, which element to choose from S, whether some random noise should be added to w, and the decision to restart the procedure from scratch after a certain time 
The CSP as is, does not apply to optimization problems  However, we can, impose a maximum value k of the objective function in order to obtain a CSP  The conflict optimizer was introduced in a low makespan coordinated motion planning setting  In that setting, the variables are the robots, the domains are their paths (of length at most k) and the constraints forbid collisions between two paths 
In the graph coloring setting, the domains are the k colors of the vertices and the constraints forbid adjacent vertices from having the same color  The conflict optimizer can be adapted to non-binary CSP, but in that case multiple variables may be unassigned for a single violated constraint  The strategy has some resemblance to the similarly named min-conflicts algorithm , but notable differences are that a partial evaluation is kept instead of an invalid evaluation and the weight function that changes over time 
While the conflict optimization strategy is simple, there are different ways to apply it to the graph coloring problem  The goal of the paper is to present how the top three teams applied it or complemented it with additional strategies  We compare the relative benefits of each variant on the instances given in the CG:SHOP 2022 challenge 
We also compare them to baselines on some instances issued from graph coloring benchmarks  The paper is organized as follows  Section 2 presents the details of the conflict optimization strategy applied to graph coloring  In the three sections that follow, the three teams Lasa, Gitastrophe, and Shadoks present the different parameters and modified strategies that they used to make the algorithm more efficient for the CG:SHOP 2022 challenge 
The last section is devoted to the experimental results 

Literature Review

The study of graph coloring goes back to the 4-color problem (1852) and it has been intensively studied since the 1970s (see for surveys)  Many heuristics have been proposed , as well as exact algorithms   We briefly present two classes of algorithms: greedy algorithms and exact algorithms  Greedy algorithms 
These algorithms are used to find good quality initial solutions in a short amount of time  The classic greedy heuristic considers the vertices in arbitrary order and colors each vertex with the smallest non-conflicting color  The two most famous modern greedy heuristics are DSATUR and Recursive Largest First (RLF )  
At each step (until all vertices are colored), DSATUR selects the vertex v that has the largest number of different colors in its neighbourhood  Ties are broken by selecting a vertex with maximum degree  The vertex v is colored with the smallest non-conflicting color  RLF searches for a large independent set I, assigns the vertices I the same color, removes I from G , and repeats until all vertices are colored 
Exact algorithms  Some exact methods use a branch-and-bound strategy, for example extending the DSATUR heuristic by allowing it to backtrack   Another type of exact method (branch-and-cut-and-price) decomposes the vertex coloring problem into an iterative resolution of two sub-problems   The "master problem" maintains a small set of valid colors using a set-covering formulation 
The "pricing problem" finds a new valid coloring that is promising by solving a maximum weight independent set problem  Exact algorithms are usually able to find the optimal coloring for graphs with a few hundred vertices  However, even the smallest CG:SHOP 2022 competition instances involve at least a few thousands vertices 

Conflict Optimization for Graph Coloring

Henceforth, we will only refer to the intersection conflict graph G induced by the instance  Vertices will refer to the vertices V (G ), and edges will refer to the edges E(G )  Our goal is to partition the vertices using a minimum set of k color classes C = {C 1 ,       , C k }, where no two vertices in the same color class C i are incident to a common edge 

Conflict Optimization

TABUCOL inspired neighbourhood One classical approach for the vertex coloring involves allowing solutions with conflicting vertices (two adjacent vertices with the same color)  It was introduced in 1987 and called TABUCOL  It starts with an initial solution, removes a color (usually the one with the least number of vertices), and assigns uncolored vertices with a new color among the remaining ones 
This is likely to lead to some conflicts (i e  two adjacent vertices sharing a same color)  The local search scheme selects a conflicting vertex, and tries to swap its color, choosing the new coloring that minimises the number of conflicts  If it reaches a state with no conflict, it provides a solution with one color less than the initial solution 
The process is repeated until the stopping criterion is met



ground_truth: "I have seen the Lord.".

prompt_front: Now, answer the following question based on the text below, only give me the answer and do not output any other words.

Question: What are the three teams that used conflict optimization in the challenge?

Read the following text and answer briefly.

Context 3:  While the original TABUCOL algorithm includes a "tabu-list" mechanism to avoid cycling, it is not always sufficient, and requires some hyper-parameter tuning in order to obtain a good performance on a large variety of instances  To overcome this issue, we use a neighbourhood, but replace the "tabu-list" by the conflict optimizer scheme presented above 
PARTIALCOL inspired neighbourhood PARTIALCOL another local search algorithm solving the vertex coloring problem was introduced in 2008  This algorithm proposes a new local search scheme that allows partial coloring (thus allowing uncolored vertices)  The goal is to minimize the number of uncolored vertices 
Similarly to TABUCOL, PARTIALCOL starts with an initial solution, removes one color (unassigning its vertices), and performs local search iterations until no vertex is left uncolored  When coloring a vertex, the adjacent conflicting vertices are uncolored  Then, the algorithm repeats the process until all vertices are colored, or the stopping criterion is met 
This neighbourhood was also introduced alongside a tabu-search procedure  The tabu-search scheme is also replaced by a conflict-optimization scheme  Note that this neighbourhood was predominantly used by the other teams 

Finding Initial Solutions

Lasa team used two approaches to find initial solutions: 1  DSATUR is the classical graph coloring algorithm presented in Section 1  2  Orientation greedy is almost the only algorithm where the geometry of the segments is used  If segments are almost parallel, it is likely that they do not intersect (thus forming an independent set) 
This greedy algorithm first sorts the segments by orientation, ranging from − π 2 to π 2   For each segment in this order, the algorithm tries to color it using the first available color  If no color has been found, a new color is created for coloring the considered segment  This algorithm is efficient, produces interesting initial solutions and takes into account the specificities of the competition 

Solution Initialization

The gitastrophe team uses the traditional greedy algorithm of Welsh and Powell to obtain initial solutions: order the vertices in decreasing order of degree, and assign each vertex the minimum-label color not used by its neighbors  During the challenge Gitastrophe attempted to use different orderings for the greedy algorithm, such as sorting by the slope of the line segment associated with each vertex (as the orientation greedy initialization presented in Section 3), and also tried numerous other strategies 
Ultimately, after running the solution optimizer for approximately the same amount of time, all initializations resulted in an equal number of colors 

Modifications to the Conflict Optimizer

Taking inspiration from memetic algorithms, which alternate between an intensification and a diversification stage, the algorithm continually switched between a phase using the above conflict score, and one minimizing only the number of conflicts  Thus during the conflict-minimization phase, the random variables f (C j ) and w(u) are both fixed equal to 1 leading to a conflict score
Each phase lasted for 10 5 iterations  Adding the conflict-minimization phase gave minor improvements to some of the challenge instances 

Shadoks

In this section, we describe the choices used by the Shadoks team for the options described in Section 2 1  The Shadoks generally chose to eliminate the color with the smallest number of elements  However, if the multistart option is toggled on, then a random color is used each time  The conflict set S is stored in a queue 
The Shadoks tried other strategies, but found that the queue gives the best results  The weight function used is w(u) = 1 + q(u) p , mostly with p = 1 2  The effect of the parameter p is shown in Fig    Notice that in all figures, the number of colors shown is the average of ten executions of the code using different random seeds 
The algorithm uses σ = 0 15, easy vertices, q max = 59022, but does not use the BDFS nor any clique  If q(u) is larger than a threshold q max , the Shadoks set w(u) = ∞ so that the vertex u never reenters S  If at some point an uncolored vertex v is adjacent to some vertex u of infinite weight in every color class, then the conflict optimizer is restarted 
When restarting, the initial coloring is shuffled by moving some vertices from their initial color class to a new one  Looking at Fig  , the value of q max does not seem to have much influence as long as it is not too small  Throughout the challenge the Shadoks almost exclusively used q max = 2000 • (75000/m) 2 , where m is the number of vertices 
This value roughly ensures a restart every few hours  q max =0 5k q max =5k q max =50k q max =100k q max =250k The Shadoks use the function f as a Gaussian random variable of mean 1 and variance σ  A good default value is σ = 0 15  The effect of the variance is shown in Fig    Notice that setting σ = 0 gives much worse results 
Option (e) The goal of BDFS is to further optimize very good solutions that the conflict optimizer is not able to improve otherwise  Fig  shows the influence of BDFS  While on this figure, the advantages of BDFS cannot be noticed, its use near the end of the challenge improved about 30 solutions  The bounded depth-first search (BDFS) algorithm tries to improve the dequeuing process 
The goal is to prevent a vertex in conflict with some adjacent colored vertices from entering in the conflict set  At the first level, the algorithm searches for a recoloring of some adjacent vertices which allows us to directly recolor the conflict vertex  If no solution is found, the algorithm  In both figures the algorithm uses p = 1 2, easy vertices, q max = 59022, but does not use the BDFS nor any clique 
For σ ≥ 0 25, no solution better than 248 colors is found  could recolor some vertices at larger distances from the conflict vertex  To do so, a local search is performed by trying to recolor vertices at a bounded distance from the conflict vertex in the current partial solution  The BDFS algorithm has two parameters: adjacency bound a max and depth d 
In order to recolor a vertex v, BDFS gets the set C of color classes with at most a max neighbors of v  If a class in C has no neighbor of v, v is assigned to C  Otherwise, for each class C ∈ C, BDFS tries to recolor the vertices in C which are adjacent to v by recursively calling itself with depth d − 1 
At depth d = 0 the algorithm stops trying to color the vertices  During the challenge the Shadoks used BDFS with parameters a max = 3 and d = 3  The depth was increased to 5 (resp  7) when the number of vertices in the queue was 2 (resp  1)  Degeneracy order Given a target number of colors k, we call easy vertices a set of vertices Y such that, if the remainder of the vertices of G are colored using k colors, then we are guaranteed to be able to color all vertices of G with k colors 
This is obtained using the degeneracy order Y   To obtain Y we iteratively remove from the graph a vertex v that has at most k − 1 neighbors, appending v to the end of Y   We repeat until no other vertex can be added to Y   Notice that, once we color the remainder of the graph with at least k colors, we can use a greedy coloring for Y in order from last to first without increasing the number of colors used 
Removing the easy vertices reduces the total number of vertices, making the conflict optimizer more effective  The Shadoks always toggle this option on (the challenge instances contain from 0 to 23% easy vertices) 

Results

We provide the results of the experiments performed with the code from the three teams on two classes of instances  First, we present the results on some selected CG:SHOP 2022 instances  These instances are intersection graphs of line segments  Second, we execute the code on graphs that are not intersection graphs, namely the classic DIMACS graphs , comparing the results of our conflict optimizer implementations to previous solutions 
The source code for the three teams is available at: • Lasa: https://github com/librallu/dogs-color • Gitastrophe: https://github com/jacketsj/cgshop2022-gitastrophe • Shadoks: https://github com/gfonsecabr/shadoks-CGSHOP2022

CG:SHOP 2022 Instances

We selected 14 instances (out of 225) covering the different types of instances given in the CG:SHOP 2022 challenge  The results are presented in Table   For comparison, we executed the HEAD code on some instances using the default parameters  The table shows the smallest number of colors for which HEAD found a solution 
We ran HEAD for 1 hour of repetitions for each target number of colors on a single CPU core (the HEAD solver takes the target number of colors as a parameter and we increased this parameter one by one)  At the end of the challenge, 8 colorings computed by Lasa, 11 colorings computed by Gitastrophe, and 23 colorings computed by Shadoks over 225 instances have been proved optimal (their number of colors is equal to the size of a clique) 
In order to compare the efficiency of the algorithms, we executed the different implementations on the CG:SHOP instance vispecn13806  The edge density of this graph is 19%, the largest clique that we found has 177 vertices and the best coloring found during the challenge uses 218 colors  Notice that vispecn13806 is the same instance used in other Shadoks experiments in Section 5  Notice also that HEAD algorithm provides 283 colors after one hour compared to less than 240 colors for the conflict optimizers 
We ran the three implementations on three different servers and compared the results shown in Figure   For each implementation, the x coordinate is the running time in hours, while the y coordinate is the smallest number of colors found at that time 

Results on DIMACS Graphs

We tested the implementation of each team on the DIMACS instances to gauge the performance of the conflict optimizer on other classes of graphs  We compared our results to the best known bounds and to the state of the art coloring algorithms HEAD and QACOL   The time limit for Lasa's algorithms is 1 hour 
CWLS is Lasa's conflict optimizer with the neighbourhood presented in TABUCOL , while PWLS is the optimizer with the neighbourhood presented in PARTIALCOL   Gitastrophe algorithm ran 10 minutes after which the number of colors no longer decreases  Shadoks algorithm ran for 1 hour without the BDFS option (results with BDFS are worse) 
Results are presented in Table   We only kept the difficult DIMACS instances  For the other instances, all the results match the best known bounds  The DIMACS instances had comparatively few edges (on the order of thousands or millions); the largest intersection graphs considered in the CG:SHOP challenge had over 1 5 billion edges 
We notice that the conflict optimizer works extremely poorly on random graphs, but it is fast and appears to perform well on geometric graphs (r250 5, r1000 1c, r1000 5, dsjr500 1c and dsjr500 5), matching the best-known results   Interestingly, these geometric graphs are not intersection graphs as in the CG:SHOP challenge, but are generated based on a distance threshold 
On the DIMACS graphs, Lasa implementation shows better performance than the other implementations 



ground_truth: Lasa, Gitastrophe, and Shadoks.