태그 보관물: algorithms

algorithms

카드 게임 “War”의 수정 된 버전 분석 수 있습니다. 확실히, 전쟁 게임에서 이기고

어린이들이 주로하는 간단한 게임 인 War of game은 52 장의 표준 덱을 사용하는 두 사람이합니다. 처음에는 덱이 뒤섞이고 모든 카드는 두 명의 플레이어 두 명을 처리하므로 각각 무작위로 26 개의 무작위 카드를 갖습니다. 플레이어는 두 덱을 모두 검토 할 수 있지만 (각 변경은 안됨) 각 플레이어가 두 덱의 카드와 카드 순서를 알 수 있다고 가정합니다. 이것은 일반적으로 실제로 수행되지만 참고로 게임 플레이 방식에 대한 내용은 변경하지 않으며이 버전의 질문을 완전히 결정하는 데 도움이됩니다.

그런 다음 플레이어는 각자의 덱에서 맨 위의 카드를 공개합니다. 더 큰 카드 (보통 순서 : 2, 3, 4, 5, 6, 7, 8, 9, 10, Jack, Queen, King, Ace에 따라)를 공개 한 플레이어가 라운드에서 이기고 먼저 카드를 넣습니다. 카드의 맨 아래에 높은 카드)를 입력 한 다음 카드의 맨 아래에있는 상대 카드 (낮은 카드) (일반적으로이 명령의 순서는 적용되지 않지만이 질문의 첫 번째 버전을 결정 론적으로 유지하기 위해) 주문이 시행됩니다).

동점 일 경우, 각 플레이어는 덱 맨 위에서 4 장의 추가 카드를 공개합니다. 한 플레이어가 보여주는 네 번째 카드가 다른 플레이어가 보여주는 네 번째 카드보다 높은 경우, 네 번째 카드가 높은 플레이어는 타이 브레이커 동안 플레이 한 모든 카드를 이기며,이 경우 우승자의 카드는 승자의 덱 (선입 선출 순서, 즉 오래된 카드는 맨 아래에 먼저 배치)과 패자 카드 (동일한 순서로)가 있습니다.

후속 타이의 경우 타이의 승자가 결정될 때까지 프로세스가 반복됩니다. 한 명의 플레이어가 카드를 잃어도 계속 동점을 끊을 수 없다면 여전히 카드를 가지고있는 플레이어가 승자로 선언됩니다. 두 플레이어가 동시에 카드를 다 써 버리면 게임은 동점으로 선언됩니다.

라운드는 한 명의 플레이어가 카드를 모두 잃을 때까지 (즉, 자신의 덱에 더 이상 카드가 없을 때) 재생되며,이 시점에서 여전히 카드를 가진 플레이어가 승자로 선언됩니다.

지금까지 게임이 설명되었으므로 결과를 결정하는 데 기술이나 운이 관여하지 않습니다. 52 장의 카드 수에는 유한 한 순열이 있기 때문에, 덱을 처음에 처리 할 수있는 방법에는 유한 한 수가 있으며, 그 이유는 게임의 유일한 상태 정보가 두 플레이어의 덱의 현재 상태이기 때문입니다 ) 각 게임 구성의 결과는 우선적으로 결정될 수 있습니다. 확실히, 전쟁 게임에서 이기고 같은 토큰으로 잃을 수도 있습니다. 우리는 또한 전쟁 게임으로 인해 타이 또는 무한 루프가 발생할 가능성을 열어 둡니다. 위에서 설명한 완전히 결정론적인 버전의 경우, 그렇지 않을 수도 있습니다.

게임을 더 흥미롭게 만들려는 여러 변형 게임이 있습니다 (물론 게임을 음주 게임으로 만드는 것은 아닙니다). 게임을 더 재미있게 만들려고 생각한 한 가지 방법은 플레이어가 특정 라운드에서 자동 “트럼프”를 선언하도록하는 것입니다. 각 라운드에서 한 플레이어 (또는 두 플레이어)가 “트럼프”를 선언 할 수 있습니다. 한 명의 플레이어가 “트럼프”를 선언하면 해당 플레이어는 카드를 불문하고 라운드에서 승리합니다. 두 선수 모두 “트럼프”를 선언하면 라운드는 동점으로 취급되며 이에 따라 경기가 계속됩니다.

플레이어가 트럼프하는 능력을 제한하는 다양한 규칙을 상상할 수 있습니다 (무제한 트럼프는 플레이어가 매 턴마다 트럼프를하므로 항상 타이 게임이됩니다). 나는이 아이디어를 기반으로하지만 다른 트럼프 제한 메커니즘을 사용하여 전쟁의 두 가지 버전 (내 머리 꼭대기에서,이 라인을 따라 더 흥미로운 버전이 가능할 수 있음)을 제안합니다.

  1. 주파수 전쟁 : 플레이어는 이전 라운드 에서 트럼프를하지 않은 경우에만 트럼프 할 수 있습니다 .
    k

  2. 복수 전쟁 : 플레이어는 이전 라운드 에서 한 라운드를 이기지 못한 경우에만 나팔을 부를 수 있습니다 .
    k

이제 위에서 설명한 각 버전에 적용되는 질문이 있습니다.

  1. 가능한 초기 게임 구성 세트에 대해이를 사용하는 플레이어가 항상 승리하는 전략이 있습니까 (강한 승리 전략)? 그렇다면이 전략은 무엇입니까? 그렇지 않다면 왜 안됩니까?
  2. 가능한 초기 게임 구성 세트에 대해이를 사용하는 플레이어가 항상 동점을 이길 수있는 전략이 있습니까 (우승 전략)? 그렇다면이 전략은 무엇입니까? 그렇지 않다면 왜 안됩니까?
  3. (즉, 어떤 고정 된 전략을 사용하여 플레이어 초기 게임 구성이 더 성공 전략이 없도록 있습니까 항상 고정 된 전략을 사용하여 플레이어가 패배 할 수있다 )? 그렇다면 무엇을 설명해야합니까?S
    S

    S

분명히, 나는 “전략”을 전략을 사용하는 플레이어가 어느 라운드에서 나올지를 결정하는 고정 알고리즘으로 생각하고 있습니다. 예를 들어, 알고리즘 “가능한 경우 항상 우회”는 전략 및 알고리즘 (휴리스틱 알고리즘)입니다. 내가 묻는 다른 방법은 다음과 같습니다.

이 게임을 플레이하기위한 좋은 (또는 아마도 최적의) 휴리스틱이 있습니까?

그러한 게임의 분석에 대한 언급은 높이 평가됩니다 (저는이 버전의 전쟁 또는 본질적으로 동등한 게임에 대한 분석을 모릅니다). 에 대한 결과 는 흥미롭고 높이 평가됩니다 (두 경우 모두 은 무한한 트럼 핑으로 이어짐).k = 0

k

k=0



답변

올바르게 이해하면 게임에 대한 모든 정보를 두 플레이어가 모두 사용할 수 있습니다. 즉, 시작 구성과 가능한 모든 동작은 두 플레이어가 알고 있습니다 (주로 두 플레이어가 다른 플레이어의 카드를 볼 수 있기 때문에). 이를 통해 게임은 완벽한 정보의 제로섬 게임입니다. 따라서 두 선수 모두가 사용할 수있는 완벽한 전략이 있습니다. 이것은 1912 년 독일 수학자 Ernst Zermelo에 의해 입증되었습니다.

나는 전략이 무엇인지 모르지만, 큰 게임 트리를 구축하고 컴퓨터가 최소-최대 알고리즘을 사용하여 전략을 찾도록 상상할 수 있습니다.

각 게임의 나무는 두 선수의 손에 뿌리를두고 있습니다. 나무의 가지는 플레이어의 움직임에 해당합니다. 가장 간단한 경우, 이들은 단순히 필수 카드를 내려 놓는 것으로 구성됩니다. 보다 진보 된 경우에는 ‘트럼프’이동이 가능합니다. 트리의 내부 노드는 현재 카드 구성과 상태 wrt ‘트럼프’에 대한 정보를 기록합니다. 나무의 잎은 최종 게임 위치에 해당합니다. 예를 들어 1 번 승에게는 +1, 동점은 0, 2 번 승에게는 -1로 표시 됩니다. 지금은 루핑 게임을 무시하십시오.

이제 min-max 알고리즘은 다음과 같이 작동합니다 (플레이어 1의 관점에서). 플레이어 1이 이동하는 노드를보고 아래 노드에 +1, 0 또는 -1 ( 페이 오프) 가 표시되어 있다고 가정합니다.)를 선택하면 플레이어가 주어진 결과를 얻기 위해 선택해야합니다. 플레이어 1은 단순히 가장 큰 지불금을 가진 노드를 선택하고, 그 지불금을 지불하기 위해 필요한 선택을 기록합니다. 플레이어 2가 움직이고있는 노드의 경우 최소 지불액을 가진 노드가 선택되고 선택이 기록됩니다. 이것은 플레이어 2가 가장 낮은 점수를 목표로하고 있음을 반영합니다. 이것은 트리로 전파됩니다. 각 노드에 기록 된 선택은 플레이어가 할 수있는 최선의 전략에 해당합니다. 최종 보수는 누가 이길 지 결정합니다. 이동의 정확한 선택은 다를 수 있지만 이것은 궁극적으로 지불 측면에서 기능입니다.

잠재적으로 루핑 구성 은 이미 본 구성으로 돌아가는 루프 (위에서 컴퓨팅 할 때)를 추가하여 게임 트리에 통합 할 수 있습니다. 이러한 노드의 경우 플레이어 1이 재생되는 노드 인 경우 가장 큰 고정 점을, 플레이어 2가 재생하는 경우 가장 낮은 고정 소수점을 사용합니다.

두 플레이어가 두 덱을 모두 검사 할 수 있다고 가정하지 않았다면이 방법은 적용되지 않습니다. 그런 다음 게임에는 기회가 포함되며 선택한 전략은 게임에 따라 다릅니다.

플레이어 중 하나에 대해 강하거나 약한 승리 전략이 있는지 여부는 모든 트리에 적용된 최소-최대 알고리즘의 결과에 달려 있습니다. 그러나 확실히 많은 것들이 있습니다 …. 게임을 통해 많은 선택이 없기 때문에 하나의 트리를 계산하는 것은 아마도 매우 쉽습니다.


답변