DP 2

[USACO Gold] Knapsack DP - 배낭 문제를 다이나믹 프로그래밍으로 풀기

배낭(knapsack) 문제는 보통 제한된 용량의 컨테이너에 물건들의 부분집합을 넣되, 물건과 관련된 어떤 양을 세거나(카운트) 최적화하는 문제를 다룬다.거의 항상 각 물건은 양의 무게를 가지며, 우리가 선택한 물건들의 총 무게는 어떤 수로 주어지는 컨테이너의 용량을 초과해서는 안 된다. 배낭 유형 문제의 변형으로는 다음과 같은 것들이 있다.0/1 배낭 문제: 물건들의 부분집합을 골라 총 가치를 최대화하되, 총 무게가 컨테이너의 용량을 넘지 않도록 한다.가능한 총 무게 찾기: 컨테이너 용량을 넘지 않게 임의의 부분집합으로 만들 수 있는 모든 총 무게를 구한다.정확히 채우는 경우의 수 세기: 총 무게가 정확히 컨테이너 용량이 되도록 하는 물건의 순서열이 몇 개인지 센다(순서가 중요할 수도 있고 중요하지 않..

PS/USACO Gold 2025.09.11

[밑바닥부터 시작하는 딥러닝] 역전파

사실 이번 장에서는 밑바닥부터 시작하는 딥러닝 1의 경우 계산 그래프를 이용해 설명을 진행한다.해당 방식의 경우 그래프 개념으로 이해하기 쉽게 설명되어 있지만, 기계적인 암기 방법이라 시간복잡도 개선에 대한 인사이트를 얻긴 쉽지 않았다.따라서 이번 장의 내용은 책의 내용이 아닌 수식으로 정리한 방식으로 설명을 진행한다.계산 그래프와 시각 자료를 이용한 설명이 필요하시다면, 해당 책을 구입하셔서 보시는 것을 추천드립니다. 책 내용도 좋습니다.기존 방식먼저 들어가기 전에, 기존 방식의 문제점을 파악해보자.식 정리모델이 갖고 있는 가중치의 집합을 θ라 하자.아래를 "특정 y에 대한 손실 함수"라고 하자.전체 우리가 최소화하고자 하는 전체 손실 함수(Cost function)은 다음과 같이 표현될 것이다.수식에..