근무 스케줄링 문제의 최적해를 브라우저상에서 산출

개요:



10명×1주일 정도의 제약 조건부 근무 시프트표의 경우, 1초 미만으로 최적해 산출 가능.

필요한 것:


  • 브라우저 + 인터넷 환경
  • 제약 조건 표 (아래와 같은 CSV)



  • 입력 데이터의 CSV 버전은 이쪽
    브라우저에서 위의 데이터를 기반으로 최적 솔루션을 계산하고 싶은 분은 여기

    실행 결과:


    CPU times: user 11.2 ms, sys: 3.04 ms, total: 14.2 ms
    Wall time: 31.1 ms
    目的関数 0.0
    
       曜日 時間帯                結果
    0   月   朝          従業員1従業員5
    1   月   昼      従業員3従業員5従業員7
    2   月   夜      従業員1従業員3従業員4
    3   火   朝          従業員0従業員3
    4   火   昼      従業員3従業員5従業員7
    5   火   夜      従業員4従業員5従業員8
    6   水   朝          従業員0従業員5
    7   水   昼      従業員1従業員3従業員5
    8   水   夜      従業員3従業員4従業員8
    9   木   朝              従業員3
    10  木   昼          従業員5従業員7
    11  木   夜          従業員8従業員9
    12  金   朝          従業員1従業員5
    13  金   昼      従業員1従業員7従業員9
    14  金   夜      従業員5従業員6従業員8
    15  土   朝          従業員0従業員3
    16  土   昼  従業員2従業員6従業員7従業員9
    17  土   夜  従業員3従業員4従業員6従業員9
    18  日   朝          従業員0従業員9
    19  日   昼  従業員2従業員3従業員6従業員9
    20  日   夜  従業員2従業員3従業員4従業員6
    

    CSV 데이터 로드:



    이번에는 GitHub에 업로드한 CSV를 로드하는 형식
    
    a = pd.read_csv('https://raw.githubusercontent.com/zaq9/test_nurse_scheduling/master/sc_sample_data.csv').T
    
    

    댓글:


  • 「스케줄안에 불만 있는 분은, 대체안을 브라우저상에서 작성해, 관계자에게 조정 후, 연락해 주세요♪」(라고 하는 패턴도 가능하게)
  • 검토 과제: 사이즈가 큰 문제 & 최적해가 없는 경우에의 대응. 다양한 요망이나 상황을 제약 조건의 목적 함수에 떨어뜨리기 위한 궁리.

  • 참고:


  • 유전 알고리즘으로 간호사 스케줄링 문제(시프트 최적화) 해결
    ⇒ ⇒ 이번 입력 데이터는 이쪽으로부터 (약 2 분으로 계산 가능이라고 함)
  • 조합 최적화로 간호사 스케줄링 문제 해결 ⇒⇒ 이번은 거의 이쪽의 소스 코드를 이용하였습니다
    (오류가 발생한 테이블 읽기 부분을 CSV 읽기 버전으로 변경)
  • 근무표를 푸는 알고리즘
  • 인간 중심의 근무표 스케줄링(간호사 스케줄링) 작성-이케가미식(1)
  • 일본의 간호사 스케줄링 (이케가미 아츠코)
  • 좋은 웹페이지 즐겨찾기