Conectividad de condados de EE.UU.
Construya el grafo de conectividad entre condados vecinos de EE.UU.
Tome la lista de todos los condados en los estados contiguos de los EE.UU. continentales.
![Click for copyable input](assets.es/connectivity-of-us-counties/In_28.png)
Length[counties =
Flatten[EntityClass["AdministrativeDivision",
"ContinentalUSStates"]["Subdivisions"]]]
![](assets.es/connectivity-of-us-counties/O_25.png)
Agregue el Distrito de Columbia, el cual no es una subdivisión de ninguno de los 48 estados contiguos.
![Click for copyable input](assets.es/connectivity-of-us-counties/In_29.png)
AppendTo[counties,
Entity["AdministrativeDivision", {"DistrictOfColumbia",
"DistrictOfColumbia", "UnitedStates"}]];
Calcule la lista de condados límite de cada estado.
![Click for copyable input](assets.es/connectivity-of-us-counties/In_30.png)
bordering = EntityValue[counties, "BorderingCounties"];
Elimine algunos casos para los cuales información de límite no está disponible.
![Click for copyable input](assets.es/connectivity-of-us-counties/In_31.png)
Length[missingpos = Position[bordering, _Missing]]
![](assets.es/connectivity-of-us-counties/O_26.png)
![Click for copyable input](assets.es/connectivity-of-us-counties/In_32.png)
counties = Delete[counties, missingpos];
bordering = Delete[bordering, missingpos];
Construya los bordes del grafo de conectividad de los condados de EE.UU.
![Click for copyable input](assets.es/connectivity-of-us-counties/In_33.png)
Length[edges =
DeleteDuplicates[
Sort /@ Flatten[
MapThread[Thread[UndirectedEdge[##]] &, {counties, bordering}]]]]
![](assets.es/connectivity-of-us-counties/O_27.png)
![Click for copyable input](assets.es/connectivity-of-us-counties/In_34.png)
Graph[counties, edges]
![](assets.es/connectivity-of-us-counties/O_28.png)
Para construir una incrustación más familiar, descarga la posición central de todos los condados.
![Click for copyable input](assets.es/connectivity-of-us-counties/In_35.png)
pos = GeoPosition[EntityValue[counties, "Position"]]
![](assets.es/connectivity-of-us-counties/O_29.png)
Utilice la siguiente proyección cartográfica.
![Click for copyable input](assets.es/connectivity-of-us-counties/In_36.png)
proj = {"LambertAzimuthal",
"Centering" ->
Entity["City", {"Topeka", "Kansas", "UnitedStates"}]};
![Click for copyable input](assets.es/connectivity-of-us-counties/In_37.png)
projpos = First@GeoGridPosition[pos, proj];
Luego, usted tiene el siguiente incrustación de grafo.
![Click for copyable input](assets.es/connectivity-of-us-counties/In_38.png)
graph = Graph[counties, edges, VertexCoordinates -> projpos]
![](assets.es/connectivity-of-us-counties/O_30.png)
Para ir del condado de San Francisco a Manhattan, usted necesita visitar al menos 67 condados, incluyendo los iniciales y finales.
![Click for copyable input](assets.es/connectivity-of-us-counties/In_39.png)
Length[path = FindShortestPath[graph,
Entity[
"AdministrativeDivision", {"SanFranciscoCounty", "California",
"UnitedStates"}],
Entity[
"AdministrativeDivision", {"NewYorkCounty", "NewYork",
"UnitedStates"}]]]
![](assets.es/connectivity-of-us-counties/O_31.png)
![Click for copyable input](assets.es/connectivity-of-us-counties/In_40.png)
HighlightGraph[graph, PathGraph[path]]
![](assets.es/connectivity-of-us-counties/O_32.png)