联系方式

  • 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