Zastanawiam się nad algorytmem, który zwraca prawdę lub fałsz, informując mnie, czy możliwe jest narysowanie okręgu wokół zbioru punktów A, tak aby żaden punkt z zestawu punktów B nie znajdował się w środku lub na odwrót. (możliwe narysować koło wokół zbioru punktów B tak, że żaden punkt z zestawu punktów A nie znajduje się w środku).Jak określić, czy można narysować okrąg wokół zestawu punktów, tak aby punkty z drugiego zestawu nie znajdowały się w nim?
Zasadniczo, jako dane wprowadzane są 2 zestawy punktów, i trzeba określić, czy możliwe jest narysowanie okręgu wokół jednego, tak aby żaden punkt z drugiego nie znajdował się wewnątrz niego.
Spojrzałem na Megiddo's linear time algorithm dla smallest enclosing circle problem, ale problem polega na tym, że rysuje tylko najmniejsze kółko, co oznacza, że nie działa w przypadku, gdy potrzebujesz dużego koła.
Oto pic co mam na myśli:
W tym obrazie jest możliwe, aby narysować bardzo duży krąg wokół zestawu czerwonych punktów, tak że każdy z zielone punkty nie są w środku, dlatego algorytm Megiddo nie zadziała.
Z twojego streszczenia: "Pokazujemy, że decydując o tym, czy dwa zestawy są kołowo rozdzielne, można osiągnąć w * O * (* n *) czasie za pomocą algorytmu liniowego Megiddo." OP twierdzi, że algorytm Megiddo nie działa na tym przykładzie (ale może to tylko zemsta za błędy w pisowni). – usr2564301
@Jongware Algorytm Megiddo pokazuje, że problemy z programowaniem liniowym w 3d można rozwiązać w czasie liniowym. Megiddo dostarcza również przykładu użycia algorytmu znajdującego najmniejsze otaczające koło. Ten przykład nie jest tym, co chce OP. Jednak w tym dokumencie przedstawiono inną formułę, która rzeczywiście pozwala na zastosowanie algorytmu Megiddo. (Pomysł rzutuje punkty na paraboloidę, a następnie znajduje płaszczyznę oddzielającą.) –