Dynamic Programming2 Approximate Pattern Matching Approximate Pattern Matching 패천이 정확하게 일치하지 않더라도 유사한 부분 문자열을 찾는 과정 Exhaustive search 적용 방법 여기서 k 는 mismatch를 얼마나 허용할건지에 대한 변수이다. 시간복잡도: O(nm) Dynamic Programming을 적용한 방법 같으면 +0, 다르면 +1 A G C C T T G A T 0 0 0 0 0 0 0 0 0 0 G 0 1 0 1 1 1 1 0 1 1 C 0 1 2 0 1 2 2 2 1 2 A 0 0 2 3 1 2 3 3 2 2 T 0 1 1 3 4 1 2 4 4 2 가장 아래 값이 K이하인 경우 accept 2023. 4. 26. DNA sequence(DNA 시퀀스)에서 dynamic programming(동적 계획법) 이용 Longest Common Subsequences(LCS, 최장 공통 부분 수열) 찾는 python 코드 두 문자열의 Longest Common Subsequence (LCS)를 찾는 알고리즘을 구현한 것입니다. LCS는 두 문자열에서 순서를 유지하면서 공통으로 나타나는 가장 긴 부분 문자열입니다. 동적 계획법을 사용하여 LCS를 찾는 과정: lcs 함수는 두 문자열 X와 Y를 입력으로 받아 LCS를 계산합니다. 문자열의 길이 m과 n을 구하고, (m+1) x (n+1) 크기의 행렬 dp을 초기화합니다. 동적 계획법을 사용하여 행렬 dp을 채웁니다. 행렬의 각 요소는 해당 위치까지의 두 문자열의 부분 문자열들 간의 LCS 길이를 저장합니다. 행렬 dp에서 LCS를 추출하는 백트래킹 과정을 수행합니다. 이를 통해 실제 LCS 문자열 lcs_str을 구합니다. 먼저 lcs 함수를 최적화를 위해 한 번 호출하고,.. 2023. 4. 4. 이전 1 다음