2016-07-16 1 views
0

VRP로 학교 프로젝트를하고 있습니다. 내가 해결하려고하는 문제는 각각 시간 창에서 실행해야하는 여러 점이있는 경로를 생성하는 것입니다.날짜가있는 jsprit의 시간 창을 사용하십시오.

제 문제는 알고리즘이 0시에 시작하므로 jsprit에서 날짜 (유닉스 타임 스탬프)를 시간 창으로 변환하는 방법입니다. 나는 단지 시간 간격을 줄여 주느냐, 아니면 실종 된 모범 사례가 있는가?

도움 주셔서 감사합니다.

+0

jsprit는 단위 불가 지입니다. 시간을 분 또는 초로 정의하도록 선택할 수 있습니다. 정의 된 참조 점만 필요합니다 (시간 0은 무엇입니까?). 그러면 언제든지 실제 datetime으로 변환 할 수 있습니다. "시간 간격을 벗어났습니다."에 관해서는 나는 당신이 무엇을 요구하고 있는지 잘 모르겠습니다. – roganjosh

+0

일반적으로 유닉스 타임 스탬프에서 0 시간은 1970 년입니다. jsprit time 0은 알고리즘의 시작입니다. 시간 단위는 문제가 아니며, 문제는 0과 타임 스탬프 사이의 간격이며 큰 숫자입니다. 델타가 의미하는 바는 제공된 모든 타임 스탬프에 현재 타임 스탬프를 뺀 것이므로 간격이 없다는 것입니다. –

+0

그 경우 그렇습니다. 우리는 이에 동의합니다. 현명한 새로운 유닉스 타임 스탬프를 찾아서 0을 표시 한 다음 시간 창을이 위치의 오프셋으로 정의해야하므로 시간 단위를 정의 할 방법을 결정해야합니다. 나는 네 생각에 너를 복잡하게 만든 것 같아. 나는 매일 00:00로 0에서 1439 (분)까지 진행된다. 1 주일 간 24 시간 동안 해결하고 싶다면 10080로 끝납니다. 그런 다음 다시 시작하면됩니다. – roganjosh

답변

1

편집 됨.

Jsprit는 단위 독립적입니다. 함께 일하기를 원하는 단위를 선택하십시오.

월요일부터 일요일까지 내 주를 실행하도록 선택할 수 있으며 분 단위로 단위를 정의하고 싶습니다. 어떤 경우에는 월요일 아침 9 시가 540 (9 * 60) 시간입니다. 또는 초 단위로 정의 할 수 있습니다.이 경우 동일한 시간은 32400 (9 * 60 * 60)입니다. 시간 단위가 일관성이있는 한 중요하지 않습니다.

유닉스 타임 스탬프는 거의 확실하게 문제에 불필요합니다. 설정된 시간에 솔루션을 실행합니다. 일반적으로 이산 문제에 대한 해결책을 찾고 있으며 일정한 간격으로 알고리즘을 실행합니다. 이는 항상 jsprit의 "추상"출력 (예 : 시간 678에 도착)을 현재 문제와 관련된 datetime으로 가져 오는 데 필요한 기준점을 제공합니다.

이 방법으로 7 월 25 일 7 월 25 일에 알고리즘을 실행할 수 있지만 을 알고 있습니다. 도착 시간의 해결책은 7 월 25 일 00:00을 기준으로합니다. 의사록.

결론 : JSprit은 이 아닙니다.은 솔루션을 호출하는 데 걸리는 시간을 0으로 취합니다. 임의의 시스템에서 정의 할 시점으로 0 시간이 걸립니다. 자정, 일요일, 교황 프란시스 출범, 기본적으로 무엇이든 :

관련 문제