pathological
요것이 무엇에 쓰는 모드인고 하니
기차가 길 찾는 알고리즘이 팩토리오 게임안에 들어가 있는데, 그 알고리즘을 변경하는건 아니고
알고리즘에 들어가있는 요소 상수값을 변경할 수 있게 해준다 이말이양
기차를 왕복 4차선 이상으로 쓰는 사람들에게 굉장히 좋은 모드가 될걸로 보임
일단 쪼오기 모드 들어가면 대충 영어로 씨부려놨는데 영알못이라 내가 잘못 이해했을 수도 있다
그러나 대강 이해한 것을 씨부려볼테니 잘 알아들어봐
<기차가 길찾는 알고리즘>
1. 기차는 일단 갈 수 있는 길 여러 경로를 데이터로 나열함.
2. 데이터값은 경로의 길이가 길수록, 경로 안에 다른 기차가 많을수록, 경로 안에 기차역이 많을 수록 등등.. 길이 꾸릴 수록 데이터 값이 커짐.
3. 즉, 가장 작은 데이터값을 가진 길을 찾아서 그 길로 감.
<모드를 써서 바꿀 수 있는 수치들>
모드 설명칸에는 penalty 불이익!!!! 단어를 써서 내가 위에서 설명한 데이터 값을 설명하고 있음.
segment 는 , 철도를 신호로 구분지어주면 신호 사이사이 색깔선 생기는데 그걸 말함.
1. A segment ending in a circuit-closed signal is lengthened by adding Signal Reserved By Circuit Network Penalty
회로 네트워크에 의해 철도 신호등이 강제로 빨간색이 될 가능성이 있는 경우 추가적으로 패널티 값을 매김
(예를 들면 건널목 같은거)
2. A segment in a currently-occupied block is lengthened by adding (2*length)/(1+distance of block from start)
출발하려고 경로를 비교하는데, 각 경로에 이미 다른 기차가 있을 경우 추가적인 패널티를 줌.
근데 이 패널티는 매우 약함. 특히 기차의 경로출발 지점에서 멀수록 패널티가 거의 없다시피함.
즉, 엄청 멀리 가야되는데 경로 끝부분에 다른 열차가 그 길을 지나고 있다? 별로 패널티가 없다 이거임.
패널티 계산 방법은 저기 괄호 안에 보면 나와있는데,
( 2 * 길막고있는 기차가 차지한 블럭의 길이 ) / ( 1 + 운행중인 기차 출발 지점에서부터, 막고있는 기차블럭 까지의 거리)
딱 보니깐 분모에 1+ 되어있는게 혹여나 저 값이 0이 되어서 계산 오류날까봐 붙여놓은거같음ㅎ
3. A segment starting or ending with stops is lengthened by adding Train Stop Penalty
기차 경로 중, 기차역이 자리잡고 있으면 패널티를 줌
4. A segment which is in a new block along the path that has a train in it is lengthened by:
지금 부터 아래에 있는 설정은, 기차가 경로를 출발했는데 중간에 끼어드는 열차가 있다든지 기타 등등 새로운 장애물이 생겼을 때
패널티를 어떻게 부가하는지 설명하는거임. (참고로 위에 1, 2, 3번은 출발하기전 어느경로를 선택할지 정할 때 고려하는거임)
4-1. Stopped Manually Controlled Train Penalty
사람놈이 수동으로 기차 조종해서 경로에 끼어들었을 때 주는 패널티. 이건 별로 안큼.
4-2. Stopped Manually Controlled Train Without Passenger Penalty
자동으로 움직이는 기차가, 경로 중간에 끼어들었을 때 주는 패널티. 이게 상당히 큰편임.
4-3. Train In Station Penalty, and additionally Train In Station With No Other Valid Stops In Schedule if applicable
경로 중에 있는, '운행중인 기차와 상관없는 역'에 정거해 있는 다른 기차가 경로를 막고 있을 때 패널티를 준다는 거임.
만약, 그 역에 정거해 있는 기차에 특별한 스케줄이 없어서 하루죙일 서있어도 똑같이 적용된다고 함.
이거 별로 안봐도됨. 이렇게 철도 짜면 이 모드 쓸게 아니고 철도부터 뜯어 고쳐야댐
4-4. Train Arriving To Station Penalty
운행 중인 기차가, '역에 진입중일 때' 주는 패널티 라고 해석이됨.
역 1개에 기차 1대만 쓰라는 법은 없지. 즉, 다른 기차가 이 역에 들어올 때 이미 기차 한대가 들어와 있으므로
다른 기차는 이 역에 올 때 경로에 패널티가 붙는거임. 사실 별 의미 없고, 실제로 보면 작은 값이 입력되어 있음.
4-5. Train Arriving To Signal Penalty
이 부분도 조금 헷갈리는데, 단순히 일반신호 연속신호가 철도에 박혀있는 갯수를 파악해서 신호가 덜박힌 길로 가려는 의도인건지
아니면, 그 신호가 빨간색으로 되어서 못가는 상태가 되었을 경우를 말하는건지 잘 모르겠음.
그래서 개인적으로 실험을 해본 결과 나는 후자라고 판단했음. 즉, 신호 갯수를 세는건 전혀 상관이 없고
경로 중 앞에 박혀있는 신호에서 빨간불이 들어와있고, 그 부분에 도착 했을 때 받는 패널티임.
만약에 이 값 존나 크게 설정하면, 너의 기차는 앞에 빨간 신호가 있다! 근데 돌아갈 수 있는 우회로가 있다? 1도 안 기다리고 바로 우회해서
가버릴거임.
4-6.Train Waiting At Signal Penalty + Train Waiting At Signal Tick Multiplier Penalty
이건 뭐냐면, 만약에 앞에 신호가 빨간색이라서 대기중일 때, 얼마나 오래 기다릴지를 결정하는 패널티값임.
여기에 적은 숫자는 1틱당 올라가는 숫자임. 내가 이 값을 10으로 설정해놨다? 근데 내 기차가 앞에 신호가 빨간색이라서 대기중이다?
그러면 1초에 600 씩 패널티 값을 받는거임. 이거 디폴트 값이 0.1 인데 이거 무적권 수정해야함. 나는 철도가 왕복4차로라서 이거 30으로 쓰는중
단선, 혹은 복선은 이거 크게 신경 안써도됨.
( 최소값=0.001 / 최대값=100 / 디폴트값=0.1)
4-7. Train With No Path Penalty if applicable
경로 없음으로 주차되어있는 기차가 주는 패널티.
*참고로, 4-6 제외하고 나머지는 모두 ( 최소값=1 / 최대값=60000 ) 디폴트값은 각각 개별로 다르니깐 귀찮아서 안씀
*내가 위에 4-2, 4-5 , 4-6 은 빨간색 쳤는데 저거 변경하는게 효과 직빵이길래 강조해놓음.
*그리고 내 생각인데, 철도 1개 길이의 경로를 데이터값(패널티) 1로 잡지 않았나.. 싶은 생각이 듬. 뇌피셜임.
요약? 응 없어
이거 내가 실험해본거랑 글 읽으면서 그냥 이해된대로 씨부린거라 틀린거 있을 확률 꽤 됨
확실히 아는거 있으면 댓글로 수정 ㄱ
4-3 은 페널티값을 -2만 주니까 쓸만함.
음수값을 줬다구? 최소값이 1 아니야?
https://wiki.factorio.com/Railway/Train_path_finding
패스파인딩 변수값임 참고
ㅇㅇ 고맙다
4-2는 해석 잘못한거 아니냐? 플레이어가 탑승하지 않은 수동 열차가 경로 중간에 있을 때지 정보글 ㄳ
ㄴ 어 그러네.. 다시 보니깐 그렇네. 탑승객 없이라는 말에 당연히 자동 운행이라고 생각했는데 manually 가 붙어있네? 사람이 기차 안타고 수동으로 조종이 가능한가? 저거 잘 모르겠다
정확하진 않은데.. 수동으로 되어있고 움직이지 않고 있는 기차를 말하는 거겠지? 뇌피셜..이다....