홈으로 돌아가기

LIFO로 0.3초 만에 3D Cargo Packer

Django 기반 서비스가 MaxRects 알고리즘으로 LIFO와 물리학을 고려한 3D Cargo Packing을 구현. Three.js 시각화로 0.3초 만에 400 SKU 처리. Excel 통합으로 소매업 적합.

초고속 3D Fleet 포장: 400 상자에 0.3초
Advertisement 728x90

0.3초 만에 완성하는 3D 화물 적재: LIFO와 완전 회전을 적용한 MaxRects 알고리즘

Django 웹 서비스가 트럭, 컨테이너, 밴 차량군을 위한 3D 화물 적재 문제를 해결합니다. 이 알고리즘은 400개 이상의 SKU 품목을 0.19~0.3초 내에 처리하며, LIFO, 90% 지지 면적, 6축 회전을 고려합니다. Three.js와 연동된 인터페이스는 실시간으로 결과를 시각화하며, 엑셀 업로드와 수동 입력을 지원합니다.

텔레그램 봇에서 본격적인 플랫폼으로의 진화

이 프로젝트는 최적화 엔진으로 시작했습니다: 10,000개 지점을 가진 외판원 문제를 0.4초에 해결하고, 세잎클로버 같은 복잡한 형태의 포장을 1초 미만에 처리했습니다. 텔레그램 봇은 치수를 담은 JSON을 입력받아 좌표를 출력했지만, 소매 업무에는 웹 인터페이스가 필요했습니다.

주요 제품 요구사항:

Google AdInline article slot
  • 차량군과 화물을 위한 양면 패널 인터페이스.
  • 검증 기능이 포함된 엑셀 파싱.
  • Three.js를 활용한 인터랙티브 3D 시각화.

기술 스택: Python/Django, Docker 내 PostgreSQL, Three.js 프론트엔드. 속도와 실용성에 중점—완벽한 밀도보다 LIFO가 더 중요합니다.

3D MaxRects 알고리즘: 수학보다 물리학

수정된 3D MaxRects는 화물 공간 내 자유 직육면체 목록을 활용하여 전체 좌표 열거를 피합니다. 벡터화로 8대 차량군에 대해 0.19~0.3초의 성능을 제공합니다.

물리적 실현 가능성 매개변수:

Google AdInline article slot
  • 완전 회전 (6개 투영): 긴 품목(2400 mm)은 치수가 허용할 경우 수직 또는 모서리 위치를 시도합니다.
  • 90% 지지 면적: 상자는 하단 층에 최소 90% 면적으로 놓여 불안정한 해결책을 제거합니다.
  • LIFO 순서: 실제 창고를 고려한 하역 순서가 반영됩니다.

시장 비교: 경쟁사들은 수분 또는 수시간이 소요되며, 종종 LIFO와 물리적 제약을 무시합니다.

아키텍처: Django, Docker, 확장성

Docker 컨테이너 내 Django + PostgreSQL 백엔드. Nginx + Gunicorn(3개 작업자)이 내결함성을 보장합니다. 포트 443의 HTTPS는 기업 방화벽을 우회합니다. 400개 SKU 기준 8GB 서버에서 평균 메모리 사용률은 29%입니다.

Django Auth를 통한 인증: 사용자별 데이터 격리, ORM 내 계산 기록. 각 사용자는 자신의 차량군과 화물만 볼 수 있습니다.

Google AdInline article slot

인터페이스: 유연한 입력과 세밀한 조정

양면 패널 레이아웃으로 차량군(오른쪽)과 화물(왼쪽)을 분리합니다. 차량군: 치수, 적재 용량, 수량. 화물: 크기, 무게, 수량, 매개변수(LIFO, StackLimit).

입력 옵션:

  • 조정을 위한 수동 폼.
  • 검증 기능이 포함된 일괄 엑셀 업로드.

최적화 체크박스:

  • 기울임: 깨지기 쉬운 화물을 위한 회전 허용/제한.
  • 차량군 최적화: 운행 횟수 최소화를 위해 대형 차량 채우기 우선.

시각화 및 결과 내보내기

0.19~0.3초 내 계산 결과가 Three.js로 3D 장면을 출력합니다. SKU별 색상 코딩, 인터랙티브 회전, LIFO 및 지지 검사. 내보내기: PDF 보고서 또는 X, Y, Z 좌표가 포함된 엑셀.

프로덕션 배포

3개 작업자의 Gunicorn + Nginx 리버스 프록시. Docker로 자율성 보장. 테스트: 98% 커버리지, 다중 사용자 부하 하 안정성.

핵심 요약

  • 400개 SKU와 8대 차량에 대해 0.19~0.3초 속도.
  • 물리적 제약: LIFO, 90% 지지, 6축 회전.
  • 물류 인터페이스: 엑셀, 3D 시각화, 데이터 격리.
  • 프로덕션 스택: Django, Docker, Nginx/Gunicorn.
  • 확장성: 낮은 자원 소비.

— Editorial Team

Advertisement 728x90

다음 읽기