Задача планирования для использования машины - PullRequest
0 голосов
/ 05 апреля 2019

Я столкнулся с уникальной проблемой, связанной с производством.мои данные приведены ниже

df<- read.table(text="LOT   Step    Tool_code   Time_taken  Transfer_time   START_Time  end_time
LOT1    1   Machine 1   3   1   09:00:00    09:04:00
LOT1    2   Machine 2   10  1   09:04:00    09:15:00
LOT1    3   Machine 3   3   1   09:15:00    09:19:00
LOT1    4   Machine 2   10  1   09:19:00    09:30:00
LOT1    5   Machine 4   2   1   09:30:00    09:33:00
LOT1    6   Machine 5   2   1   09:33:00    09:36:00
LOT1    7   Machine 6   1   1   09:36:00    09:38:00
LOT1    8   Machine 7   5   1   09:38:00    09:44:00
LOT1    9   Machine 8   5   1   09:44:00    09:50:00
",header =T)

. Проблема в том, что эти данные состоят из ЛОТа, подлежащего изготовлению.я хочу эффективно использовать машины, выделяя их свободное время на другой лот LOT2.Основная проблема, с которой я сталкиваюсь, скажем, например, что работа машины 2 завершена в 9:15, поэтому в 9.15 я позволю этой машине работать на LOT2 bt в 9:19, машина 2 снова должна вернуться на лот 1.Таким образом, в этой ситуации lot1 должен добавить задержку, которая произойдет из-за машины 2, работающей в LOT2.

Я пробовал пакет плана, пакет проектировщика.пытался использовать foverlaps, но не смог получить какой-либо конкретный результат для этой уникальной проблемы.Любая помощь или пакет, относящиеся к этому, будут высоко оценены

Желаемый результат будет

lot1 <- structure(list(LOT = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L), .Label = "LOT1", class = "factor"), Step = 1:9, Tool_code = structure(c(1L, 
2L, 3L, 2L, 4L, 5L, 6L, 7L, 8L), .Label = c("Machine 1", "Machine 2", 
"Machine 3", "Machine 4", "Machine 5", "Machine 6", "Machine 7", 
"Machine 8"), class = "factor"), Time_taken = c(3L, 10L, 3L, 
10L, 2L, 2L, 1L, 5L, 5L), Transfer_time = c(1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L), START_Time = structure(1:9, .Label = c("09:00:00", 
"09:04:00", "09:15:00", "09:19:00", "09:30:00", "09:33:00", "09:36:00", 
"09:38:00", "09:44:00"), class = "factor"), end_time = structure(1:9, .Label = c("09:04:00", 
"09:15:00", "09:19:00", "09:30:00", "09:33:00", "09:36:00", "09:38:00", 
"09:44:00", "09:50:00"), class = "factor"), desired_start_time = structure(1:9, .Label = c("09:00:00", 
"09:04:00", "09:15:00", "09:26:00", "09:37:00", "09:40:00", "09:43:00", 
"09:45:00", "09:51:00"), class = "factor"), desired_end_time = structure(1:9, .Label = c("09:04:00", 
"09:15:00", "09:19:00", "09:37:00", "09:40:00", "09:43:00", "09:45:00", 
"09:51:00", "09:57:00"), class = "factor"), comment = structure(c(1L, 
1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L), .Label = c("", "Delay because machine was working in LOT2"
), class = "factor")), class = "data.frame", row.names = c(NA, 
-9L))

, и время лота 2 будет следующим, учитывая, что работа машины завершена в LOT1

lot2 <- structure(list(LOT = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L), .Label = "LOT2", class = "factor"), Step = 1:9, Tool_code = structure(c(1L, 
2L, 3L, 2L, 4L, 5L, 6L, 7L, 8L), .Label = c("Machine 1", "Machine 2", 
"Machine 3", "Machine 4", "Machine 5", "Machine 6", "Machine 7", 
"Machine 8"), class = "factor"), Time_taken = c(3L, 10L, 3L, 
10L, 2L, 2L, 1L, 5L, 5L), Transfer_time = c(1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L), START_Time = structure(1:9, .Label = c("09:04:00", 
"09:15:00", "09:26:00", "09:37:00", "09:48:00", "09:51:00", "09:54:00", 
"09:56:00", "10:02:00"), class = "factor"), end_time = structure(1:9, .Label = c("09:08:00", 
"09:26:00", "09:30:00", "09:48:00", "09:51:00", "09:54:00", "09:56:00", 
"10:02:00", "10:08:00"), class = "factor")), class = "data.frame", row.names = c(NA, 
-9L))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...