text:
Trailbreaker Resources Completes Phase 1 Exploration At The Atsutla Gold Project, Mobilizes To Skelly
by Trailbreaker Resources Ltd. | Jul 19, 2021 | News 2021
July 19th, 2021 – Trailbreaker Resources Ltd. (TBK.V) ("Trailbreaker" or "the Company") is pleased to announce completion of the Phase 1 exploration program at its 100%-owned Atsutla Gold project, located in northwestern British Columbia (BC). Trailbreaker will also conduct an exploration program at its 100%-owned Skelly property in 2021.
The Atsutla Gold project covers over 23,000 hectares and is located 70 km south of the Yukon-BC border and 130 km northwest of the community of Dease Lake, BC.
The Phase 1 exploration program involved the collection of 1,680 soil samples and 295 prospecting grab samples, as well as geological mapping. Efforts were focused on follow-up of the high-grade gold, silver, and copper discoveries made at the Willie Jack property in 2020 (see below for further details), as well as first-pass reconnaissance of newly-staked, unexplored ground southeast of the initial discoveries. The exploration team also completed a first-pass exploration program at the Swan property, which hosts a historic molybdenum-copper (Mo-Cu) porphyry showing that has never been assayed for gold mineralization.
Assay results for the Phase 1 program remain pending. A Phase 2 exploration program will commence in August, 2021.
Skelly property
Prior to conducting Phase 2 exploration at Atsutla, the Trailbreaker team will mobilize on to its 100%-owned Skelly property in northwestern BC. Covering 2,526 hectares, the Skelly property is located just south of the Yukon-BC border, approximately 100 km southwest of Whitehorse, Yukon.
The property is contiguous to Bessor Minerals' 8,178-hectare Golden Eagle property that contains significant drilled gold prospects comprising high-grade, gold-bearing quartz-sulphide veins. Although exploration on the Skelly property dates back to the 1890s, old shafts provide the only evidence of past work. Before 2020, no modern exploration has been documented on the majority of the Skelly property.
In the summer of 2020, Trailbreaker conducted a short, 3-day first pass reconnaissance exploration program that re-identified historic shafts. Grab samples obtained from quartz veins within these assayed up to 1.03 oz/ton gold and 14.24 oz/ton silver (see October 5th, 2020 news release for more information). The auriferous quartz veins were sampled over a 100-metre northwest-trending shear zone, open along strike and paralleling a contact with granitic rocks. Soil sampling revealed a property-wide enrichment in gold (Au), arsenic (As) and antimony (Sb), with values up to 63.4 ppb Au, 5,218 ppm As and > 2,000 ppm Sb. On receiving these results Trailbreaker immediately extended its land package to cover all new targets for potential mineralization.
The 2021 exploration program will involve follow-up on the 2020 discoveries, as well as first-pass exploration on the newly-staked ground.
Further information on the Atsutla Gold project:
Willie Jack
In March of 2020, the Trailbreaker team generated the Willie Jack target and conducted a first pass reconnaissance program. The program led to the discovery of widespread gold mineralization across a 6-kilometre trend, with rock grab samples assaying up to 164 g/t (4.78 oz/ton) Au and soil sample results exceeding 800 ppb (0.8 g/t) Au (see Willie Jack news release dated October 19th, 2020). Rock grab samples also returned assays up to 257 g/t silver (Ag) and 1.7 % copper (Cu). The mineralization discovered to date is related to the Mesozoic intrusive batholiths that comprise the Atsutla mountain range, and shares characteristics of both Cu-Au porphyry-type and intrusion-related gold deposits. Further work is required to determine the nature of the gold mineralization.
Due to the success of the first pass results at the Willie Jack property, Trailbreaker generated and staked the Swan property which now covers over 13,000 hectares (see Swan news release dated March 22nd, 2021). The Swan claims cover a historical molybdenum porphyry prospect discovered in the late 1960s and periodically explored since then. Despite more than 500 soil and surface rock samples and almost 1,000 meters of shallow diamond drilling, no geochemical analysis for gold was ever completed. Historical geological mapping and drill hole logging indicate a complex intrusive system, comprising widespread quartz-feldspar porphyritic monzonite cut by a variety of felsic and mafic dikes. Molybdenite-pyrite mineralization is closely associated with sheeted quartz veins, quartz stockwork and breccia zones. The historical drilling at Swan intersected broad, low to mid-grade molybdenite mineralization, returning up to 0.06% Mo over 73 metres, as well as several significant silver intercepts including >26 g/t Ag over 3 meters.
Historical work also included a detailed soil geochemical survey completed in 2007 which outlined a large, open-ended copper-silver-arsenic (Cu-Ag-As) soil anomaly that lies outside of the drilled Mo prospect. Furthermore, a 1972 induced polarization (IP) survey outlined a chargeability anomaly coinciding with this soil anomaly, interpreted to potentially represent a pyrite halo above a buried porphyry system.
Trailbreaker's team has concluded that the Swan and Willie Jack property areas were previously overlooked for gold potential, due to low gold prices at the time.
"The Phase 1 exploration program at Atsutla was incredibly effective at collecting a vast quantity of data during a short time period. The Trailbreaker team and myself look forward to receiving the assay results, compiling them and moving forward with a second phase in August. We are also about to commence an exploration project at the Skelly property, an area with very little past exploration but showing great promise due to the historic showings on the property, and high gold values from neighbouring properties."
ON BEHALF OF THE BOARD
Daithi Mac Gearailt
Carl Schulze, P. Geo., Consulting Geologist with Aurora Geosciences Ltd, is a qualified person as defined by National Instrument 43-101 for Trailbreaker's BC and Yukon exploration projects, and has reviewed and approved the technical information in this release.
For new information about the Company's projects, please visit Trailbreaker's website at TrailbreakerResources.com and sign up to receive news. For further information, follow Trailbreaker's tweets at Twitter.com/TrailbreakerRes, use the 'Contact' section of our website, or contact us at (604) 681-1820 or at info@trailbreakerresources.com.
Statements contained in this news release that are not historical facts are "forward-looking information" or "forward-looking statements" (collectively, "Forward-Looking Information") within the meaning of applicable Canadian securities legislation and the United States Private Securities Litigation Reform Act of 1995. Forward-Looking Information includes, but is not limited to, disclosure regarding possible events, conditions or financial performance that is based on assumptions about future economic conditions and courses of action; expectations regarding future exploration and drilling programs and receipt of related permitting. In certain cases, Forward-Looking Information can be identified by the use of words and phrases such as "anticipates", "expects", "understanding", "has agreed to" or variations of such words and phrases or statements that certain actions, events or results "would", "occur" or "be achieved". Although Trailbreaker has attempted to identify important factors that could affect Trailbreaker and may cause actual actions, events or results to differ materially from those described in Forward-Looking Information, there may be other factors that cause actions, events or results not to be as anticipated, estimated or intended. In making the forward-looking statements in this news release, if any, Trailbreaker has applied several material assumptions, including the assumption that general business and economic conditions will not change in a materially adverse manner. There can be no assurance that Forward-Looking Information will prove to be accurate, as actual results and future events could differ materially from those anticipated in such statements. Accordingly, readers should not place undue reliance on Forward-Looking Information. Except as required by law, Trailbreaker does not assume any obligation to release publicly any revisions to Forward-Looking Information contained in this news release to reflect events or circumstances after the date hereof or to reflect the occurrence of unanticipated events.
Trailbreaker's Prospecting Tips: Volcanoes and Ore Deposits a Hot Topic
by Mishka Gounden | Jul 13, 2021 | Blog
By Natasha Morris, Project Geologist
Malachite and azurite showings on quartz vein grab sample- Atsutla Property
The process of creating ore deposits requires many factors to line up. A few of these factors include, heat, pressure, fluid migration, and chemistry. That said, certain tectonic settings are more prone to these factors than others, most of which at some point in time had similar systems to volcano formation.
Volcanoes are eloquently linked with heat, pressure, and fluid creation, making that part pretty easy to distinguish; however it gets complicated. The chemistry and more specifically geochemistry of the fluids needs just the right ingredients, and cooking temperature/pressure…to create ore deposits.
Most systems need silica-rich and metal-rich fluids. The silica sources for the fluids are from the coarse crystalline roots of the volcano, intrusive granite like underworkings; and the metal-rich fluids can also be sourced from the intrusives, but are more so affiliated with more lower-silica byproducts of volcanoes, referred to as mafic intrusions and eruptions. To get both of these in a fluid takes a long time…even on the geological scale!
Our Atsutla Gold Project is situated on an old paleo-arc, convergent tectonic setting, with evidence of volcanic activity occurring as old as the Mesozoic to the Eocene, essentially over a ~150 million year period. Check out the photos below for examples of where we see evidence of mafic intrusions in the silica-rich Christmas Creek batholith.
For more information on our Atsutla Gold Project please check out our website:
https://www.trailbreakerresources.com/atsutla-gold-project/
Christmas Creek batholith showcasing mafic dyke invasion with entrained batholith host clast – Atsutla Property
Boulders and grab samples showing mafic clasts with malachite staining- Atsutla Property
A legal disclaimer for Trailbreaker Resources can be found here: Disclaimer


text:
Learning of Whole Arm Manipulation with Constraint of Contact Mode Maintaining
Nobuyuki Kawarai and Yuichi Kobayashi
Tokyo University of Agriculture and Technology, 2-14-16 Naka-cho, Koganei, Tokyo 184-8588, Japan
reinforcement learning, manipulation, contact mode estimation
This paper proposes the learning of whole arm manipulation with a two-link manipulator. Our proposal combines a controller obtained by reinforcement learning (actor-critic) and a learning classifier realized by a Support Vector Machine (SVM). The classifier learns the boundary between slip and stick modes in torque space. Using the result of classification, the robot learns to move the object toward desired position while keeping the desired contact modes. Control input (torque) is first specified by the actor. The SVM classifier judges whether torque can maintain the desired slip or stick mode and, if not, it modifies the torque so that the desired mode is maintained. It was verified in the simulation that our proposed learning realized accelerating of the object and decelerating it while keeping the desired mode, i.e., avoiding undesired slipping of the object.
Nobuyuki Kawarai and Yuichi Kobayashi, "Learning of Whole Arm Manipulation with Constraint of Contact Mode Maintaining," J. Robot. Mechatron., Vol.22, No.4, pp. 542-550, 2010.
[1] M. J. Cherif and K. K. Gupta, "Planning quasi-static fingertip manipulations for reconfiguring objects," IEEE Trans. on Robotics and Automation, Vol.15, No.5, pp. 837-848, 1999.
[2] M. Yashima, Y. Shiina, and H. Yamaguchi, "Randomized Manipulation Planning for A Multi-Fingered Hand by Switching Contact Modes," Proc. of IEEE Int. Conf. on Robotics and Automation, 2003.
[3] E. Yoshida, P. Blazevic, V. Hugel, K. Yokoi, and K. Harada, "Pivoting a Large Object: Whole-body Manipulation by a Humanoid Robot," Applied Bionics and Biomechanics, Vol.3, No.3, pp. 227-235, 2006.
[4] J. Nakanishi, J. Morimoto, G. Endo, G. Cheng, S. Schaal, and M. Kawato, "Learning from demonstration and adaptation of biped locomotion," Robotics and Autonomous Systems, Vol.47, No.2-3, pp. 79-91, 2004.
[5] R. Sutton and A. Barto, "Reinforcement Learning," MIT Press, 1998.
[6] H. Kimura, T. Yamashita, and S. Kobayashi, "Reinforcement Learning of Walking Behavior for a Four-Legged Robot," Proc. of IEEE Conf. on Decision and Control, pp. 411-416, 2001.
[7] J. Morimoto and K. Doya, "Acquisition of stand-up behavior by a real robot using hierarchical reinforcement learning," Robotics and Autonomous Systems, Vol.36, No.1, pp. 37-51, 2001.
[8] H. Miyamoto, J. Morimoto, K. Doya, and M. Kawato, "Reinforcement learning with via-point representation," Neural Networks, Vol.17, No.3, pp. 299-305, 2004.
[9] Y. Kobayashi, M. Shibata, S. Hosoe, and Y. Uno, "Learning of object manipulation with stick/slip mode switching," Proc. of Int. Conf. on Intelligent Robots and Systems, pp. 373-379, 2008.
[10] T. Odashima, et al., "A Soft Human-Interactive Robot RI-MAN," Video Proc. of IEEE/RSJ Int. Conf. on Intelligent Robots and Systems, 2006.
[11] S. Nakaoka, S. Hattori, F. Kanehiro, S. Kajita, and H. Hirukawa, "Constraint-based Dynamics Simulator for Humanoid Robots with Shock Absorbing Mechanisms," The 2007 IEEE/RSJ Int. Conf. on Intelligent Robots and Systems, 2007.
[12] A. Schaft and H. Schumacher, "An Introduction to Hybrid Dynamical Systems," Springer, 2000.
[13] V. N. Vapnik, "The Nature of Statistical Learning Theory," Springer,1995.
[14] O. L. Mangasarian and D. R. Musicant, "Lagrangian Support Vector Machines," J. of Machine Learning Research, Vol.1, pp. 161-177, 2001.
[15] S. Bhatnagar, R. Sutton, M. Ghavamzadeh, and M. Lee, "Natural Actor-Critic Algorithms," Automatica, Vol.45, No.11, pp. 2471-2482, 2009.
[16] D. W. Scott and S. R. Sain, "Multi-Dimensional Density Estimation," Handbook of Statistics – Vol 23: Data Mining and Computational Statistics, 2004.
[17] T. Schlegl, M. Buss, and G. Schmidt, "Hybrid Control of Multi-fingered Dexterous Robotic Hands," S. Engell, G. Frehse, E. Schnieder (Eds.): Modelling, Analysis and Design of Hybrid Systems, LNCIS, Vol.279, pp. 437-465, 2002.
[18] Y. Yin, S. Hosoe, and Z. Luo, "A Mixed Logic Dynamical Modeling Formulation and Optimal Control of Intelligent Robots," Optimization Engineering, Vol.8, pp. 321-340, 2007.

redpajama_set_name: RedPajamaCommonCrawl


text:
Shain named first-team CoSIDA/Capital One Academic All-America
(TOWSON, Md.) — University of Central Missouri Jennies soccer senior midfielder Kayla Shain was named to the CoSIDA/Capital One Academic All-America first-team Wednesday.
Shain, a speech pathology major from Olathe, Kan., with a perfect 4.0 GPA, led the Jennies in assists in 2012, dishing out seven helpers while also contributing four goals, two being game-winners.
She holds the career record at UCM for assists, posting 25 throughout her career here, and assists in a single season, contributing 10 in 2011.
The Olathe Northwest graduate was the 2012 MIAA Player of the Year as well as a first-team All-MIAA and Daktronics All-Region selection.
She helped lead the Jennies to a 16-2-5 overall record, their fifth MIAA regular season title in the past six seasons and an appearance in the NCAA II Round of 16 for the second time in school history.
Shain is the second Jennies soccer student-athlete in program history to be named first-team CoSIDA/Capital One Academic All-America.
To be eligible for Academic All-America consideration, student-athletes must be a varsity starter or key reserve, maintain a cumulative G.P.A. of 3.30 on a scale of 4.00, have reached sophomore athletic and academic standings at their current school and be nominated by their sports information director.
For more information about the Academic All-America Teams program, visit www.cosida.com.
UCM sports in the fall 2020 season
Father and daughter connect through football
Raise the banner: Jennies win MIAA Tournament
Jennies win three of four in weekend play
Mules extend winning streak in sweep of Newman
Mules Baseball dominates Concordia-St. Paul in weekend series
Jennies complete perfect home record in win over Lincoln
Mules victorious in thrilling final home game
Mules Struggle in Loss to No. 1 Northwest Missouri State
Jennies Fall to Missouri Western for First Conference Loss


I fly the Cybertech Cyberquad Maxi for my work and they operate the same way – shutting the throttle down all the way doesn't turn off the rotor motors nad they'll idle away but the Cybertech remote controller has additional functions that allow you to "Arm" and "Disarm" motor operation. When the Cyberquad is first powered up, it goes through a logic board initialise function by emmiting some chirps and pulsing all 4 motors. Then, you have to "Initialise" the unit then "Arm' it. When you arm it, the rotors start to idle and you're ready to fly.


Montiff Pure Taurine Powder 150 gms.
Directions: as dietary suuplement, take 1/2 teaspoon apprx. 2 grams daily or as recommended by a healthcare professional. To be used as a dietary supplement in a normal food program. It is recommended that this product be taken with vitamins and minerals.


ST. PAUL, Minn.—Republican Tim Pawlenty has set his sights on South Carolina, with his first visit to the state with presidential importance scheduled for two days in early May.
Minnesota's governor and a possible 2012 candidate is scheduled to be at two events. One is a May 7 reception for the South Carolina Republican Party and the next day he'll stump for a GOP candidate trying to topple an influential Democratic congressman.
Since ruling out another run for governor, Pawlenty has traveled to Iowa and New Hampshire. But he hadn't been to the state that hosts the first-in-the-South presidential primary.
According to an invitation to a fundraising event, Pawlenty will be in Rock Hill to campaign for Mick Mulvaney. The state senator is challenging Democratic Rep. John Spratt, the chairman of the House Budget Committee.


Again… it's for those living in the four season land. I still remembered when I stayed in US many years back, during winter I would to stay indoor because it was freezing cool in New York. Will I go back? Yes but unlikely to stay for good. Well, is there anything nicer in winter than snuggling up in front of a heater, toasty and warm and secure on your couch? Heating our home is something that we might not have spent an awful lot of time thinking about, but it's definitely something that should be of pretty big importance to us.
There are a couple of reasons why thinking about the kind of heating you're going to have in your home is important, so let's take a look at a couple of them now. We're also going to take a look at how you can ensure that your heater is maintained correctly after we discuss why choosing the right heater is important.
Why choosing the right heater for your home is important?
The heating that you choose to use for your home is going to have a pretty big impact on your overall heating bill. Prior to purchasing a heater, you need to make sure that you optimise the space that needs to be heated with the type of heater you go for. Some heaters are space heaters and so are more effective than others for large rooms and other types of heaters are best geared to small spaces. You can consult with a professional like the people at Thermofilm for advice and help on how to choose the right heater.
The kind of heater that you buy is going to have an impact on how much you worry about the heater working correctly. The old adage that 'you get what you pay for' really does ring true when you're talking about electrical goods, and especially about heaters. This is because there's such a big range of things that can potentially go wrong if/when a heater malfunctions, and you run the risk of electrocution and burning from a heater that is faulty.
How to maintain Happy Heating This Winter?
You need to make sure that you maintain your heater and look after it just like you would any of your other appliances or household items. It's actually probably more important that you have your heater checked and maintained (as compared to say, your TV) as it's a high-risk item and can cause fires or injury in the event of something going wrong. Let's take a look at how you can maintain your heater so that it will continue to provide warmth and comfort for years to come.
You should really have your electrical items checked every year by a serviceperson or electrical professional to ensure that the cords and cables of your appliances are all in good working order and supplying the right voltages without any surges. Any items that aren't working well should be replaced and/or updated.
There's nothing worse than going to plug in your heater at the first signs of a chilly night in winter, only to find that it's been stored badly and is now broken because of storage damage. If you take the right steps to ensure that your items are looked after even when they're not in use, then you're going to be rewarded with a long life for your appliances.
Many of us simply throw away warranties, but it does pay to keep them and to keep them updated. Keep your warranty slips in a drawer or folder for easy access.
Hopefully this short piece on the importance of choosing a good heater and the ways in which you can maintain your appliances has been helpful for your home. Happy Heating!


An Alberta judge has refereed a dispute over a pair of Edmonton Oilers season tickets.
According to court documents, Beverly and Donald McLeod, both avid National Hockey League fans, separated in 2015 after 35 years of marriage.
Last year, he agreed to pay her $15,000 per month in spousal support — but what to do about the rights to the Oilers season tickets, which are in his name, that they shared for 11 years?
Beverly McLeod filed an interim matrimonial property application seeking a court order for them to share the tickets for the 2017-18 season, including the playoffs.
Donald McLeod questioned whether the tickets, which are a hot commodity in Edmonton, should be considered matrimonial property.
Justice Ritu Khullar of Court of Queen's Bench granted Beverly McLeod's request — but the McLeods won't have to sit together at the games.
"The parties shall share equally in the Edmonton Oilers 2017-18 season tickets, including playoff games, if applicable," reads her ruling.
"The parties shall alternate choices for game tickets with the defendant choosing first the game for which he wants tickets, the plaintiff choosing second for her game, and the parties alternating choices thereafter until all regular season tickets have been assigned.
Evidence entered in court said before last hockey season, the tickets were used by the couple, their family and friends.
Last season Donald McLeod gave Beverly McLeod one-third of the regular season tickets and decided which tickets she would receive. She only received one set of playoff tickets.
He refused to give her any tickets for the upcoming season.
Khullar said the amount of money Donald McLeod is paying Beverly McLeod in spousal support is irrelevant — the tickets fall squarely within the definition of household goods under the law.
"These tickets have been owned for 11 years, were clearly acquired during the marriage, and fall within the definition of household goods," says the ruling.
The judge also awarded Beverly McLeod court costs.


Gain essential skills for career development with this distilled pocket guide by world leading leadership expert John Adair.
Develop Your Leadership Skills is leadership guru John Adair's most accessible title on leadership. This essential pocket guide will boost your confidence levels, inspire you and guide you on your journey to becoming a leader of excellence. Acknowledged as a world expert, John Adair offers stimulating insights into recognizing and developing individual leadership qualities, acquiring personal authority and, most importantly, mastering core leadership functions such as planning, communicating and motivating.
Fully updated for 2019, this 4th edition now features even more practical exercises, useful templates, and top tips to improve or develop your leadership skills, this guide distils the essence of John Adair's teaching and provides a framework for becoming an effective leader.


text:
A third of Gauteng pupils still travel more than 5km to school
Alexandra Parker, Gauteng City-Region Observatory and Julia de Kadt, University of the Witwatersrand
How did you choose your child's school? And was proximity to your home a major factor?
Education enables social mobility. This is particularly true in a context of high inequality and high unemployment, such as South Africa. This is one reason why some parents choose to send their children to schools further away from home - often at considerable financial and social costs.
Research about pupils' commutes in Africa is still limited. But we do know that the journeys young people make to urban schools on the continent – and elsewhere in the world – can be quite long and complicated.
In research we're doing at the Gauteng City-Region Observatory, which works with data to inform policy, we're working to understand pupils' daily commutes in Gauteng, South Africa's most populated province. Apartheid's legacy entrenched inequality in the geography of Gauteng, meaning that poorer families typically live further from high-performing schools.
Using 2016 data from the Gauteng Department of Education, we mapped the percentage of pupils at each public school (primary and secondary) in Gauteng who travel more than 5 kilometres to their school. We found that pupils' commutes were highly variable across schools.
Among our findings were that over a third of pupils still travel more than 5 kilometres to school. And the province's peripheral areas have the highest percentage of children per school who are travelling long distances.
Also read: How Joburg moms travel (or not) to give their kids the best life
Unpacking key findings
Gauteng has an admissions policy which demarcates a default feeder zone of a 5 km radius around each school. The policy, which is currently being reworked and reviewed, prioritises pupils who reside within the 5 km zone or those whose parents' place of work is within the feeder zone.
But the quality of education – both actual and perceived – is highly variable across the province, and remains strongly shaped by the geography of apartheid. The current default 5 km feeder zones substantially replicate apartheid geography.
These maps show that the proportions of pupils travelling more than 5 km vary greatly across schools, ranging all the way from 0% to 100% of a school's student body.
GCRO
Some of this variation certainly relates to population density in the areas around a school. For example, outlying areas around Carletonville and Vanderbijlpark feature a number of schools where almost all pupils live more than 5 km from the school. By contrast, in densely populated areas, such as Pretoria, Tembisa, central Johannesburg and Soweto, schools have large numbers of pupils living within the 5 km radius.
Also read: Joburg mom's safe kids transport service is a roaring success
These are the key trends we identified from our mapping:
There is extensive and interesting variation within residential areas, and in many instances neighbouring schools appear to draw pupils from very different areas.
Over a third of pupils (37%) still travel more than 5 kms to school. For some pupils on the outskirts of the city-region their nearest school is more than 5 kms from where they live. For others this suggests the ability to exercise a level of school choice.
Many schools in more affluent suburban areas have high proportions of pupils travelling further than 5 km to reach school, but it's in peripheral areas where the highest percentage of children per school are travelling long distances. In lower-income township areas, most schools draw their pupils from the surrounding community.
At the provincial level, there is no clear relationship between schools with high proportions of learners travelling more than 5 km, and measures parents may use to assess school quality, such as matric pass rate, historical department of education, or school fee status.
Also read: How to form a school lift club
Many factors at play
There are complex dynamics behind these patterns. They reflect decisions being made at many different levels by families and schools.
Families weigh multiple factors when choosing schools, and often do so in the face of incomplete or imperfect information. These factors include a school's teacher-pupil ratio, its ethos and reputation, its facilities, the language of instruction, racial composition, and its proximity to their home or work.
And of course, different families may weigh the same factors differently. A school's ethos may be more important for some parents and learners, while for others the language of instruction is more significant. The reality is that we simply don't know how Gauteng's parents make these crucial decisions – and what this means for the provision of equitable access to quality education.
That's one of the questions we're asking in our new research project, in which we'll gather data from parents and pupils around Gauteng about their reasons for choosing particular schools.
There are many costs to travelling further to school. However, the disadvantages of not accessing quality education may be greater. For many families in Gauteng there is much at stake.
Parents and pupils in Gauteng can send messages or voice notes about their school choices and commutes via WhatsApp on 078 047 7272. All stories will remain anonymous but may be quoted in research related publications in the future.
This article was co-authored by Christian Hamann, a junior researcher at the Gauteng City-Region Observatory.
Alexandra Parker, Researcher of urban & cultural studies, Gauteng City-Region Observatory and Julia de Kadt, Senior Researcher, University of the Witwatersrand. This article was originally published on The Conversation. Read the original article.
How did you choose your child's school? Were there any important factors that influenced your decision? And would you choose a good school that's further away over a school that was close by and not as good? Send us your thoughts and stories to chatback@parent24.com and we may publish it on the site. Do let us know if you'd like to remain anonymous.
Unschooling: 'No school for my kids – they'll learn to read by themselves'
Here's how you can help to make SA's roads safer for our kids
This list with 200 of South Africa's oldest schools may surprise you
Joburg mom's safe kids transport service is a roaring success
How Joburg moms travel (or not) to give their kids the best life
How to form a school lift club
'Worry and fear are constant': How to support your child with an anxiety disorder


Last weekend, two Neil Simon plays opened in the North Bay, each a demonstration of the legendary playwright's mastery of rat-a-tat dialogue, skillful one-liners and flawed but relatable characters.
At San Rafael's Belrose Theater, Marin Onstage presents The Sunshine Boys, Simon's 1972 hit about a long-feuding former vaudeville duo lured into reuniting for a television special. Directed with obvious affection by Ron Nash, the production boasts an agreeably likeable cast, headlined by Grey Wolf as the irascible, grudge-carrying comedian Willie Clark and Michael Walraven as Al Lewis, clearly wary of his old partner but game to give the reunion a try.
In supporting roles are Richard Kerrigan as Willie's devoted nephew, Ben, and Christina Jaqua as an exhibitionist actress and a sassy registered nurse, with director Nash appearing as a television producer.
This kind of comedy, it should be stated, is not easy. To work, it requires metronome-perfect pacing. Wolf and Walraven do occasionally rise to that challenge, though their funniest moment is a nearly silent scene in which the two do nothing but move furniture around. Unfortunately, the poky pace of the production—possibly fueled by opening-night tentativeness and some conspicuous line bobbles—is far too slow and riddled with pauses for Simon's language to truly sing.
Preceding Sunshine Boys by seven years was Simon's early masterpiece, The Odd Couple, another tale of mismatched men. Now playing at Cinnabar Theater, the play gets a delightfully spot-on, perfectly paced production, directed with genuine warmth and slapstick-savvy by Jennifer King.
Oscar (Nathan Cummings, superb in every way) is a messy, undisciplined sportswriter who impulsively offers a room to his freshly separated, compulsively tidy best friend Felix (Aaron Wilton, perhaps a bit young for the part, but every bit as excellent). It does not take long for the fragile Felix—constantly chasing around with ashtrays and coasters—to start driving the laidback Oscar nuts.
The supporting cast—Oscar's Friday-night poker buddies and the neighborly twins, the Pigeon sisters (Samantha Dakin and Morgan Harrington)—are all extremely good, mining the text for laughs without losing sight of the characters' inherent humanity. But ultimately, it's the gracefully winning chemistry between Wilton and Cummings that makes this hilarious Odd Couple so fun and so emotionally satisfying.
April 6, 2017 in Theatre Reviews.


One Ingredient Only: Sinew instantised whey protein contains only supreme quality protein from reputed international resources. 100 % whey, gluten-free & cold processed.
Minimal Processing:30 grams whey protein minimally processed to preserve the delicate nutrients found in natural whey protein powder.
Build Lean Muscles: Helps to build lean muscle, enhances recovery and reduces muscle loss.
Per Serving: 23.7 gm protein, 4 gm glutamine, & 5 gm bcaa out of 30 gm.
Instant Mix: Readily dissolves in water or milk, No lumping or residue.
* It is 100% Vegetarian.
* Contains 24g of 100% Whey Protein Blend.
* It improves Strength and Immunity.
* It is powerful Post-Workout Recovery Protein.
* It is Instantized to be more soluble.


text:
\section{Introduction}\label{sec:introduction}
The dispersion of autonomous mobile robots to spread them out evenly in a region is a problem of significant interest in distributed robotics, e.g. \cite{HABFM03, HABFM02}. Initially, this problem was formulated by Augustine and Moses Jr. \cite{AM18} in the context of graphs. They defined the problem as follows: Given any arbitrary initial configuration of $k \leq n$ robots positioned on the nodes of an $n$-node anonymous graph, the robots reposition autonomously to reach a configuration where each robot is positioned on a distinct node of the graph. Mobile robot dispersion has various real-world and practical applications, such as the relocation of self-driving electric cars (robots) to recharge stations (nodes). Assuming that the cars have smart devices to communicate with each other, the process to find a free or empty charging station, coordination including exploration (to visit each node of the graph in minimum possible time), scattering (spread out in an equidistant manner in symmetric graphs like rings), load balancing (nodes send or receives loads, and distributes them evenly among the nodes), covering, and self-deployment can all be explored as mobile robot dispersion problems. \cite{KA19,KMS19, KMS020, KMS22}.

The problem has been extensively studied in different graphs with varying assumptions since its conceptualisation \cite{MollaM19,KA19,KMS020, KMS19, KMS20, KMS22, KS21, MM22, MMM020, MMM21}. In this paper, we continue the study about the trade-off of memory requirement and time to solve the dispersion problem.  Recently, Pattanayak et al. \cite{PS021} explored the problem of dispersion in a set-up where some of these mobile robots are prone to crash faults. Whenever a robot crashes, it loses all its information immediately, as if the robot has vanished from the network. This makes the problem more challenging and also makes the problem more realistic in terms of real world scenarios, where faulty robots can crash at any moment. In this paper, we have continued to study the efficacy of the problem in the same faulty environment. We have studied the dispersion problems with the rooted and arbitrary configuration of the robots with faulty setup. Both the algorithms maintain optimal level of memory requirement for each robot.

In our work, we mainly discuss two problems of mobile robot dispersion in the presence of crash-fault: i) rooted configuration and ii) arbitrary configuration. In the rooted case, all robots are placed together at a single node (called the $root$) at the start. On the other hand, the arbitrary configuration is a general configuration where the robots are initially placed in some $l<k$ clusters arbitrarily across the graph. Our first algorithm works for the rooted configuration by using depth first search (DFS) traversal and improves the round complexity from $O(f\cdot\text{min}(m,k\Delta))$ \cite{PS021} rounds to $O(k^2)$. The second algorithm for the arbitrary graph is an entirely new result whose complexity depends upon the factors like the number of faulty robots $(f)$, number of robot clusters $(l)$, total number of edges in the graph $(m)$, number of robots $(k)$ and the highest degree of the graph $(\Delta)$. In this case, we have a round complexity of  $O((f+l)\cdot \text{min}(m, k \Delta, k^2))$.

\subsection{Notations at a Glance}

\begin{center}
\begin{tabular}{ p{2cm}|p{10cm} }
    \hline
    \multicolumn{2}{c}{
    \textbf{Notations used throughout the paper}} \\
    \hline
    \centering \textbf{Symbols} & \textbf{Meaning} \\
    \hline
    \centering $G$ & The arbitrary graph acting the underlying network for the robots\\
    \hline
    \centering $n$ & The number of  nodes(vertices) of $G$\\
    \hline
    \centering $m$ & The number of edges of $G$\\
    \hline
    \centering $\Delta$ & The highest degree among the nodes of $G$\\
    \hline
    \centering $k$ & Number of robots\\
    \hline
    \centering $f$ & Number of faulty robots among $k$\\
    \hline
    \centering $l$ & Number of initial clusters of robots in the $clustered$ configuration\\
    \hline
    \centering $r_i$ & A robot with ID $i$\\
    \hline
    \centering $R_c$ & $root$ vertex in the $rooted$ configuration\\
    \hline
\end{tabular}
\end{center}
\vspace{-0.5cm}

\subsection{Challenges and Techniques}

Both of our Algorithms, \ref{alg: rooted_config} and \ref{alg: cluster_config} have Depth First Search as their foundation. Since the nodes themselves are indistinguishable, navigation is done via the nodes that settle on the nodes.  Furthermore, the robots cannot communicate between themselves unless they are in the same node. In a crash setting, this causes immediate problems in navigation. Faulty robots, when they crash at inappropriate times, can also create endless cycles or can increase the number of clusters on the arbitrary initial configuration. In this paper, we have tried to solve the problem by overcoming the said challenges, minimising the time complexity and keeping an optimal memory requirement for each robot.

For the rooted initial configuration, we perform a DFS search on $G$ from the $root$ vertex. Robots from the root are released one by one as they explore the graph sequentially. The first robot from the root settles down at the root and sets the minimum port number (that is yet unexplored) available at the root as its current direction pointer ($cdr$). The next robot follows the $cdr$ of the previous robot and reaches a new node, where it settles and sets its own $cdr$ pointer. Continuing in a similar way, the succeeding robots build upon the DFS and continue to explore the graph. While exploring the graph, the robots can complete the exploration of a certain part of the graph via a particular vertex, when, we set the backtrack value of the robot in the particular vertex to $1$. This ensures no further robots visit this part of the graph unnecessarily. In our algorithm, the $i^{th}$ robot is sent only after $3i$ rounds have elapsed. The $i$ robot uses the $3i$ rounds to explore and if needed, return to the root (the robot returns to the root if it does not find a new node to settle after $2i$ rounds). In such a case, the robot keeps exploring new edges before it breaks out into a new path and settles at a new node there. During the algorithm, if any robot crashes, the succeeding robots from the root correct any inconsistency in the pointers of the settled robots. We claim that each such crash could only extend the number of rounds by an $O(k)$, at-most (Lemma \ref{lem: extra_cost}) and eventually the algorithm (Algorithm \ref{alg: rooted_config}) completes in $O(k^2)$ rounds.

The arbitrary configuration required a different approach, however. At the start, we have $l< k$ clusters of robots at $l$ different nodes of the graph. Our algorithm (Algorithm \ref{alg: cluster_config}) runs in phases, where each phase consists of $\text{min}(k\Delta, k^2)$ rounds. At the start of each phase, each cluster begins a $counter$ that counts down from $\text{min}(k\Delta, k^2)$. At the start of the phase, each cluster $C_i$ begins exploring the network in parallel using a DFS approach.  Unlike the rooted configuration, individual robots do not explore and return, but the entire cluster moves together. Whenever a cluster encounters a new (empty) node in the network, the robot with the current highest ID in the cluster settles, and updates its flag variables accordingly. Each time the cluster moves through an edge to a different node, the counter is decreased by 1. When the counter becomes zero, all flags are reset. After that, each cluster starts exploring the network with its current node as a point of origin. This continues until all robots in the cluster settle or the algorithm ends. The algorithm completes in $O((l+f)min(k\Delta,k^2))$ rounds with each robot requiring an optimal $O(\log (k+\Delta))$ bits of memory.

\section{Related Work}\label{sec:relatedwork}
The problem of dispersion was first introduced in \cite{AM18} by Moses Jr. \textit{et al.}, where they solved the problem for different types of graphs. They had given a lower bound of $\Omega(\log n)$ on the memory of each robot (later, made more specific with $\Omega(\log(\text{max}(k, \Delta)))$ in \cite{KMS19}) and of $\Omega(D)$ on the time complexity, for any deterministic algorithm on arbitrary graphs. They also proposed two algorithms on arbitrary graphs, one requiring $O(\log n)$ memory and running for $O(mn)$ time while the other needing a $O(n\log n)$ memory and having a time complexity of $O(m)$ .

Kshemkalyani and Ali~\cite{KA19} provided several algorithms for both synchronous and asynchronous models. In the synchronous model, they solved the dispersion problem in $O(\min(m,k\Delta))$ rounds with $O(k\log \Delta)$ memory. For the asynchronous cases, they proposed several algorithms, one particularly requiring $O(\Delta^D)$ rounds and $O(D\log \Delta)$ memory, while another requiring $O(\max(\log k, \log \Delta))$ memory and having a time complexity of $O((m-n)k)$. In a later work, Kshemkalyani \textit{et al.}, in \cite{KMS19} improved the time complexity to $O(\min(m,k\Delta)\log k)$ keeping the memory requirement to $O(\log n)$, while requiring that the robots know the parameters $m,n,k,\Delta$ beforehand. In subsequent work, \cite{SSKM20} kept the time and memory complexity of \cite{KMS19} intact while dropping the requirement of the robots to have prior knowledge of $m,k,\Delta$. Recently, Kshemkalyani and Sharma \cite{KS21} improved the time complexity to $O(\min(m,k\Delta))$. Works of \cite{MollaM19} and \cite{DBS21} used randomisation, which helped to reduce the memory requirement for each robot.

In \cite{KMS20}, Kshemkalyani \textit{et al.}, studied the problem in the \textit{Global Communication Model}, in which the robots can communicate with each other irrespective of their positions in the graph\footnote{In the \textit{Local Communication Model} robots can communicate with each other only when they are at the same node.}. The authors obtained a time complexity of $O(k\Delta)$ rounds when $O(\log (k+\Delta))$ bits of memory were allowed at each robot.  Whereas, when robots were allowed $O(\Delta+\log k))$ bits, the number of rounds reduced to $O(\min(m, k\Delta))$. Both were for arbitrary initial configuration of robots. They also used BFS traversal techniques for investigating the dispersion problem. The BFS traversal technique yielded a time of $O((D+k)\Delta(D+\Delta))$ rounds with $O(\log D + \Delta\log k)$ bits of memory at each robot, using global communication, for arbitrary starting configuration of robots. Here $D$ denotes the diameter of the graph. The problem was also studied on \textit{dynamic} graphs in \cite{KMS020},\cite{AAMKS18},\cite{LFPPSV20}. \textit{Graph Exploration}, which is a related problem, has also been intensively studied in literature \cite{BGHIKK09} \cite{CFIKP08} \cite{DDKPU13} \cite{FIPPP05}

The dispersion problem has also been recently studied for configurations with faulty robots. In\cite{MMM20}, Molla \textit{et al.}, considered the problem for anonymous rings, tolerating weak Byzantine faults (robots that behave arbitrarily but cannot change their IDs). They gave three algorithms \textbf{(i)} the first one being memory optimized, requiring $O(\log n)$ bits of memory, $O(n^2)$ rounds and tolerating up-to $n-1$ faults.\textbf{(ii)} the second one is time optimized with $O(n)$ rounds, but require $O(n\log n)$ bits of memory, tolerating up-to $n-1$ faults. \textbf{(iii)} the third one runs in $O(n)$ time and $O(\log n)$ memory but cannot tolerate more than $[\frac{n-4}{17}]$ faulty robots. In \cite{MMM21}, the authors proposed several algorithms for dispersion with some of them tolerating strong Byzantine robots (robots that behave arbitrarily and can tweak their IDs as well). Their algorithms are mainly based on the idea of gathering the robots at a root vertex, using them to construct an isomorphic map of $G$ and finally dispersing them over $G$ according to a specific protocol. However, their algorithms take exponential rounds for strong Byzantine robots starting from an arbitrary configuration. For the rooted configuration, their algorithm takes $O(n^3)$ rounds, but tolerates no more than $[n/4-1]$ strong Byzantine robots. Dispersion under \textit{crash faults} has been dealt with in \cite{PS021}. In \cite{PS021}, Pattanayak \textit{et al.}, have considered the problem for a team of robots starting at a rooted configuration, with some robots being crash prone. Their algorithm handles an arbitrary number of crashes, with each robot requiring $O(\log(k+\Delta))$ bits of memory. The algorithm completes in $O(f\cdot \min(m,k\Delta))$ rounds. In our paper, we improve this time complexity while keeping the memory requirement to optimal and also extend the problem for the robots starting in arbitrary configuration. A comparison between our results and the most aligned works is shown in Table~\ref{tab:results}.

\begin{center}
\begin{table}[H]
    \centering

    \begin{tabular}{ p{4.5cm} p{2cm} p{2cm} p{4.5cm} }
    \hline
    \textbf{Algorithm}  & \textbf{Initial Config.} & \textbf{Crash Handling} & \textbf{Time}\\
    \hline
    Kshemkalyani \textit{et al.} \cite{KS21}* & Arbitrary & No & $O(\min(m,k\Delta))$ \\
    Pattanayak \textit{et al.} \cite{PS021} & Rooted & Yes & $O(f \cdot \min(m, k\Delta) )$ \\
    \textbf{Algorithm in Sec.~\ref{sec: rooted_configuration} }& Rooted & Yes & $O(k^2)$\\
    \textbf{Algorithm in Sec.~\ref{sec: cluster} }& Arbitrary & Yes & $O((f+l) \cdot
    \min(m,k\Delta, k^2))$\\

\hline
\end{tabular}
    \caption{Results on Dispersion of $k \leq n$ robots with $f\leq k$ faulty robots on $n$-node arbitrary anonymous graphs having $m$ edges such that $\Delta$ is the highest degree of the graph in the local communication model. Each uses an optimal memory of $O(\log(k+\Delta))$ bits on each robot. \centering *\textit{The best known result as of now for fault-free dispersion.}}
    \label{tab:results}
\end{table}
\end{center}

\vspace{-1.2cm}
\section{Model and Problem Definition}\label{sec:model}
We now elaborate on our model and problem in detail.\\\\
\textbf{Graph: } The underline graph $G$ is connected, undirected, unweighted and anonymous with $|V| = n$ vertices and $|E| = m$ edges. The vertices of $G$ (also called nodes) do not have any distinguishing identifiers or labels.
The nodes do not possess any memory and hence cannot store any information. The degree of a node $i\in V$ is denoted by $\delta_i$ and the maximum degree of $G$ is $\Delta$. Edges incident on $i$  are locally labelled using a port number in the range $[1,\delta_i]$. A single edge connecting two nodes receives two independent port numbers at either end. The edges of the graph serve as $routes$ through which the robots can commute. Any number of $robots$ can travel through an edge at any given time.\\\\
\textbf{Robots: }We have a collection of $k\leq n$ robots $\mathbb{R} = \{r_1,r_2,...,r_k\}$ residing on the nodes of the graph. Each robot has a unique ID and has some memory to store information. The robots cannot stay over an edge, but one or more robots can be present at a node at any point of time. A group of robots at a node is called $co-located$ robots. Each robot knows the port number through which it has entered and exited a node.\\\\
\textbf{Crash Faults: }The robots are not fault-proof and a faulty robot can $crash$ at any time during the execution of the algorithm. Such $crashes$ are not recoverable and once a robot $crashes$ it immediately loses all the information stored in itself, as if it was not present at all. Further, a crashed robot is not visible or sensible to other robots. We assume there are $f$ faulty robots such that $f\leq k$.\\\\
\textbf{Communication Model:} Our paper considers a local communication model where only the co-located robots can communicate among themselves.\\

\noindent\textbf{Time Cycle: } Each robot $r_i$, on activation, performs a $Communicate-Compute-Move$ $(CCM)$ cycle as follows.
\vspace{-0.1cm}
    \begin{itemize}
        \item Communicate: $r_i$ reads its own memory along with the memory of other robots co-located at a node $v_i$.
        \item Compute: Based on the gathered information and subsequent computations, $r_i$ decides on several parameters. This includes, deciding whether to settle at $v_i$ or otherwise determine an appropriate exit port, choosing the information to pass/store at the settled robot and the information to carry along-with, if, exiting $v_i$.
        \item Move: $r_i$ moves to the neighboring node using the computed exit port.
    \end{itemize}
\vspace{-0.3cm}
We consider a synchronous system, where every robot is synchronized to a common clock and becomes active at each time cycle or round.\\\\
\textbf{Time and Memory Complexity: }We evaluate the time in terms of the number of discrete rounds or cycles before achieving {\sc Dispersion}. Memory is the number of bits of storage required by each robot to successfully execute {\sc Dispersion}. Our goal is to solve {\sc Dispersion} using optimal time and memory.
\\\\

Given a simple, anonymous, port-labelled, connected graph $G$ with $n$ memory-less nodes and $m$ edges with maximum degree $\Delta$. Consider a team of $k\leq n$ mobile robots residing arbitrarily on the nodes of the graph, with some of the robots being prone to crashes. We want to devise an algorithm such that each robot, which eventually remains active (some of the robots can crash during the algorithm), re-positions itself to a distinct node of $G$ and remain stationary thereafter i.e., no two active robots occupy a single node at the conclusion of the algorithm.  Below, we formally state the problem of fault-tolerant dispersion.
\begin{definition}[Fault-Tolerant Dispersion]
\label{def:FT-dispersion}
Given $k \leq n$ robots, up to $f$ of which are faulty (which may fail by crashing), initially placed arbitrarily on a graph of $n$ nodes, the non-faulty robots, i.e., the robots which are not yet crashed must re-position themselves autonomously to reach a configuration where each node has at most one (non-faulty) robot on it and subsequently terminate.
\end{definition}

\section{Our Results}

We consider a team of $k\leq n$ mobile robots placed on an arbitrary, undirected simple graph, consisting of $n$ anonymous, memory-less nodes and $m$ edges. The ports at each node are labelled. The robots have unique IDs and a restricted amount of memory (measured in number of $bits$). These robots have some computing capability and can communicate with other robots, only when they are at the same node. We consider two different starting scenarios, based on the initial configuration of the robots. When the robots start from a single node, we call the configuration $rooted$, otherwise, we call it an $arbitrary$ configuration. We further assume that $f\leq k$ faulty robots in the network are prone to crash at any point. Our first algorithm for the rooted configuration crucially uses depth first search (DFS) traversal and improves the round complexity from $O(f\cdot\text{min}(m,k\Delta))$ \cite{PS021} rounds to $O(k^2)$. The second algorithm for the arbitrary configuration is an entirely new result whose complexity depends upon the factors: the number of faulty robots $(f)$, number of robot clusters $(l)$, total number of edges in the graph $(m)$, number of robots $(k)$ and the highest degree of the graph $(\Delta)$. In this case, the round complexity is  $O((f+l)\cdot \text{min}(m, k \Delta, k^2))$. The results are summarized in the following two theorems:

\medskip
\noindent \textbf{Theorem }\ref{thm: single-source}\textbf{(Crash Fault with Rooted Initial Configuration)} \textit{Consider any rooted initial configuration of $k \leq n$ mobile robots, out of which $f \leq k$ may crash, positioned on a single node of an arbitrary, anonymous $n$-node graph $G$ having $m$ edges, in synchronous setting {\sc Dispersion} can be solved deterministically in $O(k^2)$ rounds with $O(\log (k+\Delta))$ bits memory at each robot, where $\Delta$ is the highest degree of the graph.}

\medskip
Theorem \ref{thm: single-source} improves over the previously known algorithm (in the worst case, improvement is from cubic to quadratic) that takes $O(f\cdot\min(m,k\Delta))$ rounds for $f$ faulty robots \cite{PS021}. The theorem also matches the optimal memory bound ($\Omega(\log(\text{max}(k,\Delta)))$ \cite{KMS19}) with $O(\log(k+\Delta))$ bit memory and can handle any number of crashes.

\medskip
\noindent \textbf{Theorem }\ref{thm: clustered}\textbf{(Crash Fault with arbitrary Initial Configuration)} \textit{Consider any arbitrary initial configuration of $k \leq n$ mobile robots,  out of which $f \leq k$ may crash and  positioned on $l \leq k/2$ nodes of an arbitrary and anonymous $n$-node graph $G$ having $m$ edges, in synchronous setting {\sc Dispersion} can be solved deterministically in $O((f+l)\cdot\text{min}(m,k\Delta, k^2))$ time with  $O(\log(k+\Delta))$ bits memory at each robot.}

\medskip
Theorem \ref{thm: clustered} solves the dispersion for arbitrary configuration with optimal memory per robot. The time complexity matches the one conjectured by Pattanayak \textit{et al.}~\cite{PS021}. When $f,l$ and $\Delta$ are constants, the time complexity matches the lower bound of $\Omega(k)$. Moreover, the algorithm can handle any number of faulty robots. The results are summarized in the Table~\ref{tab:results}.

\section{Crash-Fault Dispersion from Rooted Configuration}\label{sec: rooted_configuration}
In this section, we present a deterministic algorithm that disperses the robots with single-source (rooted configuration) in adaptive crash fault. Our goal is to minimise the round complexity as well as keep the memory of the robots low (in bits).
\vspace{-0.5cm}
\subsection{Algorithm}
In the absence of faulty nodes, one can run the DFS (depth first search) algorithm to solve the robot dispersion problem in $O(\textit{min}(m, k\Delta))$ rounds. But in the presence of crash faults setup, due to crashes, it becomes challenging to explore the graph. Classic dispersion algorithms rely on the robots themselves to keep track of the paths during exploration. The presence of a crashed robot in this instance may lead to an endless cycle. Therefore, our goal is  to ensure the dispersion of mobile robots despite the presence of faulty robots.

In the rooted configuration, to manage the presence of faults, we avoid exploring the graph together with all the robots. That is, the graph is explored sequentially such that each robot $r_i$ ($1 \leq i \leq k$) does not begin exploring the graph, until the previous robot $r_{i-1}$ is guaranteed to have settled. During exploration, whenever a robot $r_i$ finds an empty node it settles down at that spot. Let us call this algorithm as {\sc Rooted-Crash-Fault-Dispersion}. Below, we explain the algorithm in detail.\\% (Algorithm~\ref{alg: rooted_config}).

\noindent \textbf{Functionality:} For simplicity, let us assume that the robots' ID lies in the range of $[1,\,k]$. Otherwise, the robots can map their IDs from the actual range to the range $[1,\,k]$, since the IDs are distinct. We denote the rooted configuration by $R_c$. We slightly abuse notation and use $R_c$ to indicate both the root and the initial gathering of robots. Robots at $R_c$ traverse the graph via DFS (Depth First Search) approach, where the decision of which edge to traverse first is based on the port numbers. The process proceeds in increasing order of IDs, starting with the robot with the minimum ID at $R_c$. $R_c$ then sends each robot to explore the graph via DFS.

Let the robot with the current minimum ID be $r_i$. Then $r_i$ begins to explore the graph via DFS (starting with the minimum port number at $R_c$). Once it leaves $R_c$, it has $3i$ rounds within which it can either i) settle at the first empty node it finds or ii) return to $R_c$ if it does not find an empty node to settle within $2i$ rounds.  If $r_i$ reports to $R_c$ within $3i$ rounds, then $R_c$ ensures that it does not release the robot with the next lowest ID, say  $r_{i+1}$.
This can be guaranteed as $r_i$ needs to traverse at most $(i-1)$ edges to explore the sub-graph traversed by $r_{i-1}$. $r_i$ requires at most $i$ rounds to return to the base $R_c$ since the next traversed edge might lead to the already visited node which is not empty. As $r_i$ requires $i$ rounds to report at the $R_c$, therefore, $r_i$ explores the graph for only $2i$ rounds. Notice that a robot will not traverse at the distance of more than $(i+1)$, before that, there will be an empty edge at a distance (distance from the root) of $(i+1)$ and the robot will settle down there. If $r_i$ did not find the empty node within $2i$ rounds then it starts to traverse towards $R_c$. In this way, $r_i$ reports to $R_c$ within $3i$ rounds so that $R_c$ does not send another robot to explore the graph. $R_c$ re-sends $r_i$ to explore the graph.
In this way, any $r_i$ traverses the graph until it finds an empty node. Note that in our process, we ensure that there are no two robots that are exploring the graph at the same time.

To maintain the protocol, each $r_i$ maintains the following fields. Its ID $(r_i)$, a parent pointer ($r_i.parent$) that represents the edge it traversed,  a current direction pointer $(r_i.cdr)$ which indicates the direction it is required to follow. And finally, a backward traversal value $(r_i.B)$ which is initially $0$, and is set to $1$ once the backward traversal is complete. Here, our procedure performs the traditional DFS protocol but one-by-one, that is, the robots do not explore the graph simultaneously. In the following subsection, we give a detailed procedure the DFS procedure.

\subsubsection{DFS Traversal Procedure}\label{DFS Procedure}
{
\noindent Let the robots positioned initially at root $R_c$ be denoted by $R_c=\{r_1,r_2,\dots,r_k\}$, where $r_i$ is robot with ID $i$. For the \textit{rooted configuration}, each robot stores the following four variables :
    \begin{enumerate}
            \item $r_i.parent:$ the port number through which the robot $r_i$ has entered a new empty node and has settled. Initially, it is assigned to $null$.
            \item $r_i.cdr:$ the current direction of a settled robot $r_i$. A settled robot sets $cdr$ as the minimum available port number, however, as the algorithm progresses and more nodes are explored the robot $i$ can change its $cdr$ value, if needed.
            \item $r_i.B:$ a binary variable denoting backtrack status, initially assigned to $0$, takes the value $1$, if and only if, every sub-graph accessible through each of $r_i$'s child edges has been explored and now, no new part of $G$ could be explored through the node containing $r_i$.
            \item $r_i.settled:$ a binary variable, initially assigned $0$, takes the value $1$, if and only if, $r_i$ has settled at a particular node of $G$
    \end{enumerate}
\noindent\textbf{Update procedure:} In the first round, the robot $r_1$ assigns $r_1.settled\leftarrow1$ and sets $r_1.cdr\leftarrow1$, the minimum port number available at $R_c$. In the next round, the robot $r_2$ at $R_c$ reads and exits through $r_1.cdr$ to land at a new empty node (say $w$) and consequently sets $r_2.settled\leftarrow1$. Assume that $r_2$ arrived at $w$ through port $p_w$. $r_2$ writes $r_2.parent\leftarrow p_w$ and if $r_2.cdr \leq deg(w)$,  $r_2.cdr\leftarrow r_2.cdr+1$, if port $r_2.cdr+1\neq p_w$, else $r_2.cdr\leftarrow r_2.cdr+2$. In the third phase, the incoming robot $r_3$, following the $cdr$ pointers to $w$, can now decide to march forward or backtrack based on the following conditions:

\begin{itemize} \label{update}

    \item \textbf{forward} : $if$ ($p_w = r_2.parent$ or $p_w=$ old value of $r_2.cdr$) and (there is at least one port at $w$ that has not been taken yet). The robot $r_3$ exit $w$ through port $r_2.cdr$

    \item \textbf{backtrack} : $if$ ($p_w = r_2.parent$ or $p_w=$  old value of $r_2.cdr$) and (all the ports of $w$ have been taken already). Then, the robot $r_3$  exits $w$ through port $r_2.parent$. In such case, $r_3$ also sets the backtrack value of $r_2.B\leftarrow1$

\end{itemize}

There is another condition, denoting the onset of a cycle, under which choosing the backtrack phase is in order. When a robot $r_j$ enters $x$ through $p_x$ and robot $r$ is settled at $x$,
\begin{itemize}
    \item \textbf{backtrack} : $if$ ($p_x \neq r.parent$ and $p_x \neq $ old value of $r.cdr$). The robot $r_j$ exits $x$ through port $p_x$ and no variables of $r$ are altered.
\end{itemize}

Each robot explores the graph one by one and settles eventually. In the $ith$ phase, a robot $r_i$ has $3\cdot i$ number of rounds, in which, it can either settle down or explore $\frac{i}{2}$ new edges of $G$ (it takes i rounds for $r_i$ to come to $r_{i_1}$, takes additional $i$ rounds to explore $\frac{i}{2}$ new edges and return to $r_{i-1}$ and further $i$ rounds to return at $R_c$, following the $parent$ pointers). \\

\medskip
\noindent Now, coming back to the main algorithm, we now explain the \textbf{Decision} part.
\medskip\\
\noindent\textbf{Decision:} If $r_i$ encounters an unexpected child, $r_u$ i.e., a child whose parent and current pointer direction are set in the inappropriate direction w.r.t the perspective of $r_i$. It considers (correctly) that $r_u$ replaced a robot that has previously crashed.
In such a situation, $r_i$ changes the parent of $r_u$ appropriately, i.e., the minimum available port number other than $r_u.parent$ (see, Figure~\ref{fig:rooted}).

\begin{algorithm}[ht!]
    \caption{\sc Rooted-Crash-Fault-Dispersion}
    \begin{algorithmic}[1]
    \Require{An anonymous network of $n$ nodes where $f$ robots are faulty such that $f \leq k \leq n$. $k$ is the number of robots.}
    \Ensure{Robots' Dispersion.}
    \Statex
    \State Each robot $r_i$ maintains its ID, parent pointer, current direction pointer and the backward traversal pointer as $\langle r_i, r_i.parent, r_i.cdr, r_i.B \rangle$, respectively. Initially, $r_i.cdr$ is the same, i.e., minimum port number, $r_i.B=0$ for all the $k$ robots at rooted configuration. $r_i.B=1$ indicates that backtrack is done for that settled robot, while $r_i.B=0$ represents backtracking is remaining.

    \For{$7k^2$ rounds} \Comment{As stated in Lemma \ref{lem: exact_cost}}
        \State Each rooted configuration $(R_c)$ traverse the graph via DFS (Depth First Search) by sending the current minimum ID robot $(r_i)$ based on the current direction pointer at $R_c$ after every $3i$ round. If robot $r_i$ reports to $R_c$ within $3i$ rounds, then $R_c$ resends $r_i$ until there is no report regarding $r_i$.\Comment{DFS described in Section~\ref{DFS Procedure}}

        \State Each $r_i$ settles down at the first empty node it finds and sets all the attributes accordingly. \Comment{See functionality for more detail.}

         \If{$r_i$ does not find an empty node in $2i$ rounds}\label{line: report_3i}
            \State $r_i$ proceed to reports $R_c$. \Comment{$r_i$ reports within $3i$ rounds.}
        \Else
            \State $r_i$ settles at the empty node.
        \EndIf

        \If{$r_i$ encounters an unexpected parent for $r_u$ ($u<i)$}\Comment{See in decision.}\label{line: unexpected_encounter}
            \State $r_i$ resets the parent pointer, $r_u.parent$ and current direction pointer, $r_u.cdr$ based on minimum port available.
        \EndIf
    \EndFor
    \State All the non-faulty robots settle at a unique node.
    \end{algorithmic}
\end{algorithm}\label{alg: rooted_config}

\begin{figure}[ht!]
\centering
  \includegraphics[scale=0.36]{figures/rooted_fig.png}
  \caption{As seen in Fig. $A$, the robots start sequentially from root node $1$ (\textcolor{blue}{blue}) with robot $r_7$ settling and setting its $cdr$ $pointer$. In the next phase, while $r_8$ was at node $6$, $r_3$ crashed forcing $r_8$ to settle at node $3$, previously occupied by $r_3$ (Fig. $B$). Note that $r_8$ now marks $r_7$ as its $parent$. Such pointers are being \textit{corrected} by subsequent robot $r_9$ which has started from the root and now moving (Fig. $C$) . $r_9$ will subsequently meet $r_8$, then backtrack and settle at node $8$.
  }\label{fig:rooted}
\end{figure}

\begin{lemma}\label{lem: non_faulty}
In the non-faulty setup, round complexity is $O(k^2)$.
\end{lemma}
\begin{proof}
 In a non-faulty setup, each robot behaves robustly and there are no crashes. Therefore, after the backtracking flag is set on a node, an edge is not traversed again during the DFS traversal. In traversing a graph from $R_c$, two kinds of situation may arise, either a robot $r_i$ reaches an empty node after $O(i)$ edge traversals, or it traverses $O(i^2)$ edges. In the first case, there is an empty node at a distance of $O(i)$. Therefore, $r_i$ settles at the empty node after $O(i)$ rounds. If such kind of situation arises repeatedly, then the algorithm takes $O(1)+O(2)+ \cdots + O(k) = O(k^2)$ rounds. In the second case, there might be a situation such that $r_i$ traverses $O(i^2)$ edges to find the empty node and only encounters previously settled nodes (at most $i(i-1)/2$ edges).

 More preciously, $i/2$ new edges are traversed in $3i$ rounds. Notice that a robot will traverse only earlier traversed nodes at the distance $(i+1)$, if not,  then there will be an empty edge at a distance (distance from the root) of $(i+1)$ and the robot will settle down there. Therefore, $r_i$ covers $O(i^2)$ edges in $O(i^2)$ rounds  and future robots (i.e., robots having  ID $r_j$; $\forall$ $j>i$) will not traverse these edges again. Hence, we can conclude that non-faulty setup takes $O(k^2)$ rounds in the given model.
\end{proof}

\begin{lemma}\label{lem: extra_cost}
In the faulty setting, a crashed robot may bring about an extra cost of $O(k)$ rounds in comparison to the non-faulty setting.
\end{lemma}
\begin{proof}
In the faulty setup, a robot might crash at any time and the respective node becomes empty, say node $v_i$. As a consequence, the information held by that robot (at the node $v_i$) is also lost. Accordingly, the next robot that discovers $v_i$, say $r_i$, settles down at $v_i$. A robot possesses the information of current direction, parent node and backtracking status apart from its own ID. For that reason, the current direction pointer is pointing towards the edge based on its least labelled edge. But there might be the case (in the worst case) that the last crashed node has traversed up to $(i-2)$ edges which should be traversed again by the $r_{i+1}$. This takes extra $O(i)$ rounds. Also, in the worst case, this value can be $O(k)$ since the number of robots is $k$. Hence, the lemma.
\end{proof}

\begin{lemma}\label{lem: one_robot_moving}
There is (at most) one robot moving (neither settled at its respective node, nor at  rooted configuration $R_c$) at any instance.
\end{lemma}
\begin{proof}
Proof by contradiction, let us suppose there exist two robots in moving condition, say $r_i$ and $r_{i+1}$. Also, assume $r_i$ started before, $r_{i+1}$. Now, as $r_i$ has not settled,   $r_i$ reports to $R_c$ every $3i$ rounds (Line~\ref{line: report_3i} of algorithm {\sc Rooted-Crash-Fault-Dispersion}). But if $r_i$ reports every $3i$ rounds then $R_c$ does not release the next robot which is contradictory to our assumption.
\end{proof}

\begin{lemma}\label{lem: loop}
A loop or cycle may be formed by the current direction pointer ($cdr$ $pointer$). The algorithm {\sc Rooted-Crash-Fault-Dispersion} successfully avoids any loop during dispersion.
\end{lemma}
\begin{proof}
During the execution of the algorithm, a loop or cycle may be formed if a robot $r_i$ crashes at a node $n_i$ then the current direction pointer ($cdr$ $pointer$) is set by the upcoming robot $r_{i+1}$ with the lowest port. That lowest port might have been traversed earlier. Therefore, a loop is formed (as shown in Figure~\ref{fig:rooted}, see A and B). From Lemma \ref{lem: one_robot_moving}, we know that only one robot is moving at any instance, say $r_{i+1}$. Therefore, $r_{i+2}$ (the next robot) starts after $r_{i+1}$ settles. If $r_{i+2}$ encounters any robot with an unexpected $cdr$ $pointer$ then $r_{i+1}$ changes the $cdr$ $pointer$ appropriately (Line \ref{line: unexpected_encounter} of the algorithm {\sc Rooted-Crash-Fault-Dispersion} and the Figure~\ref{fig:rooted}, see C). Thus, loops are avoided in the network.
\end{proof}

\begin{lemma}\label{lem: exact_cost}
The algorithm {\sc Rooted-Crash-Fault-Dispersion} takes at most $7k^2$ rounds and $O(\log (k+D))$ bits memory.
\end{lemma}
\begin{proof}
In case of round complexity, a non-faulty set-up from Lemma \ref{lem: non_faulty}, the total number of rounds are $3(1+2+ \dots + k)<3k^2$ (in the best case where $r_i$ finds the empty node within $3i$ rounds). Additionally, a robot can traverse at most $i/2$ new edges in $3i$ rounds (in a particular phase) without settling down on an empty node (in the worst case). Therefore, round complexity for $k(k-1)/2$ edges in the non-faulty setup is $<3k^2$. Moreover, from Lemma \ref{lem: extra_cost}, we know that the extra cost incurred for $f$ robots' crashing is at most $fk$. Hence, overall round complexity is at most $3k^2+3k^2+k^2=7k^2$.

In case of memory complexity, each robot stores its ID which takes $O(\log k)$ bit space. Along with that parent pointer and current direction pointer takes $O(\log \Delta)$ bit memory each. While the backward pointer take a single bit. Therefore, the memory complexity is $O(\log(k+ \Delta))$.
\end{proof}

From the above discussion, we conclude the following result.

\begin{theorem}\label{thm: single-source}
Consider any rooted initial configuration of $k \leq n$ mobile robots, out of which $f \leq k$ may crash, positioned on a single node of an arbitrary, anonymous $n$-node graph $G$ having $m$ edges, in synchronous setting {\sc Dispersion} can be solved deterministically in $O(k^2)$ time with $O(\log (k+\Delta))$ bits memory at each robot, where $\Delta$ is the highest degree of the graph.
\end{theorem}

\iffalse
\manish{
\begin{remark}
 The Algorithm~\ref{alg: rooted_config} for rooted configuration can be adapted for the arbitrary IDs. For that, the robots maintain the indexing of the robots' ID in their increasing order from $1$ to $k$. This indexing works as the ID of the robot in Algorithm~\ref{alg: rooted_config}.  In that case, ID size might increase and therefore the memory complexity would be $O(\log M)$, where $M$ is the maximum size of the ID.
\end{remark}
}\anis{It works in the rooted config. how is this possible in arbitrary configuration? Suppose there are two groups initially at two different nodes. So, one group doesn't know other's ids. How they map?}
\manish{Here, we don't need such adaptation since higher priority cluster can settle its robot based on the lowest ID. All the robots are moving together till minimum ID robot finds its place. We know the value of $k$ and other parameter which help to set the counter.
---Above there was a mistake of arbitrary configuration which might have confused. Now correctedn with rooted configuration.}
\fi

\section{Crash-Fault Dispersion for Arbitrary Configurations}\label{sec: cluster}

In this configuration setting, the robots are distributed across the graph in clusters such that there are $C=\{C_1,\ldots,C_l\}$ groups of robots at $l$ different nodes at the start such that $\sum_{i} C_i=k$. The goal of the dispersion is to ensure that the robots are dispersed among the graph vertices such that each node has at most one robot. In this setting, we assume that the robots are aware of $k, f,\Delta, l$ and $m$.\\

\noindent\textbf{Procedure:}
Our protocol runs in phases, in which each phase consists of $\text{min}(m,k\Delta, k^2)$ rounds. At the start of each phase, each cluster begins a $counter$ that counts down from $\text{min}(m,k\Delta, k^2)$. Each cluster $C_i$ then begins exploring the network simultaneously via the traditional DFS algorithm(in the trivial case of a  singleton cluster consisting of only one robot, it considers itself dispersed). Unlike the rooted configuration, individual robots do not explore and return, the entire cluster moves together. Whenever a cluster encounters a new (empty) node in the network, the robot with the current highest ID in the cluster settles, and sets its pointers appropriately. At the end of each round, the counter is decreased by $1$. When the counter becomes zero, it signals the end of the phase, and all flags are reset. That is all pointers become null, including the pointers of already settled robots.
After that, each cluster starts exploring the network with its current node as a point of origin. This continues until all robots in the cluster settle. Details of this procedure can be found in the pseudocode ~\ref{alg: cluster_config}\\

\noindent\textbf{Detailed Procedure:} There are two main parts to the protocol, i) exploration, ii) encounter. Exploration deals with the general procedure involved in exploring the graph. While encounter deals with the details involved in robots from different clusters meeting.

Let's begin with all the information stored at a robot. Each robot $r$ in a cluster $C_i$ consists of the following pointers $cid$, $parent$, $cdr$, $priority$, and $B$ (backtrack). The pointer $cid$ denotes the ID of the cluster it belonged to when a robot settles. $cid$ of a cluster $C_i$ is determined at the start of the phase, and is the ID of the robot with the highest ID.  When a robot decides to settle at a node, the $parent$ pointer keeps track of the port through which it entered the node. Similarly, the $cdr$ pointer is used to keep track of the port through which a cluster leaves the node in which it is settled. The $priority$ pointer of a settled robot keeps track of its priority in various clusters, originally this is simply the $cid$ of the cluster it was part of, that is the priority of a cluster is simply its $cid$. However, a robot's priority may change if a higher priority cluster discovers it and updates its priority pointer. In our work, priority is decided by the cluster's ID, that is, between two clusters, the cluster with the higher $cid$ has higher precedence. And of course, the $B$ of the backtrack pointer keeps track of the backtrack status of its DFS. In addition to all of these, each robot also has a field called $counter$, which is set to $\text{min}(m,k\Delta, k^2)$ at the beginning of each phase. Note that since all robots set the counter at the beginning of the phase simultaneously, the counter has the same value across all robots.\\

\noindent\textbf{Exploration:}
As mentioned before, as long as a cluster is non-empty, at the beginning of each phase, each cluster begins exploring the graph via the traditional DFS until the cluster is empty or it encounters a robot from a higher priority cluster (more on this in the encounter section).
In each phase, each robot in any cluster $C_i$ sets its $cid$ and $priority$ to the highest ID in the cluster, and its counter to $\text{min}(m,k\Delta, k^2)$. We consider the node in which $C_i$ is at the start of the phase to be its root. $C_i$ then follows the traditional DFS format for exploration. It leaves the node via the smallest unexplored port. If the node is empty, the robot with the current minimum ID, say $r$, sets its \textit{parent} and $cdr$ pointers and settles at the node.

The update function for the $cdr$ pointer is exactly the same as the one in the rooted case, i.e., it follows the traditional DFS procedure, except that all the robots in the cluster move through the exit port. Here, the robots use a similar DFS traversal technique as explained in DFS Procedure~\ref{DFS Procedure}. In the arbitrary case, the whole group moves together except for the robots that have settled. Whenever an exit port is calculated for moving, every (unsettled) robot in the group moves out through the port into the neighbouring node.
All robots in $C_i$ decrease their counter by one and $C_i$ leaves through the port in $r.cdr$. If a cluster ever finds itself returning to a node with a robot $r$ from its own cluster and it has exhausted all of the ports in which $r$ has settled, then it sets $r$'s backtrack flag. Once a phase has finished, if the cluster is non-empty  it resets all flags and counter and begins DFS once again. During exploration, if the cluster $C_i$ reaches a node $u$ whose degree is $k$,  then they use BFS to explore the neighbourhood of $u$ and settle the robots of $C_i$ in at most $O(k)$ rounds. However, here we have not explored what happens if a robot from a cluster $C_i$ meets a robot from $C_j$. That brings us to the next important part of the protocol, the encounters. Details of the exploration part of a cluster can be found in Algorithm~\ref{alg:explore}.\\

\noindent\textbf{Encounter:} This section contains the explanation of the encounter part of the protocol (see Algorithm~\ref{alg:encounter}). When a robot (or cluster) meets, that is \textit{encounters} a robot from a different cluster, the next step in exploration is decided based on priority. Simply put, the robot with higher priority always takes precedence as follows. There are two distinct scenarios, i) a cluster finds an already settled node ii) multiple clusters meet on the same node.
In the first case, if a cluster with a higher priority (say $C_i$) finds a robot $r_p$ from a lower priority cluster (say $C_j$) on a node, it sets $r_p$'s priority to its own priority, resets $r_p$'s parent and $cid$ to its own, and finally sets $r_p$'s $cdr$ (to the minimum unexplored port the higher priority cluster has not explored so far) and continues its DFS. If on the other hand, a lower priority cluster finds a robot $r_p$ with a higher priority, it stops its exploration and just continues decreasing its counter at every round till the end of the phase, and begins the exploration in the next phase. Note, if a cluster finds a settled robot whose flags have been reset (i.e., set to $null$), then it's the same scenario as that of finding a robot from a lower priority cluster. The settled robot takes the priority and ID of the newly arrived cluster.

In the second scenario, if two (or more) clusters meet, the clusters merge and take on the priority of the cluster with the highest priority among them. They stop and countdown and begin exploration as a merged cluster in the next phase. See Figure~\ref{fig:cluster} for an illustration of various kinds of encounters.

{Note that the number of clusters is non-increasing between two consecutive phases. At any phase, a cluster may either (i) disperse over the nodes completely, or (ii) survive to explore in the next phase, or (iii) merge with a higher priority cluster. Thus, the number of clusters either remains the same or decreases at the end of every phase. Now we show that after ($l+f$) phases, dispersion is achieved.}

\begin{algorithm}[H]
    \caption{\sc Arbitrary-Crash-Fault-Dispersion}
    \begin{algorithmic}[1]
    \Require{An anonymous network of $n$ nodes where $f$ robots are faulty such that $f \leq k \leq n$. $k$ is the number of robots. The robots are distributed across the network in $C=\{C_1,C_2,\ldots,C_l\}$ clusters such that $\sum_{i} |C_i|\leq k$. The value of $f, l, m, k$ and $\Delta$ are known to the robots.}
    \Ensure{Robots' Dispersion.}
    \Statex Each robot $r$ belonging to a cluster $C_i$ maintains the following pointers. $r.cid$, $r.priority$, $r.parent$, $r.cdr$ and $r.counter$. Initially $r.counter$ is set to $\text{min}(m,k\Delta,k^2)$,where $\Delta$ is the maximum degree of the network.
    \Statex $j=0$.
    \While{$j \leq (l+f)$}
    \State $counter=\text{min}(m,k\Delta,k^2)$
         \While {$counter> 0$}

             \State All non-empty clusters $C_i$ perform Explore($C_i$).
             \State $counter=counter-1$.
            \EndWhile
        \State Reset all pointers to null. Set $r.counter=\text{min}(m,k\Delta, k^2)$ across all $r$.
        \State $j=j+1$.
    \EndWhile
    \end{algorithmic}
\end{algorithm}\label{alg: cluster_config}

\begin{algorithm}[htp]
    \caption{\sc Encounter($C_i$)}
    \begin{algorithmic}[1]
    \Require{A non-empty cluster of robots $C_i$}

    \If{node is not empty and contains a robot $r_p$}

        \If{$r_{p}.cid=C_{i}.cid$}
             \If {$r_{p}.B$ is set}
             \State Return through $r.parent$.
             \Else
              \State Continue to explore. Update $r_p.cdr$ to minimum unexplored port. Move through $r_{p}.cdr$. \Comment{See Section~\ref{update} for detailed procedure.}
             \EndIf

        \EndIf
        \If{$r_{p}.cid \neq C_{i}.cid$}
          \If{$r_p$ has higher priority}
          \State Wait for $counter$ to become zero.
          \Else
          \State $r_{p}.cid=C_{i}.cid$.
          \State $r_{p}.priority=C_{i}.priority$.
          \State $r_p.parent=$ port through which $C_i$ entered.
          \State Continue to explore. Update $r_p.cdr$ to minimum unexplored port. Move through $r_{p}.cdr$. \Comment{See Section~\ref{update} for detailed procedure.}
          \EndIf
         \EndIf

        \If{$r_{p}.cid=null$} \Comment{$r_p$'s flags have been reset.}
          \State $r_{p}.cid=C_{i}.cid$.
          \State $r_{p}.priority=C_{i}.priority$
          \State $r_p.parent=$ port through which $C_i$ entered.
          \State $r_{p}.cdr$ is set to the minimum unexplored port and the cluster then moves through $r_{p}.cdr$. \Comment{See Section~\ref{update} for detailed procedure.}
         \EndIf

    \EndIf
    \If{node is not empty and contains clusters $C_s \subset C$ that are not $C_i$}
      \If{$C_i$ has highest priority}
         \State Explore ($C_i$).
        \Else
          \State Let $C_j$ be the cluster on the node with the highest priority.
          \State $C_i$ merges with all remaining clusters in $C_s/C_j$. It takes the priority of the highest priority cluster in $C_s/C_j$.
          \State The clusters wait until the start of the next phase to begin exploration.
        \EndIf
    \EndIf
    \end{algorithmic}
\end{algorithm}\label{alg:encounter}

\begin{algorithm}[t]
    \caption{\sc Explore($C_i$)}
    \begin{algorithmic}[1]
    \Require{A non-empty cluster of robots $C_i$}

    \If{node is empty}
    \State Settle robot with current lowest ID in $C_i$ (say $r$).
    \State $r.priority \leftarrow r.cid$.
    \State $r.counter\leftarrow counter$.
    \State $r.parent \leftarrow$ port through which $r$ entered the node.
    \State $r.cdr$ is the minimum port that hasn't been explored so far.
    \EndIf
    \If{node is not empty}
           \State Perform Encounter($C_i$).

    \EndIf
    \end{algorithmic}
\end{algorithm}\label{alg:explore}

\begin{figure}[!ht]
  \centering
    \includegraphics[scale=0.36]{figures/cluster.png}
  \caption{Illustration of various types of encounters between clusters of different priority. The arrows represent the direction the clusters are moving. Higher priority clusters are colored red and lower priority clusters blue. When a higher priority cluster meets a robot from a cluster with lower priority, it resets the pointers of the lower priority robot. Meanwhile, anytime a lower priority cluster meets a robot from a higher priority cluster, it stops and waits for the end of the phase. }\label{fig:cluster}
  \end{figure}

\begin{lemma}\label{lem: crash}
The effects of a robot crash, that is time delay caused by the presence of a crash are limited to the phase it occurs in. After that, it ceases to have an effect.
\end{lemma}
\begin{proof}
Since at the end of every phase, all robots reset their flags, including the parent and $cdr$ pointers, previously explored paths are equivalent to new unexplored paths in the current phase, as their pointers are set by the currently exploring clusters. Hence, previous phases do not have any impact on the DFS running in the current phase.
 \end{proof}

\begin{lemma}\label{lem: dispersehp}
Let $C_i$ be the cluster with the highest priority in Phase $j$. $C_i$ is guaranteed dispersion by the end of $j$ if $j$ is fault-free.
\end{lemma}
\begin{proof}
From Lemma~\ref{lem: crash} we know that crashes in previous rounds do not have an effect on exploration in the current phase. And, in the absence of faults during the phase itself, we see that $C_i$ exploration is equivalent to a rooted single cluster exploration of the network presented in~\ref{update}. Thus it is able to complete its dispersion using DFS without any delays or interference from other clusters, which takes less than $O(\text{min}(m,k\Delta, k^2))$ rounds to complete.
\end{proof}

\begin{lemma} \label{lem: fault-free}
Each cluster $C_i\in C$ is guaranteed to have at least a single fault-free phase in which it has the highest priority.
\end{lemma}

\begin{proof}
Quite trivially, since there are $(l+f)$ phases, each cluster is guaranteed at least one phase in which no faults occur, and in which they are the highest priority.
\end{proof}
\begin{lemma}\label{lem:l+f}
At the end of $(l+f)$ phases, all clusters are guaranteed to have dispersed.
\end{lemma}
\begin{proof}
This follows directly from Lemmas~\ref{lem: dispersehp} and~\ref{lem: fault-free}. Each cluster is guaranteed to have at least one fault-free phase in which it has the highest priority. From~\ref{lem: crash} we know in that phase there is guaranteed dispersion.
Hence, in $(l+f)$ phases, we are guaranteed to have total dispersion of all clusters.
\end{proof}
Thus, we have the following theorem.
\begin{theorem}\label{thm: clustered}
In the synchronous setting, the crash-tolerant algorithm for the arbitrary configuration (algorithm {\sc Arbitrary-Crash-Fault-Dispersion}) ensures dispersion of mobile robots in an arbitrary graph from an arbitrary initial configuration in $O((f+l)\cdot\text{min}(m,k\Delta, k^2))$ rounds with each robot requiring $O(\log (k+\Delta))$ bits of memory.
\end{theorem}
Since the number of clusters $l$ and the number of faulty robots $f$ are both less than the total number of robots $k$, we have the following remark.
\begin{remark}
If only the number of robots $(k)$ is known and all other factors are unknown to the network then the algorithm for arbitrary configuration takes $O(k^3)$ rounds.
\end{remark}

\section{Conclusion and Future Work}\label{sec: conclusion}
In this paper, we studied Dispersion for distinguishable mobile robots on anonymous port-labelled arbitrary graphs under crash faults. We presented a deterministic algorithm that solves robot dispersion in two different settings, i) with a rooted configuration of robots and ii) an arbitrary configuration of robots. We achieved the $O(k^2)$ round complexity in rooted configuration while $O((f+l)\text{min}(m,k\Delta, k^2))$ round complexity in arbitrary setting. In both cases, we used $O(\log (k+\Delta))$ memory. Some open questions that are raised by our work: i) What is the non-trivial lower bound for the round complexity in both the setting by keeping the memory $O(\log (k+\Delta))$? ii) Is it possible to give a similar round complexity for the case of arbitrary configuration as we achieved in rooted configuration? iii) Is it possible to get the same bound in the arbitrary configuration without the knowledge of $f, l, \Delta$ and  $m$? iv) Finally, whether similar bounds hold in the presence of Byzantine failures?

\bibliographystyle{plain}\small

redpajama_set_name: RedPajamaArXiv