의외로 인류가 아직도 완전히 풀지 못한 수학 문제
코
코미 (104.♡.68.24)
2024년 11월 12일 AM 10:32 · 수정됨(11:46)
조회 1,400 공감 0
The Moving sofa problem
폭이 1m이고 직각 커브가 있는 복도를 지날 수 있는 도형의 최대 넓이를 구하는 문제입니다.
2차원이어야 한다는 점을 빼면 문제 해결을 위한 도형의 형태에 전혀 제한이 없음에도 불구하고 현재까지 최대 크기가 얼마인지 밝혀내지 못했죠.

댓글 (9)
-
제제리아스
24.11.12 · 118.♡.2.211
이런건 그냥 ai로 헤딩시켜서 근사치를 얻은후에 공식화 하는게 낫지 않을까 싶습니다. -
DDrum
→ 제리아스
24.11.12 · 1.♡.144.122
이게 실상은 최댓값을 찾는 문제라기 보다는 현재까지 발견 한 최댓값이 진짜 최댓값이 맞는지 증명을 하지 못 한 성격의 문제입니다.
일단 여러 학자들이 보기에 이게 최댓값은 맞는 것 같은데... 정말 이게 끝일까? 하는 의문이 명확하게 밝혀지지 않은거죠. -
기기후위기
24.11.12 · 175.♡.225.161
[https://s3.damoang.net/data/editor/2411/comment_2943803809_vlskC83V_88332b884927f3cff98e1336483cd081601b1c38.gif]
이 장면 생각나는군요 ㅎㅎ -
이이적
→ 기후위기
24.11.12 · 106.♡.142.153
피벗. 피벗. 피벗.
샷압! 피벗! -
벗벗님
24.11.12 · 106.♡.231.242
gemini를 어르고 달랬더니, 이런 코드까지는 만들어주네요.
*
import numpy as np
import matplotlib.pyplot as plt
# 상수 정의
CORRIDOR_WIDTH = 1 # 복도 폭
MAX_ITERATIONS = 1000 # 유전 알고리즘 반복 횟수
POPULATION_SIZE = 100 # 개체 수
# 소파 표현 (다각형)
def create_sofa(num_sides):
# ... (생략)
# 소파 회전
def rotate_sofa(points, angle):
# ... (생략)
# 충돌 검사 (복도를 두 개의 직선으로 나누어 검사)
def check_collision(sofa_points, corridor):
# ... (생략)
# 다각형 면적 계산 (가우스의 끈 공식)
def calculate_polygon_area(points):
x = points[:, 0]
y = points[:, 1]
return 0.5 * np.abs(np.dot(x, np.roll(y, 1)) - np.dot(y, np.roll(x, 1)))
# 적합도 함수
def calculate_fitness(sofa_points, corridor):
area = calculate_polygon_area(sofa_points)
if check_collision(sofa_points, corridor):
area *= 0.5
return area
# 유전 알고리즘
def genetic_algorithm(population, fitness_func, corridor, max_iterations):
for generation in range(max_iterations):
# 선택 (토너먼트 선택)
# ...
# 교차
# ...
# 돌연변이
# ...
return max(population, key=lambda x: fitness_func(x, corridor))
# 초기 개체 생성
def initialize_population(size, num_sides):
return [create_sofa(np.random.randint(3, num_sides)) for _ in range(size)]
# 시각화
def visualize_sofa(sofa_points, corridor):
# ... (생략)
# 메인 함수
if __name__ == "__main__":
corridor = [(0, 0), (1, 1)] # 복도 좌표
population = initialize_population(POPULATION_SIZE, 5) # 초기 개체 생성 (최대 5각형)
best_sofa = genetic_algorithm(population, calculate_fitness, corridor, MAX_ITERATIONS)
visualize_sofa(best_sofa, corridor) -
Ttodesto
24.11.12 · 76.♡.120.245
그림보면 답이 없는데....답이 있다는건가요? -
일일리어스
24.11.12 · 211.♡.22.79
최대값을 못찾은게 아니라
정확히는 최대값을 찾는 공식을 못찾은거죠.
현재까지의 최대값은 있는데
공식이 없다보니 이게 최대가 맞나.. 더 큰건 없나. 증명을 못한 상황 -
제제리아스
→ 일리어스
24.11.12 · 118.♡.2.211
아하 역시 그렇군요 -
두두루미235
24.11.12 · 222.♡.127.189
요만큼?
댓글을 작성하려면 이 필요합니다.