The Discrete Logarithm Problem in Matrix Groups라는거 읽고 있는데

(http://theory.stanford.edu/~dfreeman/papers/discretelogs.pdf)



24b0d121e09c28a8699fe8b115ef046b656896

기본컨셉이 왼쪽 위 구석을 저렇게 만드는 P를 찾는거라는건 알겠고 내용 자체가 복잡한거 같진 않은데


이쪽을 배우는게 아니다보니 개념이 아예 안잡혀있어서 중간 내용이 뭔소린지 모르겠어요


논문 정리 전부 "해줘" 타령하려는건 아니고



24b0d121e09c28a8699fe8b115ef046c63f42f4d9b


걍 알고리즘만 날름하고 튀려니까 [v,Av,...A^(di)v]니 [v,(A-lambdaI)v,...(A-lambdaI)^(eij)v]가 각 블럭의 basis라는게 아예 이해가 안가요


이해가 안가니까 당연히 v도 못구하고요


일단 첫째로 invariant factor이 완전히 이해가 안갑니다.


일단 a1(x),a2(x),...,am(x)로 쪼개는게 그냥 행렬의 character polynomial을 인수분해 안되는 단계까지 쪼갠건줄 알았는데

뒤에 얘기나오는거 보면 a1|a2|..|am으로 쪼개는거 같고

그래서 am이 모든 고유값을 해로 가지고, minimal polynomial이랑 같다는건 대략 따라간거 같긴 해요

근데 이것도 맞는지 잘 모르겠고 sage에다 invariant factor 쳐보니까 무슨 행렬이 아니라 아벨리안 그룹이니 뭐니(얘도 뭔지 모릅니다)가 뜨고

위키피디아에도 PID니 모듈이니 하는 소리를 하고있고


그리고 위에서 말했듯이 쟤네가 뭐의 basis인지도 모르겠어요

블럭 크기가 n이 아닐텐데 걍 위아래 0으로 되어있는 n길이 열들의 basis가 저거가 되는건가?

근데 저런 벡터가 왜 존재하는거지? 어디 주워들으니까 ai(A)v=0의 basis라는거 같기도 하고


뭐 이런식으로 기본 지식이 아예 없으니 정확히 뭘 공부해야하는지도 잘 모르겠습니다.

논문 자체에 대한 설명은 없어도 좋으니 정확히 뭘 참고하고 뭘 공부해야하는지라도 알려주시면 감사하겠습니다..


그리고 논문들 뒤지면서 수학 기호들 못알아먹어서 고생하는게 한두번이 아닌데 어떤걸 읽어보는게 좋을까요?

솔직히 제가 생각해도 너무 포괄적인 질문이긴 한데 보통 체, 군, 동형 이런거 볼때마다 뇌정지 왔던것 같습니다