Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
Conversion
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Vladislav Kiselev
Conversion
Commits
3fb43786
Commit
3fb43786
authored
Aug 15, 2019
by
Vladislav Kiselev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Новый тест.
parent
dd409008
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
170 additions
and
0 deletions
+170
-0
tests/with_typing/anti_greedy.tipp
tests/with_typing/anti_greedy.tipp
+170
-0
No files found.
tests/with_typing/anti_greedy.tipp
0 → 100644
View file @
3fb43786
Description
Тест против жадного алгоритма.
Есть четыре локации - рейд, терминал 1, терминал 2 и терминал 3.
На рейде два грузовых судна.
Грузовые суда могут перемещаться между рейдом и терминалом 1 за 1 ед. времени.
Так же, грузовые суда могут перемещаться между терминалами за 1 ед. времени.
Суда загружаются у терминала 1 со скоростью 31 ед./интервал.
Суда загружаются у терминала 2 со скоростью 3 ед./интервал.
Суда загружаются у терминала 3 со скоростью 4 ед./интервал.
Грузовые суда пусты, хранилище при терминале 1 имеет 31 ед. груза, при терминале 2 - 100 ед. груза, так же, как и при терминале 3.
Необходимо загрузить оба судна по 40 ед. груза, и отправить их обратно на рейд.
Идея - при частичной операции иногда не стоит жадно забирать сколько влезет, а взять только часть и оставить другому,
даже если надо самому. Пример - в решении "With splitting" - судно 12 загружает у терминала 1 12 ед. нефти,
хотя можно было больше, и собственное хранилище заполнилось не до конца.
Можно видеть, что жадный алгоритм не может так сделать, и ему приходится отправлять суда к терминалам 2 и 3, и
уже на обратной дороге догружать у термиала 1 до максимума. При этом решение хуже на 1 ед. времени.
Цель - показать различия в возможностях сведений.
Решение сведения "Without splitting" с solver-ом Chuffed за 5.825 s :
14.0
20112; R; 0.0 ; 1.0 (11 []) \* Судно 11 идёт к причалу 2 от причала 1.
20112; R; 0.0 ; 1.0 (12 []) \* Судно 12 идёт к причалу 2 от причала 1.
20124; R; 1.0 ; 1.0 (11 []) \* Судно 11 идёт к причалу 4 от причала 2.
20124; R; 1.0 ; 1.0 (12 []) \* Судно 12 идёт к причалу 4 от причала 2.
20143; R; 2.0 ; 1.0 (11 []) \* Судно 11 идёт к причалу 3 от причала 4.
40004; R; 2.0 ; 10.0 (12 [] 4) \* Судно 12 принимает груз 10001 из хранилища 2004 с интенсивностью 4 у причала 4.
20132; R; 3.0 ; 1.0 (11 []) \* Судно 11 идёт к причалу 2 от причала 3.
20124; R; 4.0 ; 1.0 (11 []) \* Судно 11 идёт к причалу 4 от причала 2.
20143; R; 5.0 ; 1.0 (11 []) \* Судно 11 идёт к причалу 3 от причала 4.
40003; R; 6.0 ; 3.0 (11 [] 3) \* Судно 11 принимает груз 10001 из хранилища 2003 с интенсивностью 3 у причала 3.
20134; R; 9.0 ; 1.0 (11 []) \* Судно 11 идёт к причалу 4 от причала 3.
20142; R; 10.0; 1.0 (11 []) \* Судно 11 идёт к причалу 2 от причала 4.
40002; R; 11.0; 1.0 (11 [] 31) \* Судно 11 принимает груз 10001 из хранилища 2002 с интенсивностью 31 у причала 2.
20121; R; 12.0; 1.0 (11 []) \* Судно 11 идёт к причалу 1 от причала 2.
20142; R; 12.0; 1.0 (12 []) \* Судно 12 идёт к причалу 2 от причала 4.
20121; R; 13.0; 1.0 (12 []) \* Судно 12 идёт к причалу 1 от причала 2.
Решение сведения "Greedy v2" с solver-ом or-tools за 1780.826 s :
13.0
20112; R; 0.0 ; 1.0 (11 []) \* Судно 11 идёт к причалу 2 от причала 1.
20112; R; 0.0 ; 1.0 (12 []) \* Судно 12 идёт к причалу 2 от причала 1.
20123; R; 1.0 ; 1.0 (12 []) \* Судно 12 идёт к причалу 3 от причала 2.
20124; R; 1.0 ; 1.0 (11 []) \* Судно 11 идёт к причалу 4 от причала 2.
40003; R; 2.0 ; 7.0 (12 [] 3) \* Судно 12 принимает груз 10001 из хранилища 2003 с интенсивностью -3 у причала 3.
40004; R; 2.0 ; 7.0 (11 [] 4) \* Судно 11 принимает груз 10001 из хранилища 2004 с интенсивностью -4 у причала 4.
20132; R; 9.0 ; 1.0 (12 []) \* Судно 12 идёт к причалу 2 от причала 3.
20143; R; 9.0 ; 1.0 (11 []) \* Судно 11 идёт к причалу 3 от причала 4.
20132; R; 10.0; 1.0 (11 []) \* Судно 11 идёт к причалу 2 от причала 3.
40002; R; 10.0; 1.0 (12 [] 19) \* Судно 12 принимает груз 10001 из хранилища 2002 с интенсивностью -19 у причала 2.
20121; R; 11.0; 1.0 (12 []) \* Судно 12 идёт к причалу 1 от причала 2.
40002; R; 11.0; 1.0 (11 [] 12) \* Судно 11 принимает груз 10001 из хранилища 2002 с интенсивностью -12 у причала 2.
20121; R; 12.0; 1.0 (11 []) \* Судно 11 идёт к причалу 1 от причала 2.
Решение сведения "With splitting" с solver-ом Chuffed за 20.527 s :
12.0
20112; R; 0.0 ; 1.0 (11 []) \* Судно 11 идёт к причалу 2 от причала 1.
20112; R; 0.0 ; 1.0 (12 []) \* Судно 12 идёт к причалу 2 от причала 1.
20123; R; 1.0 ; 1.0 (11 []) \* Судно 11 идёт к причалу 3 от причала 2.
40002; R; 1.0 ; 1.0 (12 [] 12) \* Судно 12 принимает груз 10001 из хранилища 2002 с интенсивностью 12 у причала 2.
20124; R; 2.0 ; 1.0 (12 []) \* Судно 12 идёт к причалу 4 от причала 2.
40003; R; 2.0 ; 7.0 (11 [] 3) \* Судно 11 принимает груз 10001 из хранилища 2003 с интенсивностью 3 у причала 3.
40004; R; 3.0 ; 7.0 (12 [] 4) \* Судно 12 принимает груз 10001 из хранилища 2004 с интенсивностью 4 у причала 4.
20132; R; 9.0 ; 1.0 (11 []) \* Судно 11 идёт к причалу 2 от причала 3.
20142; R; 10.0; 1.0 (12 []) \* Судно 12 идёт к причалу 2 от причала 4.
40002; R; 10.0; 1.0 (11 [] 19) \* Судно 11 принимает груз 10001 из хранилища 2002 с интенсивностью 19 у причала 2.
20121; R; 11.0; 1.0 (11 []) \* Судно 11 идёт к причалу 1 от причала 2.
20121; R; 11.0; 1.0 (12 []) \* Судно 12 идёт к причалу 1 от причала 2.
Typified
1
Cargoes
10001; Нефть; 0.0
Berths
1; Внешний рейд
2; Терминал 1
3; Терминал 2
4; Терминал 3
Storages
2002; Нефтехранилище 1; [(10001, 100.0)]
2003; Нефтехранилище 2; [(10001, 100.0)]
2004; Нефтехранилище 3; [(10001, 100.0)]
Vessel Types
1001; Нефтяные танкеры
Bunker Types
Bunkers
Tows
Loading Equipment Types
Loading Equipments
Transport Ships
11; Танкер 1; [(10001, 100.0)]; 1001
12; Танкер 2; [(10001, 100.0)]; 1001
Templates
20112; mov; []; 1001; 1; 2; []; 1.0
20121; mov; []; 1001; 2; 1; []; 1.0
20123; mov; []; 1001; 2; 3; []; 1.0
20134; mov; []; 1001; 3; 4; []; 1.0
20142; mov; []; 1001; 4; 2; []; 1.0
20132; mov; []; 1001; 3; 2; []; 1.0
20143; mov; []; 1001; 4; 3; []; 1.0
20124; mov; []; 1001; 2; 4; []; 1.0
40002; loa; []; 2002; 10001; 1001; 2; []; 31.0; U
40003; loa; []; 2003; 10001; 1001; 3; []; 3.0; U
40004; loa; []; 2004; 10001; 1001; 4; []; 4.0; U
Cargo Flows
Initial Vessel State
11; 1
12; 1
Initial Storage State
10001; 2002; 31.0
10001; 2003; 100.0
10001; 2004; 100.0
10001; 11; 0.0
10001; 12; 0.0
Final Vessel State
11; 1
12; 1
Final Storage State
10001; 11; 40.0
10001; 12; 40.0
Task Properties
25.0; 0
Fixed Operations
Solution
14.0
20112; R; 0.0 ; 1.0 (11 []) \* Судно 11 идёт к причалу 2 от причала 1.
20112; R; 0.0 ; 1.0 (12 []) \* Судно 12 идёт к причалу 2 от причала 1.
20124; R; 1.0 ; 1.0 (11 []) \* Судно 11 идёт к причалу 4 от причала 2.
20124; R; 1.0 ; 1.0 (12 []) \* Судно 12 идёт к причалу 4 от причала 2.
20143; R; 2.0 ; 1.0 (11 []) \* Судно 11 идёт к причалу 3 от причала 4.
40004; R; 2.0 ; 10.0 (12 [] 4) \* Судно 12 принимает груз 10001 из хранилища 2004 с интенсивностью 4 у причала 4.
20132; R; 3.0 ; 1.0 (11 []) \* Судно 11 идёт к причалу 2 от причала 3.
20124; R; 4.0 ; 1.0 (11 []) \* Судно 11 идёт к причалу 4 от причала 2.
20143; R; 5.0 ; 1.0 (11 []) \* Судно 11 идёт к причалу 3 от причала 4.
40003; R; 6.0 ; 3.0 (11 [] 3) \* Судно 11 принимает груз 10001 из хранилища 2003 с интенсивностью 3 у причала 3.
20134; R; 9.0 ; 1.0 (11 []) \* Судно 11 идёт к причалу 4 от причала 3.
20142; R; 10.0; 1.0 (11 []) \* Судно 11 идёт к причалу 2 от причала 4.
40002; R; 11.0; 1.0 (11 [] 31) \* Судно 11 принимает груз 10001 из хранилища 2002 с интенсивностью 31 у причала 2.
20121; R; 12.0; 1.0 (11 []) \* Судно 11 идёт к причалу 1 от причала 2.
20142; R; 12.0; 1.0 (12 []) \* Судно 12 идёт к причалу 2 от причала 4.
20121; R; 13.0; 1.0 (12 []) \* Судно 12 идёт к причалу 1 от причала 2.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment