[include(틀:유머성 문서)][include(틀:상위 문서, doc=기만/기만론)] [목차] == 기만 알고리즘학 == 기만에 대한 방법과 그것에 소요되는 시간을 분석하는 학문이다. === Big-G 표기법 === 기만자가 기만을 할 때의 복잡도를 표시하는 방법으로, G(복잡도)와 같이 표시하며, 복잡도는 최고차항만 표기한다. EX) 1등 알고리즘: G(1) === 1등 알고리즘 === 1등 알고리즘은 1등이 기만할때 사용되는 알고리즘으로, G(1)의 복잡도를 가지고 있다. 의사 코드로 나타낼 시 아래와 같다. {{{#!syntax cpp 만약 나와 기수가 같다면 기만한다. 아니라면 해당 학생이 자신보다 선배기수라면 해당 학생이 자신의 학년도에 1등이 아니었다면 기만한다. 아니라면 해당 학생이 해당 학생의 학년도 1등이 아니라면 기만한다. }}} 이를 바탕으로 한 n등 알고리즘도 있다. 복잡도는 G(N)이다. {{{#!syntax cpp i가 1부터 n까지 반복할 때 만약 해당 학생이 i등이라면 런한다. 아니라면 기다린다. 만약 런하지 않았다면 기만한다. }}} === 기만 정렬 === 어떤 기만자가, 순서대로 존재하는 어떤 학생의 무리에게 차례대로 기만하는 알고리즘이다. ==== 퀵 기만 ==== 퀵 기만은, G(NlnN)의 복잡도를 가지는 기만법이다. 먼저, 자신의 등수보다 높은 사람을 모두 거른다. 이 과정에서 N의 시간이 소요된다. 또 각 사람에 대해서, 자신이 더 잘 본 과목에 대해서 기만한다. 이 과정에서 대략 lnN 정도의 시간이 소요된다고 알려져 있다. 이러한 방식을 통해서 전체 학생에 대해서 기만을 시전할 수 있다. ==== 버블 기만 ==== 기만을 가장 크게 할 수 있는 과목에 대한 기만의 순서를 맨 뒤로 미루어가며 기만력 순으로 기만하는 방식의 기만이다. 기만력의 비교횟수는 G(N^2)으로 전교 1등의 경우 모든 과목에서의 기만력이 최대이기 때문에, 비교횟수가 최소가 된다. ==== 병렬 기만 ==== 병렬 기만은 동시에 많은 사람에게 기만을 시전할 수 있는 기만법의 한 종류이다. 본인의 성적에 크게 의존하며 사용하기 어려운 편이다. 복잡도는 G(1)이지만, 나보다 성적이 높은 사람이 존재할 수 있는 잠재적 버그가 존재하기 때문에 자주 사용하지 않는 것이 좋다. 이론적으로 할 수 있는 가장 효과적인 예시는 "틀릴게 있어?"지만 실제로 사용하는 것은 매우 어려우므로 "4밑대" 혹은 "아니 나 저번보다 떨어졌어" 등의 성능은 약간 부족하지만 안정적인 방법으로 병렬 기만을 시전하는 경우가 많다. === 기만 그래프 === 어떤 한 기만자를 중심으로 한 인간관계 그래프에서, 그 그래프에 속한 사람들에게 기만하는 알고리즘이다. ==== 깊이 우선 기만 (DFG) ==== 우선 한 과목에 대해서 가능한 모든 사람에게 기만을 한 뒤, 다음 과목에 대한 기만을 시작하는 기만 방법이다. 기만하고자 하는 자가 자신이 아는 모든 사람에게 기만하고 싶을 때 이 기만법을 사용한다. 단, 기만하는 자의 특정 과목 성적이 너무 높아 기만 할 수 있는 사람이 너무 많은 경우에 다른 과목에 대한 기만은 하지 못한다는 단점이 있다. ==== 너비 우선 기만 (BFG) ==== 모든 과목에 대해 주변 사람들부터 기만을 하는 기만 방법이다. 기만을 하는 사람들은 모든 과목을 골고루 기만하고 싶어하기 때문에 보통 깊이 우선 기만 보다는 너비 우선 기만을 선택한다. 단, 이 기만 방법은 자신이 어떤 사람에게 기만을 했는지 기억해야 한다는 단점이 있다. 간혹 기억하지 못하는 사람들은 동일한 사람에게 똑같은 기만을 두번 시행하고는 한다. ==== G* 알고리즘 ==== 더 효율적인 기만을 하기 위해서 고안된 알고리즘으로, 두 개의 "기만 함수"의 값이 가장 높은 사람부터 기만을 시작한다. 보통 흔하게 이용되는 두 기만 함수는, 내가 가진 기만의 파급력 g(x)와, 상대방의 멘붕 함수 m(x)가 있다. 이 두 값을 더한 사람이 가장 큰 피해를 입을 것이기 때문에, 그 사람부터 기만을 시작하는 것이다. === 기만 호출법 === 기만을 호출할 때에 선택할 수 있는 방법이다. ==== Call by 등급 ==== 기만의 호출 및 반환의 속도가 느리다. 원점수가 다르더라도 등급은 같을 수 있기에 깊지 않은 표면적인 기만이다. (얕은 기만) ==== Call by 원점수 ==== 기만의 호출 및 반환의 속도가 빠르고 실질적인 성적차를 반영한 기만을 할 수 있어 그 파급력의 정확도가 높다. (깊은 기만) 어떤 김기만이 이걸 본인의 원점수를 통해 특수 기만 (Call by 원점수)를 시전한 적 있다 == 기만학습 == 어떻게 하면 더 발전된 기만을 할 수 있을 지를 거듭된 시행을 통해 찾아내는 학문이다. 단순하게는 선형기만부터 다항기만까지 다양한 방법을 통해 탐구한다. === molu 함수 === 기만학습법에서 사용되는 함수이다. 딥러닝에서의 relu함수 정도에 해당한다고 보면 된다. 관습적으로 mo와 lu사이에 물음표를 넣어 다음의 형태로 사용한다. >mo?lu 주로 "Adam한기만"과 함께 사용된다. '''그런데 실제로 놀랍게도 2023년 3월 1일 서울대에서 Moderate Adaptive Linear Units라는 moLU함수를 발표했다''' === 경사기만법 === 한 대상에게 기만을 반복하면서, 어떠한 방식으로 기만을 해야 기만력이 가장 커지는 지를 연구하는 방법이다. 오히려 기만을 너무 많이 하면, 기만력이 줄어드는 경향이 있기 때문에, 많은 횟수의 시도를 필요로 한다. === 합성곱 기만망(CGN) === 합성곱 기만망(Convolution Giman Network)란 합성곱 이미지 분석 방식을 사용하여 어떤 표정으로 기만을 해야 상대방이 더 킹받을 수 있는지를 연구한다. 기존의 기만법과는 다르게 상대방 표정 전체에서 어떤 기만을 들었을 때 제일 반응이 찰진지 확인하고 조금씩 기만을 추상화해가며 상대방을 기만적으로 완벽하게 파악하게 된다. === 순환 기만망(RGN) === 순환 기만망(Recurrent Giman Network) 딥러닝의 순환신경망처럼 기만을 시전한 후의 상대방의 반응을 통해서 기만을 이어나가는 방식의 기만이다. 그때 그때 상대방이 하는 말에 대해 기만하는 것이 아닌 그 전에 상대방이 해온 말들과 합쳐 중요도를 분배해 기만하는 방식으로 고급 용어로 "빌드업"이라고도 한다. 좀 더 나아가 발전된 기만법으로는 중요도를 더욱 잘 따질 수 있는 LSTM 기만법이나 GRU 기만법 등이 있다 === 기만적 적대 연락망(GAN) === 기만적 적대 연락망(Giman-tive Adversarial Networks)란 기만을 통해서 구성되는 적대적인 관계의 사람들과의 연락망을 체계적이고 조직적으로 구축하여 최적으로 특수기만을 하기 좋은 인간관계 그래프를 만들어내는 것을 목표로 하는 이론이다. == 기만 해킹 == 기만을 당하는 사람에게서 정보를 빼앗거나, 들키지 않고 접근해서 기만을 하는 방법을 연구하는 학문이다. === 기만 스푸핑 === 본인이 기만자가 아닌척 변조하여 대상자에게 접근한 뒤 나중에 취약점에 기만을 하는 방법이다. 시험이 끝난 직후 많이 볼 수 있으며 대부분 레파토리가 비슷하기 때문에 잘 당하지 않게 된다. 예시로는 "나 망함 ㅋㅋ"같이 말로 하거나 굉장히 심각해보이는 표정으로 변조를 하는 경우가 있다. === 블라인드 기만 인젝션 === 상대방의 성적에 대한 정보를 빼낼 수 있는 기만 해킹의 한 방법이다. 먼저, 일단 상대방에게 기만이 통하는 지를 먼저 체크한다. (이때, 상대방이 명시적으로 화를 내거나, 또는 리액션을 하기까지 걸리는 시간이 다른 경우 모두 가능하다.) 인젝션이 가능한 경우, 과목이나 점수를 조금씩 바꿔가면서 기만을 시전하면서, 화내는 반응(response)이나, 리액션에 걸리는 시간(reaction-time)을 관찰한다. 이렇게 상대방에게 해당 기만이 타격이 있는지 없는지를 검사하는 과정을 반복해주면, 최종적으로 상대방의 성적 정보를 완전히 알아낼 수 있다.