联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> Python编程Python编程

日期:2024-04-07 09:22

Support for Assignment 4

CS 1501

Sherif KhattabGeneral Hints

• You can get the number of vertices using ag.getAirports().size(), whereby

ag is an AirlineGraph object

• Iterate over airports using for(String airport: ag.getAirports()){ … }

• You can get a unique integer for each airport in the graph using the

ag.getAirportNo() method

• You can retrieve the set of neighbors of an airport using

ag.adj(airportName)

• To iterate over the set of neighbors: for(Route r: ag.adj(airportName)){ … }

• You can retrieve the name of a neighboring airport using r.destination

• You may use HashSet to instantiate Set objectsfewestStops

• Use BFS

• check the pseudo-code in lecture notes

• Shortest path Source -> transit -> destination can be found by

• shortest path source  transit

• shortest path transit  destination

• concatenate the two shortest paths

• Be careful not to add transit twice to the concatenated pathConnected Components

• Use BFS

• You can find the pseudo-code in the lecture notesallTrips

• Use backtracking and pruning

• Define a recursive helper method: solve(current decision, current solution)

• current decision  current vertex (int or String) • current solution

• Set<ArrayList<Route>> of trips found so far

• current path: ArrayList<Route>

• total price so far of current path

• number of stops so far of current path

• destination, budget and max number of stops for comparison

• Inside the recursive helper method:

• if current vertex is the destination  add current path to the solution set and return

• iterate over all possibilities (unmarked neighbors)

• check if you can add the neighbor to the current path (total price won’t exceed budget and total number of stops won’t exceed maximum stops)

• if so, mark neighbor, update current path, its price, and its number of stops.

• make a recursive call on the neighbor

• undo changes to current path, price, and number of stops and unmark neighbor

• mark start airport before calling solve the first timeallRoundTrips

• Use backtracking and pruning

• Define a recursive helper method: solve(current decision, current solution)

• current decision  current vertex (int or String) • current solution

• Set<ArrayList<Route>> of trips found so far

• current path: ArrayList<Route>

• total price so far of current path

• number of stops so far of current path

• budget and max number of stops for comparison

• Inside the recursive helper method:

• if current vertex is the source and stops so far > 0  add current path to the solution set and return

• iterate over all possibilities (unmarked neighbors)

• check if you can add the neighbor to the current path (total price won’t exceed budget and total number of stops won’t exceed maximum stops)

• if so, mark neighbor, update current path, its price, and its number of stops.

• make a recursive call on the neighbor

• undo changes to current path, price, and number of stops and unmark neighbor

• Don’t mark start airport before calling solve the first time


版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp