Main Content

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la última versión en inglés.

plan

Encuentra la ruta más corta entre dos estados en el gráfico

Desde R2023a

    Descripción

    ejemplo

    path = plan(planner,start,goal) encuentra la ruta más corta path entre un start y goal especificado en el gráfico utilizando el A* planificador de rutas planner.

    [path,solutionInfo] = plan(___) devuelve la información de la solución de la planificación de ruta solutionInfo.

    Ejemplos

    contraer todo

    Cargue la red de carreteras de Queensland.

    load("queenslandRoutes","places","routes")

    Especifique estados, enlaces y pesos para un objeto navGraph .

    states = places.utm;               % UTM coordinates of cities
    names = places.name;               % Names of cities
    links = [routes.start routes.end]; % Adjacent cities
    weights = routes.time;             % Travel time between adjacent cities

    Cree un objeto navGraph .

    graphObj = navGraph(states,links,Weight=weights, ...
                        Name=names);

    Cree un planificador de rutas A* basado en gráficos.

    planner = plannerAStar(graphObj);

    Cree una copia profunda del objeto plannerAStar .

    planner2 = copy(planner)
    planner2 = 
      plannerAStar with properties:
    
        HeuristicCostFcn: @nav.algs.distanceManhattan
              TieBreaker: 0
                   Graph: [1x1 navGraph]
    
    

    Especificar una función heurística devuelve un tiempo estimado para alcanzar el objetivo.

    planner.HeuristicCostFcn = @(state1,state2) ...
        sum(abs(state1-state2),2)/100;

    Definir las ciudades de inicio y destino.

    start = "Hughenden";
    goal = "Brisbane";

    Encuentre la ruta más corta utilizando el algoritmo A* basado en gráficos.

    [pathOutput,solutionInfo] = plan(planner,start,goal);

    Visualiza los resultados.

    h = show(graphObj);
    set(h,XData=graphObj.States.StateVector(:,1), ...
          YData=graphObj.States.StateVector(:,2))
    pathStateIDs = solutionInfo.PathStateIDs;
    highlight(h,pathStateIDs,EdgeColor="#EDB120",LineWidth=4)
    highlight(h,pathStateIDs(1),NodeColor="#77AC30",MarkerSize=5)
    highlight(h,pathStateIDs(end),NodeColor="#D95319",MarkerSize=5)

    Figure contains an axes object. The axes object contains an object of type graphplot.

    Argumentos de entrada

    contraer todo

    Un* planificador de ruta, especificado como un objeto plannerAStar .

    Estado inicial de la ruta, especificado como un entero positivo, escalar de cadena, vector de caracteres o vector numérico.

    • Entero positivo: especifique el ID del estado inicial. El ID de estado es el índice del estado en el objeto navGraph en la propiedad Graph de planner.

    • Cadena escalar o vector de caracteres: especifique el nombre del estado.

    • Vector numérico: especifique las coordenadas del estado.

    Ejemplo: 1

    Ejemplo: "Brisbane"

    Ejemplo: [1095.91458671447 6947.04365801860]

    Tipos de datos: single | double | char | string

    Estado objetivo de la ruta, especificado como un entero positivo, escalar de cadena, vector de caracteres o vector numérico.

    • Entero positivo: especifique el ID del estado inicial. El ID de estado es el índice del estado en el objeto navGraph en la propiedad Graph de planner.

    • Cadena escalar o vector de caracteres: especifique el nombre del estado.

    • Vector numérico: especifique las coordenadas del estado.

    Ejemplo: 5

    Ejemplo: "Hughenden"

    Ejemplo: [208.622393818849 7691.91766093269]

    Tipos de datos: single | double | char | string

    Argumentos de salida

    contraer todo

    Ruta más corta entre estados, devuelta como una matriz numérica.

    Tipos de datos: double

    La información de la solución, devuelta como una estructura. Los campos de la estructura son:

    CampoDescripción
    IsPathFound

    Indica si se ha encontrado una ruta. Devuelve true si se ha encontrado una ruta. De lo contrario, devuelve false.

    PathStateIDs

    Lista de ID de los estados a lo largo de la ruta encontrado por A*. De forma predeterminada, los ID son los índices numéricos de los estados en el objeto gráfico. Si especifica nombres para los estados mientras construye el objeto gráfico, este campo contiene los nombres.

    PathCost

    Coste total de la ruta. Si no se encuentra ninguna ruta, entonces el coste es NaN.

    ExploredStateIDs

    Lista de ID de los estados explorados por A* durante la búsqueda. De forma predeterminada, los ID son los índices numéricos de los estados en el objeto gráfico. Si especifica nombres para los estados mientras construye el objeto gráfico, este campo contiene los nombres.

    NumExploredStates

    Número de estados explorados durante la búsqueda. Igual a la longitud de la lista ExploredStateIDs .

    Tipos de datos: struct

    Capacidades ampliadas

    Generación de código C/C++
    Genere código C y C++ mediante MATLAB® Coder™.

    Historial de versiones

    Introducido en R2023a

    Consulte también

    |