3. The Proposed BFOA for VRPSDP
3.1.Encoding Method
As mentioned before, BFOA is a population-based search method that imitated the foraging
behavior of the individuals in the swarm as a searching method. In the proposed BFOA, a swarm of S
bacteria is served as searching agent for a specific problem solution. A bacterium’s position (θ
i
)
simply is a sequence of n customer nodes and represents a solution of the problem. The ability of a
bacterium to search for solution is represented by its direction vector φ(j) which drives bacterium
movement. In the BFOA iteration step, every bacterium moves from one position to another position
based on its direction. By moving from one position to another, a bacterium evaluates different
solutions for the problem. An example of encoded and decoded solution are illustrated in Figure 1.
a) Encoded Solution
3–1 2–1 1–1 4–1 9–1 10–2 8–2 5-2 7-2 6-2
b) The Information About Customer Assignments to Routes
Route 1: 0-3-2-1-4-9-0 Route 2: 0-10-8-5-7-6-0
c) Decoded Solution
Figure 1. An Example of Encoded Solution and This Code’s Solution
Considering customer sequence given in Figure 1a, customers are started to be assigned to the first
route. If capacity constraint is violated, a new route is opened and the customers not yet visited are
assigned considering customer sequence. As all customers are assigned to the routes, the depot is
added these routes and the traveled distance is calculated according to the Equation (2).
0
n
ab
a
J c
(2)
J is total traveled distance (objective function value), n is number of customers, cab is distance
between nodes a and b. As long as the solution improves in the algorithm, a memory table which has
nodes is updated for the consecutive pairs of customers. In this table, the values of pairs of customers
are incremented 1 and these values are used in elimination and dispersal loop to increase the
probability of reaching the most appropriate solution. The detailed explanation of the steps is given in
the next sub-sections:
3.2. Initial Solution: The initial route is constructed using the nearest neighborhood heuristic
(NNH) (Gajpal and Abad, 2009). In this study, due to the number of bacteria is large, first customers
can’t be selected randomly. NNH is used for each customer.
3.3. Chemotaxis loop: Bacteria begin to chemotaxis loop with their initial positions and initial
objective function (J) values. The values of direction vector are chosen randomly from the discrete
number sets {-1, 0, +1} and these numbers are assigned to each customer on the customer sequence.
“-1” implies that the customer replaces with the customer located before step length (C). “0” implies
this customer save its position and finally “+1” implies that the customer replaces with the customer
located after step length (C). The customer sequence representing the bacterium is seperated five parts
which have equal lengths and a part is chosen randomly. Defined bacterium direction is used for this
part and bacterium’s position is modified. So the bacterium move along to the defined direction as (C).
If solution improves the bacterium continues to move along the same direction and objective function
(J) is computed according to this direction and the memory table is updated. This is maintained until
the solution doesn’t improve or maximum number of swim steps (Ns) is reached. If one of these two
criteria is met, one chemotactic step finishes. At the end of the chemotactic step bacterium’s objective function (J) is the best value of this bacterium and all of the J values of the bacterium obtained in
each chemotactic step are saved to be used at the reproduction step. Chemotactic step continues until
the number of chemotactic steps (Nc) is reached. Each chemotactic step is repeated for each bacterium.
3.4. Reproduction loop: Three alternative reproduction methods are used for the proposed BFOA
as follows: Copy, Reverse and Crossover. In Copy method, objective function values obtained in each
chemotactic step are summed and called Jhealth. Firstly, all of the bacteria are ranked regarding to
evaluations of Jhealth and then the last half bacteria are removed out and one copy for each of the
residual half ones are reproduced. In Reverse method, firstly the copy method is applied but instead of
removing half of bacteria, each bacterium’s customer sequence is reversed and new bacteria are
obtained. An example about reverse method is given in Figure 2.
1 4 5 3 8 9 10 6 7 2
a) A solution sequence in populations residual half
2 7 6 10 9 8 3 5 4 1
b) A new solution sequence after reverse method
Figure 2. Example of reversing method
In Crossover Method, firstly the copy method is executed then two bacterium is crossed according
to the objective function values from the first half of the population using roulette cycle. The bacteria
obtained end of the crossover are replaced with their copies at the second half of the population. This
procedure continues as half number of bacteria. For the proposed BFOA, two point crossover known
common in genetic algorithm is executed. In this situation, random two points are selected from two
bacterium customer sequences which will be crossed and fields between these two points are
exchanged. And so new bacteria are obtained.
3.5. Elimination and Dispersal loop
A random value is generated between (0-1) for each bacteria in this step and if this number is
smaller than Ped defined before, bacterium is eliminated. For eliminated bacterium, customer pairs
with large memory values are integrated in memory table and new bacterium is generated. An example
of memory table is given in Table 1.
Table 1. Memory table
0 1 2 3 4 5 6 7 8 9 10
0 0 20 8 6 15 19 24 14 10 11 5
1 10 0 19 45 1 0 7 11 37 2 0
2 4 37 0 28 2 11 0 0 15 33 2
3 13 14 52 0 12 3 7 3 15 11 12
4 46 2 1 3 0 33 29 8 3 1 6
5 6 3 5 0 42 0 4 0 0 24 48
6 28 5 3 7 36 1 0 43 9 0 0
7 6 15 1 12 3 2 50 0 43 0 0
8 1 30 6 29 0 1 11 53 0 1 0
9 15 5 26 2 3 12 0 0 0 0 69
10 3 1 11 0 18 50 0 0 0 49 0
Example memory table starts with depot (0) and ends with 10th customer. New customer
sequences are generated integrating the largest customer pairs at each row considering the customers
are assignable or not assignable. Firstly, the depot row (0) is started to generate the route. In this row,
0-6 cell has the largest value (24) in Table 1. So after the depot (0) customer 6 is placed at the firs
available position in the sequence. Then the next row is customer 6’s row. At this row 6-7 cell has the
largest value (43) and customer 7 is placed at the next available position in the sequence. This
procedure is maintained until all customers are placed to a position. The final customer sequence of
the example is illustrated in Figure 3.
6 7 8 1 3 2 9 10 5 4
Figure 3. New customer sequence according to the Table 1.
3 . เสนอ bfoa สำหรับ vrpsdp
3.1.encoding วิธีดังกล่าวก่อน bfoa เป็นวิธีที่สุขภาพของประชากรค้นหาเลียนแบบพฤติกรรมการหาอาหารของบุคคลในกลุ่มโดยการค้นหาวิธี ในการนำเสนอ bfoa , จับกลุ่มของ S
แบคทีเรีย ทำหน้าที่เป็นตัวแทนสำหรับการแก้ไขปัญหาที่เฉพาะเจาะจง ตำแหน่งของแบคทีเรีย ( θ
ผม
)เป็นเพียงลำดับของลูกค้าโหนด และแสดงถึงทางออกของปัญหา ความสามารถของแบคทีเรียที่จะค้นหาทางออก
จะแสดงทิศทางของเวกเตอร์φ ( J ) ซึ่งทำให้สามารถเคลื่อนไหว
ใน bfoa ทำซ้ำขั้นตอน ทุก ซึ่งย้ายจากตำแหน่งหนึ่งไปยังตำแหน่งอื่น
ตามทิศทางของมัน โดยการย้ายจากตำแหน่งหนึ่งไปยังอีก ซึ่งประเมินแตกต่างกัน
โซลูชั่นสำหรับปัญหา ตัวอย่างของการเข้ารหัสและถอดรหัส โซลูชั่น จะแสดงในรูปที่ 1
) การเข้ารหัสโซลูชั่น 3 – 1 – 2 – 1 1 1 4 – 1 – 1 – 2 8 9 10 – 2 5-2 7-2 6-2
b ) ข้อมูลเกี่ยวกับการมอบหมายลูกค้าเส้นทางเส้นทางที่ 1 : 0-3-2-1-4-9-0
:
b 0-10-8-5-7-6-0 2 เส้นทาง ถอดรหัสแก้ไข )
1 รูป ตัวอย่างของรหัสและโซลูชั่น
วิธีนี้รหัสพิจารณาลำดับในรูปที่ 1A ให้ลูกค้า ลูกค้าจะเริ่มได้รับมอบหมายเส้นทางแรก
ถ้าความจุจำกัดละเมิด , เส้นทางใหม่จะเปิดขึ้น และลูกค้าที่ยังไม่ได้เข้าเยี่ยมชมเป็นลำดับ
มอบหมายพิจารณาลูกค้า เป็นลูกค้าทั้งหมดให้กับเส้นทางนั้น คลังจะ
เพิ่มเส้นทางเหล่านี้และเดินทางระยะทางที่คำนวณตามสมการ ( 2 )
0
n
.a
J C
( 2 )
J ทั้งหมดเดินทางระยะทาง ( ค่าฟังก์ชันวัตถุประสงค์ ) , n คือจำนวนลูกค้าแท็กซี่คือระยะทางระหว่างโหนด A และ B
ตราบใดที่โซลูชั่นที่เพิ่มในขั้นตอนวิธี ความทรงจำที่โต๊ะซึ่งมี
โหนดอัพเดทสำหรับคู่ที่ติดต่อกันของ ลูกค้า ในโต๊ะนี้ ค่าของคู่ค้า
จะสั่ง 1 และค่าเหล่านี้จะใช้ในการตัดและกระจายวงเพิ่ม
ความน่าจะเป็นของถึงโซลูชั่นที่เหมาะสมที่สุด คำอธิบายรายละเอียดของขั้นตอนที่ระบุในส่วนย่อยถัดไป :
. . เริ่มต้นการแก้ไข : เส้นทางเริ่มต้นจะถูกสร้างขึ้นโดยใช้ใกล้ละแวก )
( nnh ไม่เป็น ) ( gajpal และ บัด , 2009 ) ในการศึกษานี้เนื่องจากจำนวนของแบคทีเรียที่มีขนาดใหญ่
แรกลูกค้าไม่สามารถจะเลือกโดยการสุ่ม nnh ไม่เป็นใช้สำหรับลูกค้าแต่ละ .
3 . ข้อตกลงห่วง : แบคทีเรียเริ่ม chemotaxis ห่วงกับตำแหน่งเริ่มต้นของพวกเขาและวัตถุประสงค์การทำงานเบื้องต้น
( J ) ค่า ค่าของทิศทางเวกเตอร์จะสุ่มเลือกจากหมายเลขชุดต่อเนื่อง
{ - 1 , 0 ,1 } และตัวเลขเหล่านี้จะได้รับให้กับลูกค้าแต่ละรายในลำดับลูกค้า .
" - 1 " หมายความว่าลูกค้าแทนที่กับลูกค้าอยู่ ก่อนก้าวยาว ( C ) " 0 " หมายถึง
ลูกค้าบันทึกตำแหน่งและสุดท้าย " 1 " หมายถึงลูกค้าแทนที่กับลูกค้า
ตั้งอยู่หลังความยาวก้าว ( C ) ลูกค้าลำดับของแบคทีเรียที่แยก
5 ส่วนซึ่งมีความยาวเท่ากันและส่วนที่ถูกเลือกแบบสุ่ม ซึ่งใช้สำหรับกำหนดทิศทางและตำแหน่งในส่วนนี้
คือแก้ไข ดังนั้นแบคทีเรียย้ายไปกำหนดทิศทาง ( C )
ถ้าโซลูชั่นช่วยเพิ่มแบคทีเรียยังคงเคลื่อนที่ไปตามทิศทางเดียวกันกับ
ฟังก์ชันวัตถุประสงค์ ( J ) จะคำนวณตามทิศทางนี้และหน่วยความจำตารางการปรับปรุงนี้จะยังคงจนกว่า
โซลูชั่นไม่ปรับปรุงหรือจำนวนสูงสุดของขั้นตอนที่ว่ายน้ำ ( NS ) ถึง ถ้าหนึ่งในสองคนนี้
เกณฑ์กัน หนึ่ง chemotactic ขั้นตอนเสร็จสิ้น ในตอนท้ายของฟังก์ชันวัตถุประสงค์ ขั้นตอน chemotactic bacterium ( J ) เป็นค่าที่ดีที่สุดของแบคทีเรียนี้และทั้งหมดของ J ค่าของแบคทีเรียได้
chemotactic แต่ละขั้นตอนจะถูกบันทึกไว้เพื่อใช้ในการก้าว chemotactic ขั้นตอนต่อไปจนกว่า
หมายเลขของขั้นตอน chemotactic ( NC ) ถึง แต่ละ chemotactic ขั้นตอนซ้ำสำหรับแต่ละ bacterium
3.4 . รอบการสืบพันธุ์ : สามวิธีการสืบพันธุ์ทางเลือกที่ใช้สำหรับการนำเสนอ bfoa
ดังนี้ : คัดลอก , ย้อนกลับและครอสโอเวอร์ วิธีคัดลอกค่าฟังก์ชันวัตถุประสงค์ที่ได้รับในแต่ละ
chemotactic ขั้นตอนสรุปและเรียก jhealth . ประการแรก ทั้งหมดของแบคทีเรียมีการจัดอันดับเกี่ยวกับ
การประเมิน jhealth แล้วแบคทีเรียครึ่งสุดท้ายจะถูกลบออกและหนึ่งสำเนาของแต่ละคน
ครึ่งที่เหลือเป็นภาพ . วิธีการย้อนกลับ โดยใช้วิธีการคัดลอก แต่แทนที่จะ
เอาครึ่งหนึ่งของแบคทีเรียลำดับของลูกค้าในแต่ละเป็นย้อนกลับและแบคทีเรียใหม่
) ตัวอย่างเกี่ยวกับวิธีการย้อนกลับจะได้รับในรูป 2
1 4 5 6 7 8 9 10 3 2
) โซลูชั่นลำดับในประชากรที่เหลือครึ่ง
2 10 9 8 7 6 5 4 3 1
b ) เป็นโซลูชั่นใหม่ลำดับหลังจากกลับวิธี
รูปที่ 2 ตัวอย่างของวิธีการย้อนกลับ
วิธีแบบไขว้ประการแรกการคัดลอกวิธีการประหารชีวิตแล้วสอง ซึ่งจะข้ามตาม
ค่าฟังก์ชันวัตถุประสงค์จากครึ่งแรกของประชากรโดยใช้วงจรรูเล็ต แบคทีเรีย
ได้สิ้นสุดของครอสโอเวอร์จะถูกแทนที่ด้วยชุดของพวกเขาในช่วงครึ่งหลังของประชากร ขั้นตอนนี้
ยังคงเป็นครึ่งจำนวนของแบคทีเรีย สำหรับการนำเสนอ bfoa สองจุดครอสโอเวอร์ที่รู้จัก
ที่พบบ่อยในขั้นตอนวิธีเชิงพันธุกรรม คือ ประหารชีวิต ในสถานการณ์นี้ สุ่มสองจุดจะถูกเลือกจากสอง
แบคทีเรียลูกค้าลำดับซึ่งจะข้ามสาขาระหว่างจุดสองจุดนี่
แลกเปลี่ยน ดังนั้นแบคทีเรียใหม่จะได้รับ .
3.5 . การขจัดและกระจายวง
ค่าแบบสุ่มจะถูกสร้างขึ้นระหว่าง ( 0-1 ) สำหรับแต่ละแบคทีเรียในขั้นตอนนี้และถ้าหมายเลขนี้
เล็กกว่าเป็ดไว้ก่อนซึ่งเป็นกรอบ เพื่อกำจัดแบคทีเรียคู่ลูกค้า
กับหน่วยความจำขนาดใหญ่มูลค่ารวมในหน่วยความจำและในโต๊ะใหม่ถูกสร้างขึ้น ตัวอย่างของตารางจะได้รับในความทรงจำ
ตาราง 1 ตาราง 1 ตารางหน่วยความจำ
0 1 2 3 4 5 6 7 8 9 10
0 0 2 8 6 15 19 24 14 10 11 5
1 10 0 19 45 1 0 7 11 37 2 0
4 37 0 28 0 0 11 15 33 2
3 13 14 52 0 12 3 3 7 15 11 12
4 0 2 1 3 0 33 29 8 3 6
15 6 3 5 0 42 0 4 0 0 24 48
6 28 5 3 7 36 1 9 0 43 0 0
7 15 1 12 3 2 50 0 43 0 0
8 1 30 6 29 0 1 11 53 0 0 0
9 15 5 26 2 3 12 0 0 0 0 0
10 3 1 11 0 18 0 0 0 0
49 50 โต๊ะ เริ่มด้วย เช่น หน่วยความจำคลัง ( 0 ) และสิ้นสุดกับลูกค้า 10 ลำดับของลูกค้า
ใหม่ถูกสร้างขึ้นโดยคู่ที่ใหญ่ที่สุดของแต่ละแถวพิจารณาลูกค้า
จะได้หรือไม่ได้ . ประการแรกคลังแถว ( 0 ) จะเริ่มต้นในการสร้างเส้นทาง ในแถวนี้
6 เซลล์ได้ค่ามากที่สุด ( 24 ) ในตารางที่ 1 ดังนั้นหลังจากที่คลัง ( 0 ) ลูกค้า 6 อยู่ที่ firs
ของตำแหน่งในลำดับ แล้วแถวต่อไปแถวลูกค้า 6 . ที่แถวนี้ 6-7 เซลล์มี
ค่ามากที่สุด ( 43 ) และลูกค้า 7 จะอยู่ที่ตำแหน่งของถัดไปในลำดับ นี้
ขั้นตอนการรักษาจนกว่าลูกค้าจะอยู่ในตำแหน่ง สุดท้ายลูกค้าลำดับ
ตัวอย่างจะแสดงในรูปที่ 3 .
6 7 8 1 3 2 5 4 9 10
รูปที่ 3 ลูกค้าใหม่ ลำดับตามตาราง 1 .
การแปล กรุณารอสักครู่..