ORGANIZING BUSINESS FORUMS WITH INTEGER LINEAR PROGRAMMING

. Business associations often promote forums between entrepreneurs. One strategy for establish contacts among participants is to organize them into small groups assigning them to tables so that participants in the same group can present their companies and projects. After an interval, a new round begins with new groups in order to establish new contacts. The repetition of this strategy allows each participant to expand his/her business network, but the repeated contacts between participants should be avoided. We present an Integer Linear Programming model that minimizes the repeated contacts when the participants are successively assigned to new groups. The model was implemented in R programming language and it has been applied to organize business forums. In order to illustrate the model application, this paper shows the results from a case study with 108 participants.


INTRODUCTION
Networking is a powerful tool to leverage the growth of any business. Connectivity favors the emergence of ideas (Johnson, 2010) and initiatives to promote innovation and economic growth, benefiting the whole society. For this reason, often, business associations usually promote forums between entrepreneurs from different segments.
A typical strategy for establishing contacts among the participants in a business forum is to organize them into small groups assigning them to tables, so that participants in the same group (table) can present their companies and projects to the other ones in the same group. After an interval, a new round begins in order to form new groups of participants. The repetition of this strategy until the closing of the forum allows each participant to sign business and to expand his/her business network.
However, in order to be successful in expanding the business networks it is essential to minimize the repeated contacts between participants. To avoid or minimize the repeated contacts it is necessary to optimize the sequence of tables to be visited by each participant. This problem is similar to the problem of designing seating plans for large social events such as weddings and gala dinner, where the objective is to organize the guests on dining tables based on their affinities and preferences (Lewis & Carrol, 2016). The Wedding Seating Problem (WSP) was first addressed by Bellows & Peterson (2012) that presented an integer linear programming (ILP) to design seat plans for their own wedding dinner. Lewis & Carrol (2016) stated the WSP as a graph partitioning problem.
In addition, the participants must visit several tables during the event. Thus, the problem presented in this paper also has some similarity with the Traveling Salesman Problem (TSP), a classic problem solved by ILP in which the objective is to establish a sequence of cities to be visited in such a way that each one is visited only once (Chvátal, 1989 This paper describes an ILP model designed to establish the sequence of tables to be visited by the participants of a business forum in such a way that the total number of repeated contacts is minimized. The model was implemented in R language programming (R Core Team, 2014) and it is worth mentioning that the proposed model has been applied in the organization of business events in Rio de Janeiro since 2016 (Pessanha & Santos, 2017). This paper is organized into five sections. The formulation of the Integer Linear Programming Problem is described in the section 2 by means of a simple example involving only six participants and three tables. Then, in the section 3 there is a brief presentation of the computational implementation in R. Next, the section 4 presents some results from the proposed model for a forum with 108 entrepreneurs. Finally, the last section presents the main conclusions.

PROBLEM FORMULATION
Consider a forum with n participants, m tables and p people per table. Based on the Dirichlet's box principle or pigeonhole principle (Simões Pereira, 2013) we know that to avoid the repeated contacts in the first rounds the number of people per table must be less than the number of tables (p < m).
A participant i∀ i = 1, n can be assigned to table j∀ j = 1, m and to represent this possibility let a binary variable x i j that assumes value equal to 1 if the participant i occupies the table j, otherwise x i j is equal to 0. For a forum with n participants and m tables there is a total of nm binary variables x i j ∈ {0,1} ∀ i = 1, n and j = 1, m. In addition, the number of participants in a table j must be equal to p, then, for each table j, the variables x i j for all i = 1, n must satisfy the following constraint: In addition, each participant i can only occupy a table in each round, then the variables x i j ∀ j = 1, m must satisfy, for each participant, the constraint: The tables are numbered from 1 to m and when the participants arrive at the forum, they are randomly assigned to the tables in order to setup the first configuration (first round or s = 1).
Since each table has p seats, the participants that occupy table 1 are identified by the integers 1 through p, the participants at table 2 receive the numbers (p + 1) up to (p + p) and so on up to participant n at the table m. Figure 1a shows the initial configuration (s = 1) and Figure 1b presents the respective assign matrix.  After a time interval the participants must be assigned to other tables in such a way that repeated contacts are minimized. For the second round (s = 2) the new distribution of n participants in m tables is determined by the following Integer Linear Programming Problem (ILPP), whose objective is to minimize the number of repeated contacts, i.e., the variables y in the objective function: The constraint in (7) indicates that the x i j are binary variables: The m constraints in equation (4) are equivalent to equation (1), i.e., each table must have p participants. The n constraints in (5) are equivalent to equation (2), i.e., each participant can be assigned to only one table in each round. The constraint in (8) informs that the variables y l are integer variables. The variables y l counts the number of repeated contacts between participants assigned to a same table at a previous round. For example, as illustrated by equation (6), for the second round (s = 2) l ranges from 1 to m(m − 1). This means that for each table k (∀ k = 1, m) we should add m-1 constraints, one inequality constraint for each remaining table j = k, as illustrated below, in order to restrict the repeated contacts between participants that occupied a same table k at previous round: In the inequality constraint (9), when y = 0 means that among the participants assigned to table k at a previous round only one will be assigned to At each new round s (∀ s≥2), a total of m(m − 1) constraints (6) and m(m − 1) variables y are included in the ILPP model in order to constraint the number of repeated contacts. The assign matrix for the round s is achieved by the minimization of the sum of variables y, as indicated in the objective function in (3). Thus, for the case illustrated in Figure 1 with n = 6 participants, m = 3 tables and p = 2, the arrangement for the second round (s = 2) is determined by the following ILPP model: min x,y y 1 + y 2 + y 3 + y 4 + y 5 + y 6 s.t.
x 31 + x 41 + x 51 + x 61 = 2 (table 1) (11) x 22 + x 23 = 1 (participant 2) (15) x 51 + x 52 = 1 (participant 5) (18) x 12 + x 22 ≤y 1 + 1 (constrains repeated contacts between participants 1 and 2 at table 2) (20) x 13 + x 23 ≤y 2 + 1 (constrains repeated contacts between participants 1 and 2 at table 3) (21) x 31 + x 41 ≤y 3 + 1 (constrains repeated contacts between participants 3 and 4 at table 1) (22) x 33 + x 43 ≤y 4 + 1 (constrains repeated contacts between participants 3 and 4 at table 3) (23) x 51 + x 61 ≤y 5 + 1 (constrains repeated contacts between participants 5 and 6 at table 1) (24) x 52 + x 62 ≤y 6 + 1 (constrains repeated contacts between participants 5 and 6 at table 2) (25) Note that the constraints from (20) to (25) are generated directly from the solution shown in Figure 1b and they aim to constrain the repeated contacts between the participants assigned to the same table at the first round. The solution of the ILPP above results in the optimal assignment illustrated in Figure 2. In the new solution, the sum y 1 + ... + y 6 is zero, so there are no repeated contacts.  Next, the participants must change their position again. Then, to find a new configuration we must solve a new ILPP with m(m − 1) additional constraints that constrain the repeated contacts in all previous rounds. These new constraints are derived directly from the configuration of the preceding round. Thus, throughout the evolution of the forum, at each new round a total of m(m − 1) constraints are added to the ILPP. In addition, all variables x i j that assumed unitary value in previous round are removed from the new ILPP so that each participant visits each table only once time. For example, to achieve the configuration of the third and last round for the case with n = 6 participants, m = 3 tables and p = 2 the following set of constraints should to be added to the ILPP: x 52 ≤y 7 + 1 (28) x 33 ≤y 8 + 1 x 61 ≤y 9 + 1 (30) x 13 ≤y 10 + 1 (31) x 41 ≤y 11 + 1 (32) x 22 ≤y 12 + 1 (33) Naturally, in this case, at the optimal solution y 7 , y 8 , y 9 , y 10 , y 11 and y 12 are equal to 0. Then at the last round the participants 4 and 6 are assigned to table 1 (x 61 =1, x 41 =1), the participants 2 and 5 are assigned to table 2 (x 22 =1, x 52 =1) and the participants 1 and 3 are assigned to table 3 (x 13 =1, x 33 =1) as illustrated in Figure 3.

MATERIAL AND METHODS
Based on R programming language (R Core Team, 2014) it was possible to build a R package to assembly the ILPP in each round and solve it with the Rsymphony package, version 0.1-22 (Harter et al, 2016). The Rsymphony provides a high-level interface between R and COIN-OR Symphony solver.
More specifically, at each round the R package build and solve an ILPP by applying the function Rsymphony solve LP(obj, mat, dir, rhs, types), where obj is the vector with the objective function coefficients, mat is the matrix of the constraints coefficients, dir is a character vector with the directions ("<=" and "==" ) of the constraints, rhs is the vector with the right hand side of the constraints and types is a character vector giving the types of the variables, in this case "I" and "B" corresponding to integer and binary variables, respectively. In addition, by default the Rsymphony solve LP minimizes the objective function.
In order to facilitate the use of the program, a MS Excel worksheet was programmed (Ragsdale, 2016) to prepare the data input file, trigger the execution of the R program and show the ILPP solution and others results, for example, the total number of repeated contacts. The input data file has only three parameters: the number of tables (m), the number of people per table (p) and the number of rounds (s). Based on these three parameters the program prepares a schedule for a forum with n = mp participants with p<m and s rounds.
The interface between R and MS Excel was done through a .TXT input data file (from MS Excel to R) and .XLSX files (results from R to MS Excel) exported to MS Excel format by the xlsx package (Dragulescu, 2014). In addition, the MS Excel worksheet provides the tags with the sequence of tables to be visited by each participant. The registered participants receive the tags when they arrive at the business forum.

CASE STUDY
To illustrate the results provided by the proposed model, consider a forum for n = 108 participants with maximum duration of 180 minutes and with 3 minutes for a participant to present his/her project at each round. In addition, the room reserved to the forum has capacity to a maximum of 20 tables. How much tables (m) and seats per  Table 1 where the good choices are in bold and italic. The option for 114 participants and 19 tables with 6 seats must be discarded because one table will be idle.  Considering 3 minutes to each participant to perform his/her presentation turns to be possible to estimate the time needed to complete each round. Table 2 presents the expected duration in each round and the number of rounds which can be performed without exceeding the duration of the event, i.e., 180 minutes.
The proposed model was applied to each alternative described in Table 2 in order to assign the participants to the tables that minimize the number of repeated contacts. The simulation was carried out by a machine with operating system Windows 10 Home, processor Intel® Core ™ i3-7100U CPU @ 2.40 GHz and 8.00 GB of RAM.
Some results from simulations are presented in Table 3. Based on these results the configuration with 18 tables and 6 seats per table is the best solution because it allows 50 contacts ( Table 2) for each participant with few repeated contacts (Table 3).
On the other side, the alternative with 11 tables is the worst solution because the large number of repeated contacts, then this alternative must be discarded. In addition, the alternative with 12 tables has 58 repeated contacts while the alternatives with 14 and 16 tables have 49 and 27 repeated contacts respectively. Then, these two latter alternatives are better than the alternative with 12 tables.  Tables  12  18  11  14  16  Participants per table  9  6  In order to illustrate the main results from the ILPP model consider the alternative with 12 tables. It is not the best, but it is the most fast among the five cases evaluated. Table 4 shows the size of the ILPP solved in each round for the alternative with 12 tables. As illustrated in Table 4, at each round 132 = 11 x 12 constraints (equation 6) are added to the ILPP model described in section 2. Then, a total of 132 integers variables (y variables in equation 6) are added to the ILPP model while 108 binary variables are removed, i.e., at each round 24 variables are added to the model.
The assignments of participants for all six rounds are illustrated at Figure 4. This result allows the event organizers to quickly view the distribution of participants in the m tables throughout the rounds.  At round 4 there are five repeated contacts as illustrated at Table 3 and they are indicated by the black cells at Figure 4d and    The 27 repeated contacts up to round 10 are indicated by Figures 6a, 6c, 6d, 7a and 7b.

FINAL COMMENTS
In this paper we addressed a type of business forum where the registered participants are organized into small groups and each group is assigned to a table, the participants in the same table present their companies and projects to the other ones in the same group. After an interval, a new round begins in order to form new groups of participants and so on. This kind of event aims to promote the maximum number of contacts between participants, but the repeated contacts represents a lost opportunity. The repetitions of contacts between the same participants do not contribute to leverage the value and the total number of businesses signed, the main metrics typically used to evaluate the success of a business event.
Thus, to increase the benefits for the participants and achieve a successful business event, the event managers can apply the optimization model proposed in this paper to schedule the assignment of registered participants and optimize the sequence of tables visited by each participant in order to avoid or minimize the repetition of contacts between the same participants.
Since 2016 the model described in this paper bas been applied in the organization of business forums for small and medium companies in Rio de Janeiro with number of participants between 40 and 150 entrepreneurs. The proposed model speeded up the management of the business forums and improved the quality of the events. Despite the persistency of repeated contacts, they were minimized and the participants have highlighted the improvement achieved after the adoption of the proposed model by the event managers.