<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">AM</journal-id><journal-title-group><journal-title>Applied Mathematics</journal-title></journal-title-group><issn pub-type="epub">2152-7385</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/am.2020.117038</article-id><article-id pub-id-type="publisher-id">AM-101374</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>Physics&amp;Mathematics</subject></subj-group></article-categories><title-group><article-title>
 
 
  Social Distancing via Coulomb’s Law
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Patrick</surname><given-names>R. McMullen</given-names></name><xref ref-type="aff" rid="aff1"><sub>1</sub></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib></contrib-group><aff id="aff1"><label>1</label><addr-line>Wake Forest University, School of Business, Winston-Salem, USA</addr-line></aff><pub-date pub-type="epub"><day>08</day><month>07</month><year>2020</year></pub-date><volume>11</volume><issue>07</issue><fpage>532</fpage><lpage>545</lpage><history><date date-type="received"><day>8,</day>	<month>June</month>	<year>2020</year></date><date date-type="rev-recd"><day>6,</day>	<month>July</month>	<year>2020</year>	</date><date date-type="accepted"><day>9,</day>	<month>July</month>	<year>2020</year></date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
 
 
  This research effort addresses the social-distancing problem. As the COVID-19 pandemic continues, we’ve learned the importance of keeping proper distance, so as to avoid (or minimize) the spread of infection. For this paper, individuals are represented as positively-charged particles, behaving in accordance with Coulomb’s Law. Additionally, negatively-charged stationary (non-moving) particles are positioned such that their attraction to the positively-charged particles guides the movement of the positively-charged particles in a desirable fashion. During a simulation process, Coulomb’s Law guides particle behavior such that the positively-charged particles arrange themselves in a way such that their spacing is essentially optimal. Of course, these positively charged particles can be thought of as a surrogate for individuals, resulting in the optimal spacing of individuals.
 
</p></abstract><kwd-group><kwd>Optimization</kwd><kwd> Heuristic</kwd><kwd> Coulomb’s Law</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>COVID-19 became a major problem in the world in the early months of 2020. Countries have used varying approaches in addressing the problem, but the concept of “social-distancing” has become one of the most important defenses against the virus. Two major factors contribute to the spread of infection: population density [<xref ref-type="bibr" rid="scirp.101374-ref1">1</xref>] and transience [<xref ref-type="bibr" rid="scirp.101374-ref2">2</xref>]. The number of cases is disproportionately higher in densely-populated areas, such as New York City and Madrid. Additionally, these two cities also have a lot of “transience.” That is, many people move through these cities, due to the transportation infrastructure, leaving these cities more exposed to possible infections. New Orleans, Louisiana is a good example of transience being a problem. New Orleans is not a large city compared to those mentioned above, but the city held its annual Mardi Gras festival in February, where visitors came from all over the world. In March, public health officials realized holding Mardi Gras was a mistake, given that so many people in New Orleans became infected, presumably because of the large number of people who came to New Orleans [<xref ref-type="bibr" rid="scirp.101374-ref3">3</xref>].</p><p>In short, social-distancing is the best defense against the virus. Because of the importance of social distancing, a good social distancing tool is desired. The main motivation of this research effort is to assist with social distancing—finding the best way to address social distancing via our vast array of mathematical tools. These tools can be used to optimize the spacing of individuals in our collective attempt to minimize transmission of the virus. The body of literature contains a good amount of research relating to the circle-packing problem—a problem committed to optimizing placement of circles in a confined area such that the total area dedicated to circles is maximized. The research presented here slightly differs in that because particles, not circles, are placed into a unit square.</p><p>This research exploits Coulomb’s Law in an attempt to optimize the placement of charged particles in a confined environment. In this context, the charged particles are surrogates for individuals. Coulomb’s Law guides the charged particles as to where to go. This process is organized as a part of the meta-heuristic Simulated Annealing—a search process engineered to find near-optimal solutions for all sizes of optimization problems. The pursuance of Coulomb’s Law in this endeavor is considered the unique feature of this research.</p><p>In short, the contributions of this paper are summarized as follows:</p><p>&#183; The social distancing problem is addressed, specifically via mathematical means</p><p>&#183; Coulomb’s Law is employed in a novel fashion</p><p>&#183; Near-optimal results are found for problems proven optimal</p><p>&#183; The presented methodology can be employed to larger problems without loss of generality</p><p>The following sections describe Circle-Packing/Particle Arrangement, Coulomb’s Law, and how Coulomb’s Law is used to assist in particle movement via the Simulated Annealing search heuristic. The presented methodology is also used on sample problems resulting in near-optimal solutions. General conclusions are also offered, along with recommendations for subsequent research.</p><p>It should be noted that there are several terms defined in this paper. Specifically, <xref ref-type="table" rid="table1">Table 1</xref> defines terms related to forces and Coulomb’s Law, <xref ref-type="table" rid="table2">Table 2</xref> shows an example of this, while <xref ref-type="table" rid="table3">Table 3</xref> defines terms related to the Simulated Annealing Process.</p></sec><sec id="s2"><title>2. Circle-Packing and Arrangement of Particles</title><p>In its most general form, “circle-packing” is the practice of placing non-overlapping circles in a confined space. The circles need not be of the same diameter. The intention is to arrange the circles such that the wasted space (non-circle area) is minimized. This practice is important in the steel-stamping</p><table-wrap id="table1" ><label><xref ref-type="table" rid="table1">Table 1</xref></label><caption><title> Coulomb’s law definitions</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Symbol</th><th align="center" valign="middle" >Description</th></tr></thead><tr><td align="center" valign="middle" >x i</td><td align="center" valign="middle" >horizontal location of particle i</td></tr><tr><td align="center" valign="middle" >y i</td><td align="center" valign="middle" >vertical location of particle i</td></tr><tr><td align="center" valign="middle" >n +</td><td align="center" valign="middle" >number of positively-charged particles</td></tr><tr><td align="center" valign="middle" >n −</td><td align="center" valign="middle" >number of negatively-charged particles</td></tr><tr><td align="center" valign="middle" >i + , j +</td><td align="center" valign="middle" >indices for positively-charged particles</td></tr><tr><td align="center" valign="middle" >i − , j −</td><td align="center" valign="middle" >indices for negatively-charged particles</td></tr><tr><td align="center" valign="middle" >d i j 2</td><td align="center" valign="middle" >distance between particles i and j</td></tr><tr><td align="center" valign="middle" >( F x ) i +</td><td align="center" valign="middle" >net horizontal force exerted on particle i<sup>+</sup></td></tr><tr><td align="center" valign="middle" >( F y ) i +</td><td align="center" valign="middle" >net vertical force exerted on particle i<sup>+</sup></td></tr><tr><td align="center" valign="middle" >F i +</td><td align="center" valign="middle" >magnitude of force exerted on particle i<sup>+</sup></td></tr><tr><td align="center" valign="middle" >h i +</td><td align="center" valign="middle" >direction of force exerted on particle i<sup>+</sup></td></tr></tbody></table></table-wrap><table-wrap id="table2" ><label><xref ref-type="table" rid="table2">Table 2</xref></label><caption><title> Net force calculation for example</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Point</th><th align="center" valign="middle" >Charge</th><th align="center" valign="middle" >x</th><th align="center" valign="middle" >y</th><th align="center" valign="middle" >x<sub>i</sub> − x<sub>j</sub></th><th align="center" valign="middle" >y<sub>j</sub> − y<sub>i</sub></th><th align="center" valign="middle" >d i j 2</th><th align="center" valign="middle" >F<sub>x</sub></th><th align="center" valign="middle" >F<sub>y</sub></th></tr></thead><tr><td align="center" valign="middle" >(7, 11)</td><td align="center" valign="middle" >+</td><td align="center" valign="middle" >7</td><td align="center" valign="middle" >11</td><td align="center" valign="middle" >N/A</td><td align="center" valign="middle" >N/A</td><td align="center" valign="middle" >N/A</td><td align="center" valign="middle" >N/A</td><td align="center" valign="middle" >N/A</td></tr><tr><td align="center" valign="middle" >(3, 17)</td><td align="center" valign="middle" >+</td><td align="center" valign="middle" >3</td><td align="center" valign="middle" >17</td><td align="center" valign="middle" >4</td><td align="center" valign="middle" >−6</td><td align="center" valign="middle" >52</td><td align="center" valign="middle" >0.0769</td><td align="center" valign="middle" >−0.1154</td></tr><tr><td align="center" valign="middle" >(14, 15)</td><td align="center" valign="middle" >+</td><td align="center" valign="middle" >14</td><td align="center" valign="middle" >15</td><td align="center" valign="middle" >−7</td><td align="center" valign="middle" >−4</td><td align="center" valign="middle" >65</td><td align="center" valign="middle" >−0.1077</td><td align="center" valign="middle" >−0.0615</td></tr><tr><td align="center" valign="middle" >(16, 8)</td><td align="center" valign="middle" >+</td><td align="center" valign="middle" >16</td><td align="center" valign="middle" >8</td><td align="center" valign="middle" >−9</td><td align="center" valign="middle" >3</td><td align="center" valign="middle" >90</td><td align="center" valign="middle" >−0.1000</td><td align="center" valign="middle" >−0.0333</td></tr><tr><td align="center" valign="middle" >(4, 4)</td><td align="center" valign="middle" >−</td><td align="center" valign="middle" >4</td><td align="center" valign="middle" >4</td><td align="center" valign="middle" >−3</td><td align="center" valign="middle" >−7</td><td align="center" valign="middle" >58</td><td align="center" valign="middle" >−0.2069</td><td align="center" valign="middle" >−0.4828</td></tr></tbody></table></table-wrap><table-wrap id="table3" ><label><xref ref-type="table" rid="table3">Table 3</xref></label><caption><title> Search parameters</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Symbol</th><th align="center" valign="middle" >Definition</th></tr></thead><tr><td align="center" valign="middle" >d<sub>ij</sub></td><td align="center" valign="middle" >distance between particles i and j</td></tr><tr><td align="center" valign="middle" >Z<sub>C</sub></td><td align="center" valign="middle" >current solution distance</td></tr><tr><td align="center" valign="middle" >Z<sub>T</sub></td><td align="center" valign="middle" >temporary solution distance</td></tr><tr><td align="center" valign="middle" >Z<sub>B</sub></td><td align="center" valign="middle" >best solution distance</td></tr><tr><td align="center" valign="middle" >x<sub>i</sub></td><td align="center" valign="middle" >x coordinate of particle i</td></tr><tr><td align="center" valign="middle" >y<sub>i</sub></td><td align="center" valign="middle" >y coordinate of particle i</td></tr><tr><td align="center" valign="middle" >q</td><td align="center" valign="middle" >iteration index</td></tr><tr><td align="center" valign="middle" >n</td><td align="center" valign="middle" >number of particles to position</td></tr><tr><td align="center" valign="middle" >T<sub>1</sub></td><td align="center" valign="middle" >Initial temperature</td></tr><tr><td align="center" valign="middle" >T<sub>F</sub></td><td align="center" valign="middle" >Final temperature</td></tr><tr><td align="center" valign="middle" >T</td><td align="center" valign="middle" >current temperature</td></tr><tr><td align="center" valign="middle" >d</td><td align="center" valign="middle" >relative inferiority of temporary solution</td></tr><tr><td align="center" valign="middle" >Iter</td><td align="center" valign="middle" >iterations per temperature level</td></tr><tr><td align="center" valign="middle" >CR</td><td align="center" valign="middle" >cooling ratio</td></tr><tr><td align="center" valign="middle" >k<sub>B</sub></td><td align="center" valign="middle" >Boltzman constant</td></tr></tbody></table></table-wrap><p>industry, as non-stamped steel is considered a form of waste. From an operations research perspective, packing some number of circles (n) of equal diameter in a confined space (such as a unit square or unit circle) has become a benchmark problem. For problems of this type, the objective is to maximize the diameter of the n circles [<xref ref-type="bibr" rid="scirp.101374-ref4">4</xref>] [<xref ref-type="bibr" rid="scirp.101374-ref5">5</xref>] [<xref ref-type="bibr" rid="scirp.101374-ref6">6</xref>]. The circle-packing problem’s optimal solution can only be determined via mathematical proof for a specific number of circles, and optimality has only been proven for small values of n. Optimal solutions for larger values of n remain an unresolved issue [<xref ref-type="bibr" rid="scirp.101374-ref7">7</xref>].</p><p>The research here differs from the above problem in that we are only interested in optimally spacing the centers of the n circles of concern. As such, we treat the centers of the circles as points on a two-dimensional plane, and wish to maximize the distance between centers of the two closest circles. <xref ref-type="fig" rid="fig1">Figure 1</xref> shows optimal circle packing for n = 2.</p><p><xref ref-type="fig" rid="fig1">Figure 1</xref> shows two circles packed in an optimal fashion. The two circles do not overlap, and are both confined to the outer square. The inner square can be thought of as a unit square (all four sides having length of 1). Note that the centers of the two circles are contained in the inner unit square. Within the unit square the two centers comprise the optimal solution to the problem—the maximized distance between centers is 1 2 + 1 2 = 2 , and is illustrated by the diagonal line between the circle centers.</p><p>Maximizing the distance between the two closest circle centers is the objective for this research. Given that the larger values of n result in problems with unknown optimal solutions, we are motivated to provide a tool for addressing not just “large” values of n, but any particular value of n. From this point forward, these circle centers are referred to as “particles,” and in the context of social distancing, we wish to maximize the distance between the two closest particles (persons).</p></sec><sec id="s3"><title>3. Particle Movement</title><p>In the context of this research, there are two ways to move individuals with the intent of social distancing in an optimal fashion. First of all, individuals hereafter are referred to as “particles,” which are simply points in space. It is desired that these particles be arranged such that the minimum pairwise distance between all</p><p>particles be maximized. In order to accomplish this objective, the particles are moved during a simulation process. For this research effort, two different ways to move the particles are pursued. The first is by exploiting the magnetic nature of charged particles, which is referred to as “polar movement.” The second way to move the particles is via “random movement.”</p><sec id="s3_1"><title>3.1. Coulomb’s Law and Polar Particle Movement</title><p>Magnetic particles are either positively charged or negatively charged. Particles of the same charge repel each other, while particles of differing charges are attracted to each other. <xref ref-type="fig" rid="fig2">Figure 2</xref> shows this: (a) and (b) show repulsion, while (c) shows attraction.</p><p>Coulomb’s Law quantifies the force between the particles according to the Coulomb’s Law, which mathematically is as follows:</p><p>F i j = 1 4 π ε 0 q i q j d i j 2 (1)</p><p>The first term of this (1/4πe<sub>0</sub>) is essentially a constant, used to convert the result into units of Newtons (N). This constant is not used here, as we are only interested in relative forces. The value of q<sub>i</sub> and q<sub>j</sub> are the charges of two particles, measured in Coulombs (C). The value of d<sub>ij</sub> is the Euclidean distance between particles i and j. As such, the force between two charged particles reduces to the following:</p><p>F i j = q i q j d i j 2 (2)</p><p>We can state that the force between two charged particles is the product of their charges and inversely proportional to the squared distance between them, where the squared distance is as follows:</p><p>d i j 2 = ( x i − x j ) 2 + ( y i − y j ) 2 (3)</p><p>With a basic understanding of Coulomb’s Law, we now need to understand how the forces of several charged particles affect a single particle. For this research, only positive particles move, while negative particles remain stationary – the forces imposed by the negative particles do, however, affect the movement of the positively-charged particles. <xref ref-type="table" rid="table1">Table 1</xref> provides some relevant terms:</p><p>It is intended to determine the net force exerted on all positive particles. To do this, we combine the forces exerted on all positive particles in terms of horizontal and vertical components. Consider <xref ref-type="fig" rid="fig3">Figure 3</xref>, detailing a specific particle at the point (7, 11). It is our intent to sum all forces imposed on this specific particle to determine the net force acting on this particle.</p><p>The find the net force exerted on some specific positive particle i<sup>+</sup>, the following two equations are used:</p><p>( F x ) i + = ( ∑ j + = 1 n + ( x i + − x j + ) d i + j + ) + ( ∑ j − = 1 n − ( n + / n − ) ( x j − − x i + ) d i + j − ) , ∀ i + , ∀ j ≠ i + (4)</p><p>( F y ) i + = ( ∑ j + = 1 n + ( y i + − y j + ) d i + j + ) + ( ∑ j − = 1 n − ( n + / n − ) ( y j − − y i + ) d i + j − ) ∀ i + , ∀ j ≠ i + (5)</p><p>It is important to note that the first component of the above two formulae relates to the force between the particle i<sup>+</sup> and other positively-charged particles, while the second component relates to the force between positively-charged particle i<sup>+</sup> and the negatively-charged particles. It is also important to note that the (n<sup>+</sup>/n<sup>−</sup>) component is used to make sure the total positive force (in Coulombs) is the same as the total negative force (in Coulombs). For this example, there are four positively-charged particles, and one negatively-charged particle. As such, the (n<sup>+</sup>/n<sup>−</sup>) multiplier assures the negatively-charged particle has a charge of four Coulombs, the same as the sum of the positively-charged particles.</p><p>The magnitude of the resultant net force is as follows:</p><p>F i + = ( F x 2 ) i + + ( F y 2 ) i + , ∀ i + (6)</p><p>The direction, or heading, of this resultant net force is as follows:</p><p>h i + = tan − 1 ( ( F y ) i + ( F x ) i + ) , ∀ i + (7)</p><p><xref ref-type="table" rid="table2">Table 2</xref> shows how the net resultant force acting on the point (7, 11) is determined:</p><p>Using Equations (4) and (5) above, and summing the two right-most columns of <xref ref-type="table" rid="table2">Table 2</xref>, we have ( F x ) i + of −0.3377, and ( F y ) i + of −0.6263. This results in a net force magnitude of 0.7116 ( F i + ) , and a heading of −151.67 degrees ( h i + ) . <xref ref-type="fig" rid="fig4">Figure 4</xref> details the resultant force.</p><p>The importance of <xref ref-type="fig" rid="fig4">Figure 4</xref> is that the resultant force (both magnitude and direction) presents the location to where the particle is inclined to move. Hereafter, this type of particle movement is referred to as “polar movement.”</p><p>Again, it is important to note that only positively-charged particles are subject to movement, so resultant forces are only determined for the positively-charged particles.</p></sec><sec id="s3_2"><title>3.2. Random Particle Movement</title><p>Unfortunately, polar movement is not always possible, because resultant forces may take us outside the realm of feasible solutions (outside the unit square). Because in polar movement, only the positively-charged particles move, and their nature to repel each other will motivate these particles outside the realm of feasible solutions. <xref ref-type="fig" rid="fig5">Figure 5</xref> shows an example of this.</p><p><xref ref-type="fig" rid="fig5">Figure 5</xref> shows us that the positively-charged particle desires to move outside the search space, rendering an infeasible solution. Furthermore, the heading of this particle will never change, essentially putting our search at a “dead end.”</p><p>In order to combat this problem, all movable particles are treated as “neutral” particles, and they are moved a very small amount according to randomly-selected magnitudes and headings. This approach is referred to as random movement, and is illustrated in <xref ref-type="fig" rid="fig6">Figure 6</xref>.</p><p>This research effort utilizes both polar movement and random movement in our attempt to find optimal spacing.</p></sec></sec><sec id="s4"><title>4. Search Methodology</title><p>This section describes the methodology used for finding the best spacing of particles according to the movement rules described above. Simulated annealing is the general search heuristic used. Simulated annealing starts with a random solution. Minor modifications are made to the random solution. If the modified solution is an improvement over the current solution, the modified solution</p><p>replaces the current solution. Otherwise, the modified solution may replace the current solution, provided the degree of inferiority is small enough to meet a probabilistic threshold [<xref ref-type="bibr" rid="scirp.101374-ref8">8</xref>]. This process continues until a stopping criterion is met. At the end of the search, the best solution encountered is reported. The reason inferior solutions are sometimes accepted as current is to avoid being trapped at local optima in the search for a global optimum [<xref ref-type="bibr" rid="scirp.101374-ref9">9</xref>]. The following subsections detail the search.</p><sec id="s4_1"><title>4.1. Initialization</title><p>Prior to describing the search process, <xref ref-type="table" rid="table3">Table 3</xref> provides definitions, some of which are a slight repeat of the definitions from <xref ref-type="table" rid="table1">Table 1</xref>.</p><p>Values for the following search parameters are chosen: Iter, k<sub>B</sub>, CR (&lt; 1.0), T<sub>1</sub> and T<sub>F</sub> (where T<sub>F</sub> &lt; T<sub>1</sub>), and T = T<sub>1</sub>. The iteration index, q, is set to 1. The number of movable particles for spacing (n) is chosen, and for each particle i, x and y coordinates are assigned the following:</p><p>x i ~ U ( 0 , 1 ) , ∀ i (8)</p><p>y i ~ U ( 0 , 1 ) , ∀ i (9)</p><p>This is the initial solution. The objective function of this initial solution is as follows:</p><p>max ( min ( d i j ) ) , ∀ i , j ≠ i , w h e r e (10)</p><p>d i j = ( x i − x j ) 2 + ( y i − y j ) 2 (11)</p><p>Subject to the constraints:</p><p>0 ≤ x i ≤ 1 , ∀ i (12)</p><p>0 ≤ y i ≤ 1 , ∀ i (13)</p><p>The values of Z<sub>C</sub>, Z<sub>T</sub> and Z<sub>B</sub> are set equal to the objective function value.</p><p>In layman’s terms, we wish to arrange n particles in the unit square such that the distance between the closest two particles is maximized. The mathematics of this model shows a scenario where the objective function is both nonlinear and discontinuous, meaning conventional solvers are unlikely to guarantee an optimal solution, especially for larger problems. This is the reason a search heuristic is pursued.</p></sec><sec id="s4_2"><title>4.2. Movement</title><p>Prior to movement, the current solution is copied to the temporary solution. Movement is either in the form of polar movement or random movement, both described in Section 3. The probability of polar-movement is τ, implying that the probability of random movement is (1 − τ).</p><p>In polar movement, only the positively-charged particles move, while the negatively-charged particles remain stationary. All positively charged particles simultaneously move in the direction of their heading ( h i + ) at a distance of ( F i + ) . In random movement, the n-particles move to a nearby, randomly-selected location. Regardless of the type of move, infeasible moves are not executed. The result of all movements is the temporary solution.</p></sec><sec id="s4_3"><title>4.3. Evaluation</title><p>Once the (previously-described) move is complete, the objective function value (Z<sub>T</sub>) is determined via Equation (10). A determination needs to be made as to whether or not to accept the temporary solution as the current solution. If the objective function value of the temporary solution is better than the objective function value of the current solution—that is, if Z<sub>T</sub> &gt; Z<sub>C</sub>, the current solution is replaced by the temporary solution.</p><p>Otherwise, further evaluation is needed before accepting the temporary solution as the current solution. The inferiority of the temporary solution compared to the current solution is represented as δ, and is determined as follows:</p><p>δ = Z T − Z C Z C (14)</p><p>The probability of accepting the inferior temporary solution as the current solution occurs with the following probability:</p><p>P ( A ) = exp ( δ k B T ) (15)</p><p>A uniformly-distributed random number of the interval (0, 1) is generated. If this value is less than P(A), the inferior temporary solution is accepted as the current solution. Otherwise, the inferior temporary solution does not replace the current solution. The content provided by Equations (14) and (15) cuts to the uniqueness of Simulated Annealing. Inferior solutions are occasionally accepted as current solutions so as to avoid being trapped at local optima. The probability of accepting inferior solutions decreases as the search progresses. The Boltzmann Constant (k<sub>B</sub>) controls the probability of accepting inferior solutions [<xref ref-type="bibr" rid="scirp.101374-ref10">10</xref>].</p><p>A test step compares the temporary solution to the best solution. If the temporary solution objective function value exceeds the best solution objective function value (that is, if Z<sub>T</sub> &gt; Z<sub>B</sub>), the temporary solution replaces the best solution.</p></sec><sec id="s4_4"><title>4.4. Search Status</title><p>If q is less than the specified number of iterations per temperature level (Iter), the value of q is incremented by one (q = q + 1), and control if the search returns to that described in Section 4.2. Otherwise, the current Temperature (T) is multiplied by the cooling rate to set the new current temperature (T = T * CR), and q is reset to 1. If the new resultant temperature is greater than T<sub>F</sub>, control of the search returns to that described by Section 4.2, and q is reset to 1. Otherwise, the search is over and the best solution is returned.</p></sec><sec id="s4_5"><title>4.5. Search in Pseudocode</title><p>For a better understanding of the search process, details are provided in pseudocode form.</p><p>initialize();</p><p>while (T &gt; T<sub>F</sub>){</p><p>for(q = 1; q &lt;= Iter; q++){</p><p>set temp-solution = current-solution();</p><p>if(~U(0,1)&lt;τ)polar-movement();</p><p>else random-movement();</p><p>evaluate temp-solution();</p><p>if (Z<sub>T</sub> &gt; Z<sub>C</sub>) set current-solution = temp-solution();</p><p>if (Z<sub>T</sub> &gt; Z<sub>B</sub>) set best-solution = temp-solution();</p><p>else {if(~U(0,1)</p><p>set current-solution = temp-solution();}</p><p>} //end else</p><p>} //end q</p><p>T = T * CR</p><p>} //end while</p><p>report-best-solution();</p><p>When the best solution is returned, the x and y-coordinates of all particles associated with the best solution are reported, along with the objective function value.</p></sec></sec><sec id="s5"><title>5. Experimentation</title><p>The methodology presented above was carried out via agent-based modeling software. Agent based modeling is an extension of traditional object-oriented programming (such as Java or C++) in that the modeling environment is a dynamic system—the entire system is perpetually in a state of change [<xref ref-type="bibr" rid="scirp.101374-ref11">11</xref>]. The specific programming environment was NetLogo [<xref ref-type="bibr" rid="scirp.101374-ref12">12</xref>] [<xref ref-type="bibr" rid="scirp.101374-ref13">13</xref>].</p><sec id="s5_1"><title>5.1. Experiment in NetLogo</title><p>The methodology can be used for any value of n. As stated earlier, NetLogo was the programming software employed. The images provided via <xref ref-type="fig" rid="fig7">Figure 7</xref> and <xref ref-type="fig" rid="fig8">Figure 8</xref> are images from the NetLogo environment. <xref ref-type="fig" rid="fig7">Figure 7</xref> details the randomly-generated initial solution for n = 18. The particles to be arranged are positively-charged, and shown via a blue “+” symbol. Additionally, the size of the particle is proportional to the net force acting on the particle, and the heading of the particle is also shown via the arrow at the end of the “+” symbol. The negatively-charged particles are shown in red via “−” symbols. These particles are stationary—they do not move, and are only present for their influence on the mobile, positively-charged particles.</p><p>After careful inspection of <xref ref-type="fig" rid="fig7">Figure 7</xref>, one will notice that the positive particles close to the negative particles have larger magnitudes and are pointed toward the negative particles. This is affirmation of Coulomb’s Law. Similarly, positive particle further from other particles have smaller magnitudes, again affirming Coulomb’s Law. Finally, positively-charged particles somewhat near each other are pointing in opposing directions.</p><p>After the Simulated Annealing was performed, the final solution was obtained and detailed via <xref ref-type="fig" rid="fig8">Figure 8</xref>. The is the “best” arrangement of the positively-charged particles is shown the maximized distance between the two closest</p><p>particles was 0.3000, where the proven-optimal distance was found to be 0.3005 [<xref ref-type="bibr" rid="scirp.101374-ref14">14</xref>].</p><p><xref ref-type="fig" rid="fig8">Figure 8</xref> shows what the NetLogo program found to be the best overall solution. Here, the positively-charged particles are shown via black circles, and the negatively-charged particles are not shown. The maximized distance between the two closest particles is also shown.</p></sec><sec id="s5_2"><title>5.2. Computational Experience</title><p>In finding the best solutions for values of n ≥ 2, the search settings shown in <xref ref-type="table" rid="table3">Table 3</xref> had to be adjusted for each unique value of n. For the trivial problems involving optimal spacing of 2, 3 and 4 particles (n = 2, 3, 4), the search best responded by eliminating the negative charge in the unit square. This makes sense, because for these values of n, the positively-charged particles are motivated to get as far away from each other as possible, regardless of other circumstances. Staring with five or more particles (n ≥ 5), the negative force in the central portion of the unit square becomes more important. This is because for larger quantities of particles, some of them need to be attracted toward the central part of the unit square for optimal spacing. Adjusting the negative force from problem to problem was required to obtain desirable results.</p><p>For all problems, T<sub>1</sub> was set to 40, while T<sub>F</sub> was set to 1. The cooling ratio, CR was set to 0.9995, and the number of Iter increased in proportion to n. For all problems, the Boltzmann Constant, k<sub>B</sub>, was set such that a temporary solution 5% inferior to the current solution had a 5% probability of acceptance when T = T<sub>1</sub>.</p></sec><sec id="s5_3"><title>5.3. Experimental Results</title><p><xref ref-type="table" rid="table4">Table 4</xref> shows the results of the methodology presented here as compared to results proven to be optimal for several problems.</p><table-wrap id="table4" ><label><xref ref-type="table" rid="table4">Table 4</xref></label><caption><title> Results from several problems</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >n</th><th align="center" valign="middle" >2</th><th align="center" valign="middle" >3</th><th align="center" valign="middle" >4</th><th align="center" valign="middle" >5</th><th align="center" valign="middle" >6</th><th align="center" valign="middle" >7</th><th align="center" valign="middle" >8</th><th align="center" valign="middle" >9</th><th align="center" valign="middle" >10</th><th align="center" valign="middle" >11</th></tr></thead><tr><td align="center" valign="middle" >Z<sub>B</sub></td><td align="center" valign="middle" >1.4142</td><td align="center" valign="middle" >1.0352</td><td align="center" valign="middle" >1.0000</td><td align="center" valign="middle" >0.7071</td><td align="center" valign="middle" >0.6009</td><td align="center" valign="middle" >0.5358</td><td align="center" valign="middle" >0.5174</td><td align="center" valign="middle" >0.5000</td><td align="center" valign="middle" >0.4212</td><td align="center" valign="middle" >0.3978</td></tr><tr><td align="center" valign="middle" >Z<sub>opt</sub></td><td align="center" valign="middle" >1.4142</td><td align="center" valign="middle" >1.0352</td><td align="center" valign="middle" >1.0000</td><td align="center" valign="middle" >0.7071</td><td align="center" valign="middle" >0.6009</td><td align="center" valign="middle" >0.5359</td><td align="center" valign="middle" >0.5176</td><td align="center" valign="middle" >0.5000</td><td align="center" valign="middle" >0.4213</td><td align="center" valign="middle" >0.3982</td></tr><tr><td align="center" valign="middle" >n</td><td align="center" valign="middle" >12</td><td align="center" valign="middle" >13</td><td align="center" valign="middle" >14</td><td align="center" valign="middle" >15</td><td align="center" valign="middle" >16</td><td align="center" valign="middle" >17</td><td align="center" valign="middle" >18</td><td align="center" valign="middle" >20</td><td align="center" valign="middle" >25</td><td align="center" valign="middle" >36</td></tr><tr><td align="center" valign="middle" >Z<sub>B</sub></td><td align="center" valign="middle" >0.3885</td><td align="center" valign="middle" >0.3655</td><td align="center" valign="middle" >0.3476</td><td align="center" valign="middle" >0.3386</td><td align="center" valign="middle" >0.3331</td><td align="center" valign="middle" >0.3057</td><td align="center" valign="middle" >0.3000</td><td align="center" valign="middle" >0.2862</td><td align="center" valign="middle" >0.2495</td><td align="center" valign="middle" >0.1998</td></tr><tr><td align="center" valign="middle" >Z<sub>opt</sub></td><td align="center" valign="middle" >0.3887</td><td align="center" valign="middle" >0.3661</td><td align="center" valign="middle" >0.3489</td><td align="center" valign="middle" >0.3411</td><td align="center" valign="middle" >0.3333</td><td align="center" valign="middle" >0.3061</td><td align="center" valign="middle" >0.3005</td><td align="center" valign="middle" >0.2866</td><td align="center" valign="middle" >0.2500</td><td align="center" valign="middle" >0.2000</td></tr></tbody></table></table-wrap><p>For the problems pursued, the presented methodology averaged 99.89% as compared to proven optimal. The worst-performance was for n = 15, which was 99.27% as compared to optimal.</p></sec></sec><sec id="s6"><title>6. Concluding Comments</title><p>Methodology has been provided to address social distancing via Coulomb’s Law and a variant of the circle-packing problem. Results are encouraging. As the COVID-19 virus and its social impact continue to evolve, social distancing will likely be with us for a while, and what we’ve learned from the effects of social distancing will likely be applied to future crises of a similar nature.</p><p>The presented research most certainly can be taken further, particularly with regard to scale. While the virus continues to force us into social distancing, sporting events will have limited capacity, providing employment for the presented methodology. The same can be said for worship services. In these larger-scale situations; however, something other than a unit square will be required, given the differing shapes of large venues.</p><p>Another opportunity for subsequent research applies to the use of Coulomb’s Law, and more effective ways of using the law to find desirable spacing. Scientific principles of other types could also be investigated in attempt to achieve desirable spacing.</p><p>In summary, the findings of this work are as follows:</p><p>&#183; Social-distancing in an optimal fashion can be addressed via an applied mathematical approach</p><p>&#183; Near-optimal results were found when compared to existing problems with known optima</p><p>&#183; A combination of Coulomb’s Law and random movement was needed to obtain desirable solutions</p><p>&#183; The presented methodology can be scaled to larger problems without loss of generality</p><p>&#183; The work exploited a novel application of Coulomb’s Law</p><p>It is possible that other scientific principles (other than Coulomb’s Law) would be employed to address this problem.</p></sec><sec id="s7"><title>Conflicts of Interest</title><p>The author declares no conflicts of interest regarding the publication of this paper.</p></sec><sec id="s8"><title>Cite this paper</title><p>McMullen, P.R. (2020) Social Distancing via Coulomb’s Law. Applied Mathematics, 11, 532-545. https://doi.org/10.4236/am.2020.117038</p></sec></body><back><ref-list><title>References</title><ref id="scirp.101374-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">Bosman, J., Harmon, A. and Smith, M. (2020) Corona Cases Slow in the US, But the Big Picture Remains Tenuous. New York Times, May 19, 2020.</mixed-citation></ref><ref id="scirp.101374-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">McCartney, S. (2020) Smart Travel Planning in the Time of Coronavirus. The Wall Street Journal, May 15, 2020.</mixed-citation></ref><ref id="scirp.101374-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">Woodruff, E. (2020) How Did Coronavirus Get to New Orleans? Scientists Scrutinize Virus Genome for Answers. The Times Picayune, April 20, 2020.</mixed-citation></ref><ref id="scirp.101374-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">Maranas, C.D., Floudas, C.A. and Pardolas, P.M. (1995) New Results in the Packing of Equal Circles in a Square. Discrete Mathematics, 142, 287-293. https://doi.org/10.1016/0012-365X(93)E0230-2</mixed-citation></ref><ref id="scirp.101374-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">Specht, E. (2020) The Best Known Packings of Equal Circles in a Square. http://hydra.nat.uni-magdeburg.de/packing/csq/csq.html</mixed-citation></ref><ref id="scirp.101374-ref6"><label>6</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Stephenson</surname><given-names> K. </given-names></name>,<etal>et al</etal>. (<year>2003</year>)<article-title>Circle Packing: A Mathematical Tale</article-title><source> Notices of the AMS</source><volume> 50</volume>,<fpage> 1376</fpage>-<lpage>1388</lpage>.<pub-id pub-id-type="doi"></pub-id></mixed-citation></ref><ref id="scirp.101374-ref7"><label>7</label><mixed-citation publication-type="other" xlink:type="simple">Williams, R. (1979) Circle Packing, Plane Tessellations, and Networks, the Geometrical Foundation of Natural Structure: A Source Book of Design. Dover, New York.</mixed-citation></ref><ref id="scirp.101374-ref8"><label>8</label><mixed-citation publication-type="other" xlink:type="simple">Kirkpatrick, S., Gelatt, C.D. and Vecchi, M.P. (1983) Optimization by Simulated Annealing. Science, 220, 671-679. https://doi.org/10.1126/science.220.4598.671</mixed-citation></ref><ref id="scirp.101374-ref9"><label>9</label><mixed-citation publication-type="other" xlink:type="simple">Metropolis, N., Rosenbluth, A., Rosenbluth, N., Teller, A. and Teller, E. (1953) Equation of State Calculations by Fast Computing Machines. Journal of Chemical Physics, 21, 1087-1092. https://doi.org/10.1063/1.1699114</mixed-citation></ref><ref id="scirp.101374-ref10"><label>10</label><mixed-citation publication-type="other" xlink:type="simple">Eglese, R.W. (1990) Simulated Annealing: A Tool for Operational Research. European Journal of Operational Research, 46, 271-271. https://doi.org/10.1016/0377-2217(90)90001-R</mixed-citation></ref><ref id="scirp.101374-ref11"><label>11</label><mixed-citation publication-type="other" xlink:type="simple">Castiglione, F. (2006) Agent-Based Modeling. Scholarpedia, 1, 1562. https://doi.org/10.4249/scholarpedia.1562</mixed-citation></ref><ref id="scirp.101374-ref12"><label>12</label><mixed-citation publication-type="other" xlink:type="simple">Railsback, S.F. and Grimm, V. (2015) Agent-Based and Individual-Based Modeling: A Practical Introduction. Princeton Press, Princeton.</mixed-citation></ref><ref id="scirp.101374-ref13"><label>13</label><mixed-citation publication-type="other" xlink:type="simple">Wilensky, U. and Rand, W. (2015) An Introduction to Agent-Based Modeling: Modeling Natural, Social, and Engineered Complex Solutions with NetLogo. MIT Press, Cambridge.</mixed-citation></ref><ref id="scirp.101374-ref14"><label>14</label><mixed-citation publication-type="other" xlink:type="simple">Mollard, M. and Payan, C. (1990) Some Progress in Packing Equal Circles in a Square. Discrete Mathematics, 84, 303-307. https://doi.org/10.1016/0012-365X(90)90135-5</mixed-citation></ref></ref-list></back></article>