<em id="rw4ev"></em>

      <tr id="rw4ev"></tr>

      <nav id="rw4ev"></nav>
      <strike id="rw4ev"><pre id="rw4ev"></pre></strike>
      合肥生活安徽新聞合肥交通合肥房產生活服務合肥教育合肥招聘合肥旅游文化藝術合肥美食合肥地圖合肥社保合肥醫院企業服務合肥法律

      代做CSC 4120、代寫Python程序語言

      時間:2024-05-19  來源:合肥網hfw.cc  作者:hfw.cc 我要糾錯



      CSC 4120 Project
      Party Together
      March 17, 2024 Version 1.1
      1 Problem Statement
      You and your friends are going to have a party at your house this weekend to celebrate the
      end of the semester. You, being an excellent driver with a nice car, offer to pick up all
      your friends near or at their homes and drive them to your house. Can you come up with a
      transportation plan so that everyone gets to the party as efffciently as possible?
      Formally, you are given an instance of the Party Together Problem (PTP) with inputs
      (G, H, α). G = (V, E) is an undirected graph where V is the set of nodes indexed from 0 to
      |V | − 1 and each node represents a location in the city. The weight of each edge (u, v) is the
      length of the direct road connection between location u and v, which is non-negative. Your
      house is at location 0. H ⊂ V is the set of distinct locations that correspond to your friends’
      homes. If F = {0, 1, . . . , |F| − 1} is the set of friends, then each friend m ∈ F has a house
      location hm ∈ H and each house location corresponds to exactly one friend. The constant α
      refers to the relative cost of driving vs walking.
      A possible pickup schedule speciffes the locations where you will pick up your friends.
      More speciffcally, it will specify for each friend m a pickup location pm ∈ V , and you will
      need to drive your car starting from your home to pass from all the pickup locations to collect
      your friends and bring them back home (assume that the car has enough capacity to carry
      all your friends).
      Cost structure: Each friend incurs a walking cost equal to the distance traveled to get
      from his home to his pickup location. You incur a driving cost equal to the distance traveled
      by your car multiplied by the constant α, 0 ≤ α ≤ 1. It is in general more efffcient to travel
      by car than walking, and the cost of the car does not depend on how many people it carries.
      Assumptions:
      • The capacity of your car is unlimited.
      • Your friend would take the shortest path from her home to her pick-up location.
      • You can pick up multiple friends at the same location.
      • You may pass from the same location more than once.
      • The graph is connected.
      • There is no road from a location to itself, i.e., there is no edge (i,i) in the graph for
      any i.
      1• Triangle inequality holds. Taking the direct path between two locations (if it exists)
      is always not longer than going through some other intermediate location, i.e., for any
      edge (i, j) in the graph and any location u ̸= i, j,
      wij ≤ diu + duj
      ,
      where dxy is the length of the shortest path from location x to location y.
      Your task is to ffnd i) the set of pick-up locations for your friends, and ii) a routing
      schedule of the car, i.e., a ‘tour’
      1
      that includes node 0 and the above pickup locations, that
      minimize the total cost.
      The total cost is calculated as follows. Let L = {pm}m∈F be the set of locations you
      pick up your friends, and {u0, u1, · · · , un}, u0 = un = 0, be the tour of the car where
      L ⊆ {u0, . . . , un−1}. Let dij be the length of the shortest path between locations i and j.
      The total cost corresponding to this tour and set of pickup locations is
      α
      Xn
      i=1
      wui−1ui +
      |F
      X
      |−1
      m=0
      dpmhm.
      For the example in Figure 1 where H = {1, 2, 3} and α =
      2
      3
      , the optimal car tour is
      0 → 1 → 0 and pick up everyone at node 1. The total cost is (2 ∗
      2
      3 + 1 + 1 =
      10
      3
      ).
      Figure 1: Example: Graph G, H = {1, 2, 3}, α =
      2
      3
      . Optimal car tour colored in red, friend
      walking tour in blue, everyone get picked up at node 1. Total cost is
      10
      3
      .
      Project Deliverables The project is divided into four parts. In the ffrst part, you have to
      generate inputs for the problem. In the second part, you have to implement a solver solving
      the problem. In the third part, you would consider a simpler version and practice dynamic
      programming. In the last part, you will look at theoretical aspects of the problem.
      2 Input Generation
      Overview In this part, you will have to generate inputs for the problem, that is, create
      instances of the problem. We would gather everyone’s inputs and test your solver in Question
      1A path is sequence of nodes where any two consecutive nodes are connected with an edge. A tour is a
      path that start and ends in the same node and can repeat nodes. A simple tour (or simple cycle) is a tour
      that does not repeat nodes.
      23 on them. You might like to design inputs whose solution is hard to ffnd so only your group
      can perform well in the test. To do this, you may ffrst think of possible approaches to solve
      the problem and then design inputs to induce the algorithm to bad solutions.
      Input Format The ffrst line of the input ffle would be a ffoat number α representing the
      relative cost of driving vs walking.
      The second line of the input ffle contains two integers |V | and |H|, separated by spaces,
      where |V | is the number of nodes in the graph and |H| is the number of homes (friends).
      The nodes will be indexed from 0 to |V | − 1.
      The third line contains the list of home nodes, separated by spaces.
      The following lines have similar structures which specify the adjacency list of the graph.
      The ffrst label in a line is the source node index followed by the node degree d. The next
      d lines are target node indices and integer edge weight. That pattern repeats for all nodes in
      the graph.
      Sample Input: consider the example in Figure 1, the corresponding input ffle would be
      0.6666667
      4 3
      1 2 3
      0 1
      1 1
      1 3
      0 1
      2 1
      3 1
      2 1
      1 1
      3 1
      1 1
      Question 2 Generate 4 inputs with different sizes and α in the required format. Your
      graphs must be connected and satisfy the triangle inequality. You will generate 1 input for
      each of the following problem categories:
      • α = 0.3, up to 20 nodes and 10 friends
      • α = 1.0, up to 20 nodes and 10 friends
      • α = 0.3, up to 40 nodes and 20 friends
      • α = 1.0, up to 40 nodes and 20 friends
      Name them 20 03.in, 20 10.in, 40 03.in, 40 10.in, respectively.
      3 Solve PTP
      Overview In this part, you are asked to solve the PTP problem. We know this is demanding,
       so we give you some hints (actually, possible solutions!) to start with.
      3Question 3 In ptp solver.py ffle, implement the function ptp solver(G, H, α) to solve PTP,
      where inputs are the graph G, home list H, and coefffcient α. You should return a list of
      nodes traversed by the car as well as a list of pick-up locations. More instructions would be
      given later in this documentation and in the python ffle.
      Your solution must not be the same as in Question 4.2.
      You are encouraged to do some research to ffnd similar problems and algorithms to solve
      them. You can do reductions or/and use the ideas from the solutions. We give you some
      keywords here: travelling salesman (subset tour) problem, shortest paths visiting speciffed
      nodes problem, vehicle routing problem...
      In case you are struggling to come up with a solution, we provide two possible approaches
      here:
      1. Integer Linear Program (ILP). You can model the problem as an ILP and call a solver
      to solve it. You can check Miller’s paper on 1960 [1] where they formulated TSP as an
      ILP to get an idea. In Zhang et al (2023)’s paper [2], the authors optimize ride-hailing
      vehicle routing problem with vehicle-customer coordination where customers can walk
      to the pick-up locations in an Euclidean space with speed and time constraints.
      2. Greedy algorithm with insert/delete heuristic. In [3], the authors proposed an insert/delete
       heuristic to solve the travelling salesman subset-tour problem where the
      salesman has to visit a subset of nodes of the graph with constraints. Here in our
      problem, we can take the heuristic to build the solution iteratively.
      Note that once we have a tour T of the car, the pick-up locations are implicitly deffned
      since we would let friends take the shortest path from their homes (if not already in
      the tour) to the tour. The cost c(T) of a (feasible) solution based on T is the sum of α
      times the total length of the tour and the total walking distance of friends. Therefore,
      we seek to ffnd a T with minimum c(T). The only requirement of T is that it must be
      tour starting and ending in node 0.
      The heuristic algorithm 1 (see pseudocode below) works in following way. We start
      with an arbitrary tour T and do a local search to improve the total cost. At every
      step, we change T by either deleting a node from T or adding a new node to T in a
      way to reduce c(T) the most. Stop when there is no further improvement that can be
      made. Since triangle inequality holds, the total number of changes would be linear in
      |V | (take it as granted).
      Hint: You may want to consider precomputing the all-pair shortest path distances, so
      you have them ready when executing your algorithm.
      4 A Constrained Version
      Overview In this part, we consider a simpler version of PTP, namely Pickup from Home
      Problem (PHP). The problem has the additional constraint that you must pick up your
      friends at their homes (so we don’t need to worry about optimizing over the set of pickup
      locations).
      It is easy to establish NP-hardness of PHP by reducing the Metric Travelling Salesman
      Problem (M-TSP) to PHP. M-TSP is deffned in terms of a graph Ge = (Ve, Ee) that is
      4Algorithm 1 PTP Algorithm with Insert/Delete Heuristic
      T
      1 ← {0}
      n = |V | ▷ Number of nodes
      for k = 1, 2, · · · do
      for i = 1, 2, · · · , n do ▷ Compute one node change of T
      k
      if i ∈ T
      k
      then
      T
      k
      i = T
      k
      .remove(i) ▷ Directly remove
      else
      T
      k
      i = T
      k
      .least cost insert(i)
      ▷ Multiple places to insert. When connecting to a node in the tour use the
      shortest path to that node. Take the one with minimum c(T)
      end if
      end for
      i
      k = argmini c(T
      k
      i
      )
      if c(T
      k
      ) ≤ c(T
      k
      i
      k ) then
      Break
      else
      T
      k+1 = T
      k
      i
      k
      end if
      end for
      complete (there is an edge between any two nodes) and triangle inequality holds
      2
      . It requires
      to ffnd a tour with minimum total length that is simple (does not repeat nodes). For any
      instance Ge = (Ve, Ee) of M-TSP, we can construct an instance of PHP with V = Ve, E = Ee,
      where V corresponds to set of the home locations of the party owner and his friends. In this
      special case of PHP all nodes correspond to home locations and are fully connected with
      edges.
      In the optimal solution of such a PHP instance, each node is visited exactly once: First,
      we have to visit each node and the solution decides in which order we visit the nodes. Second,
      no node would be visited more than once since i) the edge weights are nonnegative, ii) the
      graph is complete, and iii) triangle inequality holds (hence, we can improve the cost if there
      are loops by taking shortcuts, check it!). Therefore, the solution of PHP is the solution of
      M-TSP. The transformation is clearly in polynomial time. This completes the reduction.
      Since M-TSP is known to be NP-hard, so is PHP.
      On the other hand, we can reduce PHP to M-TSP. That is, for any instance of PHP,
      we can transform it to an instance of M-TSP. After getting the solution of TSP from some
      oracle (which we don’t care for now) we can transform it back to the solution of PHP. Then,
      if we know how to solve TSP, we know how to solve PHP. The transformation can be done
      in polynomial time by following procedure.
      1. Given an instance (G = (V, E), H) of PHP, construct a complete graph G′ = (V

      , E

      )
      where V
      ′ = H ∪ {0}. For every edge (u, v) ∈ E

      , the weight of the edge is the distance
      of the shortest path from u to v in G.
      2
      In class we introduced Euclidean TSP where nodes correspond to locations on the map and edge weights
      correspond to Euclidean distances, hence, triangle inequality holds. Here we consider a more general graph
      where distances are not necessary Euclidean but triangle inequality still holds
      52. Solve M-TSP on G′
      to get the tour C

      . Note that G′
      is complete and triangle inequality
      holds. We introduced a dynamic programming solution to such TSP in lectures.
      3. Given C

      , construct the optimal tour C for PHP by substituting the edges in C
      ′ with
      the corresponding shortest paths in G.
      Question 4.1 In mtsp dp.py file, implement the function mtsp dp(G) to solve M-TSP using
      dynamic programming algorithm introduced in the lectures, where input is a complete graph
      G with triangle inequality.
      If you don’t have time to write the DP algorithm, you can call an auxiliary solver to solve
      TSP but you will get 60% deduction for this problem.
      Question 4.2 In pthp from tsp.py file, implement the function pthp solver from tsp(G, H)
      to solve PHP, where inputs are graph G and home list H and output is a list of nodes
      traversed by the car. You must use the reduction above and solve TSP using Question 4.1.
      5 Theoretical Questions
      Overview In this part, we look into theoretical aspects of the problem including NPhardness
      of PTP and approximation ratio of PHP.
      Clearly, solving PHP on the same graph gives a feasible solution to PTP. The question is,
      is it optimal? If not, then how bad can it be?
      Question 5.1 Show that PTP is NP-hard.
      Hint: Are there values for α for which PHP = PTP (the solution of PHP is obtained by
      solving PTP)? Since PHP is NP-hard, then PTP is also NP-hard.
      In general, we would expect PHP to give a sub-optimal solution for PTP since we don’t take
      the choice of pick-up locations into the optimization. That is to say, in any instance (G, H, α)
      of the PTP, let Cphp and Cptpopt be the total cost of the solution obtained from solving PHP
      (G, H) and the optimal solution of PTP, respectively. Define β =
      Cphp
      Cptpopt
      . Clearly, β ≥ 1. We
      are interested to know how bad β can become if an adversary is free to choose the parameters
      of the problem.
      Question 5.2 Show that the cost of PHP is at most twice of that of the optimal solution
      (which we don’t know). That is, β =
      Cphp
      Cptpopt
      ≤ 2. Also show that this bound is tight, i.e.,
      there is an instance where β = 2 (at least asymptotically). You can assume α = 1 for
      simplicity.
      66 Input & Output Format
      6.1 Graph Representation
      We would use Python package NetworkX to store graphs throughout the project. NetworkX
      is a very powerful and useful tool to networks studies. It’s convenient to modify your graphs
      such as adding attributes with NetworkX. Install the package here. And check this tutorial
      to get a quick start. You can find more examples in the handout codes of week 7 and week
      8.
       We will handle input operations and graph constructions for you. We define the API of
      the functions you should implement which you must obey. The I/O definitions can be found
      in corresponding question descriptions, section 5.3, and python file comments.
      But for your information, and in case you wish to use other representations, which is
      totally okay if you modify the template correspondingly and submit all your codes so we can
      reproduce your work, we present formats of input files below.
      6.2 Input File Format
      The first line of the input file would be a float number α representing the relative cost of
      driving vs walking.
      The second line of the input file contains two integers |V | and |H| separated by spaces,
      where |V | is the number of nodes in the graph and |H| is the number of homes (friends).
      The nodes will be indexed from 0 to |V | − 1.
      The third line contains the list of home nodes, separated by spaces.
      The following lines have similar structures which specify the adjacency list of the graph.
      The first label in a line is the source node index followed by the node degree d. The next
      d lines are target node indices and integer edge weight. That pattern repeats for all nodes in
      the graph.
      Sample Input: consider the example in Figure 1, the corresponding input file would be
      0.6666667
      4 3
      1 2 3
      0 1
      1 1
      1 3
      0 1
      2 1
      3 1
      2 1
      1 1
      3 1
      1 1
      76.3 Function APIs
      6.3.1 PTP Solver
      You are encouraged to come up with different algorithms to solve PTP and compare them.
      We’d like you to gradually improve your algorithm. PTHP solver would be a good start
      point since you can take pick-up locations into consideration to achieve lower cost as well as
      use heuristics to gain solutions faster. At last, we would only evaluate your solver in function
      ptp solver as in Question 3. So put your best algorithm there. PTP solvers would have
      following API.
      Input: NetworkX graph G, a list H of home nodes in indices, a float number α ∈ (0, 1]
      representing the unhappiness of people one the car per unit of road travelled.
      Output: τ , L where τ is the list of indices of the nodes traversed by your car and L is an
      iterator of (pick-up-locations, people-picked-up) pairs. People would be represented by the
      index of her home node. Again, your output should legitimate. The indices must be in the
      graph, i.e., integers from 0 to |V | − 1. The tour τ must begin and end at node 0. It can
      only go through edges that exist in the graph. The pick-up locations must be in τ . Everyone
      should get picked up.
      A sample out of the example in Figure 1 would be
      \ tau = [0 , 1 , 0]
      L = {1: (1 , 2 , 3) }
      return \ tau , L
      6.3.2 M-TSP Solver
      You will implement one solver to solve TSP on a metric graph using dynamic programming
      algorithm in Question 4.1.
      Input: NetworkX graph G.
      Output: a list of indices of the nodes traversed by the car. The tour must visit each node
      exactly once. It must begin and end at node 0.
      6.3.3 PHP Solver
      Essentially, you only need to implement one PHP solver, namely pthp solver from tsp in
      Question 4.2.
      Input: NetworkX graph G and a list H of home nodes in indices.
      Output: A list of indices of the nodes traversed by your car. The output must be
      legitimate. The indices must be in the graph, i.e., integers from 0 to |V | − 1. The tour
      must begin and end at node 0. It can only go through edges that exist in the graph. It must
      visit every node in H.
      6.4 PTP Output File Format
      We would store your output for PTP in a file so you can analyze it. The output file corresponding
      to an input file would have the same name, except with the extension replaced by
      “.out”. For example, the output file for “1.in” would be “1.out”.
      8The first line of the output file would be a list of nodes represent the tour taken by the
      car, separated by spaces. The nodes would be in the order in which they are visited by the
      car. The list would start and end at node 0.
      The second line would be an integer d represents the number of pick-up locations.
      For the following d lines, each line starts with a node index followed by a list of picked up
      friends, separated by spaces. Your friends are represented by the index of their home nodes.
      Sample Output File consider the example in Figure 1, the corresponding output file
      would be
      0 1 0
      1
      1 1 2 3
      7 Submission & Evaluation
      Overview You are encouraged to work in group as working collaboratively is a skill in and
      of itself. It will also reduce your workload for this demanding project. Only one member of
      the group needs to submit your solutions to bb. The deadline is 23:59, May 19th, 2024.
      Evaluation The total point of the project is 100, which is worth 10% of your final grade.
      You will earn these points as follows.
      • 10pts for Question 2.
      • 20pts for Question 3.
      • 10pts for Question 4.1.
      • 10pts for Question 4.2.
      • 10pts for Question 5.1.
      • 10pts for Question 5.2
      • 20pts for proposing a good PTP solver. We will test your PTP solver on all inputs
      generated by the students. We would calculate the average cost of your solver. You
      would be scored based on the average cost compared to that of other teams. The score
      will range from 0 to 20 based on the following:
      – 20pts: your solution performs better than 80% of student submissions.
      – 16pts: your solution performs better than 60-80% of student submissions.
      – 12pts: your solution performs better than 40-60% of student submissions.
      – 8pts: your solution performs better than 20-49% of student submissions.
      – 4pts: your solution performs better than 0-20% of student submissions.
      • 10pts for the report.
      9Submission Details Each group should submit four things: inputs, outputs, codes, report.
      We will provide you a series of input files. You should run your algorithms in each of them.
      You need to submit your output for every input provided with correct file names. Put
      the outputs in a separate folder. You also need to submit your codes for solving PTHP
      and PTP. In part of those, you need to write a report containing solutions to the theoretical
      questions 5.1, 5.2 and approaches you take to solve PTP. For each of the approaches you
      take, write no more than one page to describe how it works and how it performs. Your report
      should be in pdf form.
      Zip everything into one file and name it with your group ID. A typical submission
      would have a minimal structure as follows.
      group 0
      inputs
      20 03.in
      20 10.in
      40 03.in
      40 10.in
      outputs
      1.out
      2.out
      ...
      ptp solver.py
      mtsp dp.py
      pthp solver from tsp.py
      report.pdf
      8 Specifications of the Usage of Libraries
      You can use any existing packages and solvers. But you have to make sure we can reproduce
      your work.
      9 Academic Honesty
      In completing this project, students are expected to adhere to principles of academic honesty.
      All work submitted must be original and created solely by the individual student or group,
      unless otherwise specified. Proper citation of sources is required to give credit to the ideas
      and work of others. Any form of plagiarism, cheating, or dishonesty will result in disciplinary
      action, which may include a failing grade for the project or course and report to the school.
      10References
      請加QQ:99515681  郵箱:99515681@qq.com   WX:codinghelp















       

      掃一掃在手機打開當前頁
    1. 上一篇:代做CSOCMP5328、代寫Python編程設計
    2. 下一篇:菲律賓簽證多次入境 簽證申請流程
    3. 無相關信息
      合肥生活資訊

      合肥圖文信息
      挖掘機濾芯提升發動機性能
      挖掘機濾芯提升發動機性能
      戴納斯帝壁掛爐全國售后服務電話24小時官網400(全國服務熱線)
      戴納斯帝壁掛爐全國售后服務電話24小時官網
      菲斯曼壁掛爐全國統一400售后維修服務電話24小時服務熱線
      菲斯曼壁掛爐全國統一400售后維修服務電話2
      美的熱水器售后服務技術咨詢電話全國24小時客服熱線
      美的熱水器售后服務技術咨詢電話全國24小時
      海信羅馬假日洗衣機亮相AWE  復古美學與現代科技完美結合
      海信羅馬假日洗衣機亮相AWE 復古美學與現代
      合肥機場巴士4號線
      合肥機場巴士4號線
      合肥機場巴士3號線
      合肥機場巴士3號線
      合肥機場巴士2號線
      合肥機場巴士2號線
    4. 幣安app官網下載 短信驗證碼 丁香花影院

      關于我們 | 打賞支持 | 廣告服務 | 聯系我們 | 網站地圖 | 免責聲明 | 幫助中心 | 友情鏈接 |

      Copyright © 2024 hfw.cc Inc. All Rights Reserved. 合肥網 版權所有
      ICP備06013414號-3 公安備 42010502001045

      成人久久18免费网站入口