国产人妻人伦精品_欧美一区二区三区图_亚洲欧洲久久_日韩美女av在线免费观看

合肥生活安徽新聞合肥交通合肥房產生活服務合肥教育合肥招聘合肥旅游文化藝術合肥美食合肥地圖合肥社保合肥醫院企業服務合肥法律

COMP528代寫、代做c/c++編程設計

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


In this assignment, you are asked to implement 2 algorithms for the Travelling Salesman

Problem. This document explains the operations in detail, so you do not need previous

knowledge. You are encouraged to start this as soon as possible. Historically, as the deadline nears, the queue times on Barkla grow as more submissions are tested. You are also

encouraged to use your spare time in the labs to receive help, and clarify any queries you

have regarding the assignment.

1 The Travelling Salesman Problem (TSP)

The travelling salesman problem is a problem that seeks to answer the following question:

‘Given a list of vertices and the distances between each pair of vertices, what is the shortest

possible route that visits each vertex exactly once and returns to the origin vertex?’.

(a) A fully connected graph (b) The shortest route around all vertices

Figure 1: An example of the travelling salesman problem

The travelling salesman problem is an NP-hard problem, that meaning an exact solution

cannot be solved in polynomial time. However, there are polynomial solutions that can

be used which give an approximation of the shortest route between all vertices. In this

assignment you are asked to implement 2 of these.

1.1 Terminology

We will call each point on the graph the vertex. There are 6 vertices in Figure 1.

We will call each connection between vertices the edge. There are 15 edges in Figure 1.z

We will call two vertices connected if they have an edge between them.

The sequence of vertices that are visited is called the tour. The tour for Figure 1(b) is

(1, 3, 5, 6, 4, 2, 1). Note the tour always starts and ends at the origin vertex.

A partial tour is a tour that has not yet visited all the vertices.

202**024 1

COMP528

2 The solutions

2.1 Preparation of Solution

You are given a number of coordinate files with this format:

x, y

4.81263062**6921, 8.3**19930253777

2.**156816804616, 0.39593575612759

1.13649642931556, 2.2**59458630845

4.4**7**99682118, 2.9749120444**06

9.8****616851393, 9.107****070**

Figure 2: Format of a coord file

Each line is a coordinate for a vertex, with the x and y coordinate being separated by a

comma. You will need to convert this into a distance matrix.

0.000000 8.177698 7.099481 5.381919 5.0870**

8.177698 0.000000 2.577029 3.029315 11.138848

7.099481 2.577029 0.000000 3.426826 11.068045

5.381919 3.029315 3.426826 0.000000 8.139637

5.0870** 11.138848 11.068045 8.139637 0.000000

Figure 3: A distance matrix for Figure 2

To convert the coordinates to a distance matrix, you will need make use of the euclidean

distance formula.

d =

q

(xi − xj )

2 + (yi − yj )

2

(1)

Figure 4: The euclidean distance formula

Where: d is the distance between 2 vertices vi and vj

, xi and yi are the coordinates of the

vertex vi

, and xj and yj are the coordinates of the vertex vj

.

202**024 2

COMP528

2.2 Cheapest Insertion

The cheapest insertion algorithm begins with two connected vertices in a partial tour. Each

step, it looks for a vertex that hasn’t been visited, and inserts it between two connected

vertices in the tour, such that the cost of inserting it between the two connected vertices is

minimal.

These steps can be followed to implement the cheapest insertion algorithm. Assume that the

indices i, j, k etc. are vertex labels, unless stated otherwise. In a tiebreak situation, always

pick the lowest index or indices.

1. Start off with a vertex vi

.

Figure 5: Step 1 of Cheapest Insertion

2. Find a vertex vj such that the dist(vi

, vj ) is minimal, and create a partial tour (vi

, vj

, vi)

Figure 6: Step 2 of Cheapest Insertion

3. Find two connected vertices (vn, vn+1), where n is a position in the partial tour, and

vk that has not been visited. Insert vk between vn and vn+1 such that dist(vn, vk) +

dist(vn+1, vk) − dist(vn, vn+1) is minimal.

202**024 3

COMP528

Figure 7: Step 3 of Cheapest Insertion

4. Repeat step 3 until all vertices have been visited, and are in the tour.

Figure 8: Step 4 of Cheapest Insertion

Figure 9: Final step and tour of Cheapest Insertion. Tour Cost = 11

2.3 Farthest Insertion

The farthest insertion algorithm begins with two connected vertices in a partial tour. Each

step, it checks for the farthest vertex not visited from any vertex within the partial tour, and

then inserts it between two connected vertices in the partial tour where the cost of inserting

it between the two connected vertices is minimal.

202**024 4

COMP528

These steps can be followed to implement the farthest insertion algorithm. Assume that the

indices i, j, k etc. are vertex labels unless stated otherwise. In a tiebreak situation, always

pick the lowest index(indices).

1. Start off with a vertex vi

.

Figure 10: Step 1 of Farthest Insertion

2. Find a vertex vj such that dist(vi

, vj ) is maximal, and create a partial tour (vi

, vj

, vi).

Figure 11: Step 2 of Farthest Insertion

3. For each vertex vn in the partial tour, where n is a position in the partial tour, find an

unvisited vertex vk such that dist(vn, vk) is maximal.

Figure 12: Step 3 of Farthest Insertion

202**024 5

COMP528

4. Insert vk between two connected vertices in the partial tour vn and vn+1, where n is

a position in the partial tour, such that dist(vn, vk) + dist(vn+1, vk) − dist(vn, vn+1) is

minimal.

Figure 13: Step 4 of Farthest Insertion

5. Repeat steps 3 and 4 until all vertices have been visited, and are in the tour.

Figure 14: Step 3(2) of Farthest Insertion

Figure 15: Step 4(2) of Farthest Insertion

202**024 6

COMP528

Figure 16: Final step and tour of Farthest Insertion. Tour Cost = 11

3 Running your programs

Your program should be able to be ran like so:

./<program name >. exe <c o o r d i n a t e f i l e n a m e > <o u t p u t fil e n am e >

Therefore, your program should accept a coordinate file, and an output file as arguments.

Note that C considers the first argument as the program executable.

Both implementations should read a coordinate file, run either cheapest insertion or farthest

insertion, and write the tour to the output file.

3.1 Provided Code

You are provided with code that can read the coordinate input from a file, and write the

final tour to a file. This is located in the file coordReader.c. You will need to include this

file when compiling your programs.

The function readNumOfCoords() takes a filename as a parameter and returns the number

of coordinates in the given file as an integer.

The function readCoords() takes the filename and the number of coordinates as parameters,

and returns the coordinates from a file and stores it in a two-dimensional array of doubles,

where coords[i ][0] is the x coordinate for the ith coordinate, and coords[i ][1] is the y

coordinate for the ith coordinate.

The function writeTourToFile() takes the tour, the tour length, and the output filename

as parameters, and writes the tour to the given file.

202**02**

University of Liverpool Continuous Assessment 1 COMP528

4 Instructions

• Implement a serial solution for the cheapest insertion and the farthest insertion. Name

these: cInsertion.c, fInsertion.c.

• Implement a parallel solution, using OpenMP, for the cheapest insertion and the farthest insertion. Name these: ompcInsertion.c, ompfInsertion.c.

• Create a Makefile and call it ”Makefile” which performs as the list states below. Without the Makefile, your code will not grade on CodeGrade (see more in section 5.1).

– make ci compiles cInsertion.c and coordReader.c into ci.exe with the GNU compiler

– make fi compiles fInsertion.c and coordReader.c into fi.exe with the GNU compiler

– make comp compiles ompcInsertion.c and coordReader.c into comp.exe with the

GNU compiler

– make fomp compiles ompfInsertion.c and coordReader.c into fomp.exe with the

GNU compiler

– make icomp compiles ompcInsertion.c and coordReader.c into icomp.exe with

the Intel compiler

– make ifomp compiles ompfInsertion.c and coordReader.c into ifomp.exe the Intel

compiler.

• Test each of your parallel solutions using 1, 2, 4, 8, 16, and ** threads, recording

the time it takes to solve each one. Record the start time after you read from the

coordinates file, and the end time before you write to the output file. Do all testing

with the large data file.

• Plot a speedup plot with the speedup on the y-axis and the number of threads on the

x-axis for each parallel solution.

• Plot a parallel efficiency plot with parallel efficiency on the y-axis and the number of

threads on the x-axis for each parallel solution.

• Write a report that, for each solution, using no more than 1 page per solution,

describes: your serial version, and your parallelisation strategy

• In your report, include: the speedup and parallel efficiency plots, how you conducted

each measurement and calculation to plot these, and sreenshots of you compiling and

running your program. These do not contribute to the page limit

202**024 8

COMP528

• Your final submission should be uploaded onto CodeGrade. The files you

upload should be:

– Makefile

– cInsertion.c

– fInsertion.c

– ompcInsertion.c

– ompfInsertion.c

– report.pdf

5 Hints

You can also parallelise the conversion of the coordinates to the distance matrix.

When declaring arrays, it’s better to use dynamic memory allocation. You can do this by...

int ∗ o n e d a r ra y = ( int ∗) malloc ( numOfElements ∗ s i z e o f ( int ) ) ;

For a 2-D array:

int ∗∗ twod a r ra y = ( int ∗∗) malloc ( numOfElements ∗ s i z e o f ( int ∗ ) ) ;

for ( int i = 0 ; i < numOfElements ; i ++){

twod a r ra y [ i ] = ( int ∗) malloc ( numOfElements ∗ s i z e o f ( int ) ) ;

}

5.1 Makefile

You are instructed to use a MakeFile to compile the code in any way you like. An example

of how to use a MakeFile can be used here:

{make command } : { t a r g e t f i l e s }

{compile command}

c i : c I n s e r t i o n . c coordReader . c

gcc c I n s e r t i o n . c coordReader . c −o c i . exe −lm

Now, in the Linux environment, in the same directory as your Makefile, if you type ‘make ci‘,

the compile command is automatically executed. It is worth noting, the compile command

must be indented. The target files are the files that must be present for the make command

to execute.

202**024 9

COMP528

6 Marking scheme

1 Code that compiles without errors or warnings 15%

2 Same numerical results for test cases 20%

3 Speedup plot 10%

4 Parallel Efficiency Plot 10%

5 Parallel efficiency up to ** threads 15%

6 Speed of program 10%

11 Clean code and comments 10%

12 Report 10%

Table 1: Marking scheme

7 Deadline

202**024 10

請加QQ:99515681 或郵箱:99515681@qq.com   WX:codehelp

 

掃一掃在手機打開當前頁
  • 上一篇:MA2552代做、代寫Matlab編程語言
  • 下一篇:代寫選股公式 代做通達信量中尋莊副圖指標
  • 無相關信息
    合肥生活資訊

    合肥圖文信息
    流體仿真外包多少錢_專業CFD分析代做_友商科技CAE仿真
    流體仿真外包多少錢_專業CFD分析代做_友商科
    CAE仿真分析代做公司 CFD流體仿真服務 管路流場仿真外包
    CAE仿真分析代做公司 CFD流體仿真服務 管路
    流體CFD仿真分析_代做咨詢服務_Fluent 仿真技術服務
    流體CFD仿真分析_代做咨詢服務_Fluent 仿真
    結構仿真分析服務_CAE代做咨詢外包_剛強度疲勞振動
    結構仿真分析服務_CAE代做咨詢外包_剛強度疲
    流體cfd仿真分析服務 7類仿真分析代做服務40個行業
    流體cfd仿真分析服務 7類仿真分析代做服務4
    超全面的拼多多電商運營技巧,多多開團助手,多多出評軟件徽y1698861
    超全面的拼多多電商運營技巧,多多開團助手
    CAE有限元仿真分析團隊,2026仿真代做咨詢服務平臺
    CAE有限元仿真分析團隊,2026仿真代做咨詢服
    釘釘簽到打卡位置修改神器,2026怎么修改定位在范圍內
    釘釘簽到打卡位置修改神器,2026怎么修改定
  • 短信驗證碼 寵物飼養 十大衛浴品牌排行 suno 豆包網頁版入口 目錄網 排行網

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

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

    国产人妻人伦精品_欧美一区二区三区图_亚洲欧洲久久_日韩美女av在线免费观看
    在线视频不卡国产| 免费毛片网站在线观看| www.日韩免费| 久久天天躁狠狠躁夜夜av| xxxx性欧美| 国产精品视频在线免费观看| 久久久久久久久久av| 国产激情一区二区三区在线观看| 99热国产免费| 91精品国产综合久久久久久丝袜| 91精品视频免费观看| 成人精品小视频| 99国产盗摄| 久久精品一二三区| 久久精品综合一区| 色777狠狠综合秋免鲁丝| 国产精品无码av无码| 国产精品极品在线| 欧美日韩国产成人| 亚洲国产婷婷香蕉久久久久久99| 亚洲国产欧美不卡在线观看| 午夜精品一区二区三区四区| 日韩国产欧美一区| 精品少妇在线视频| 国产精品伊人日日| 久久久福利视频| 国产精品网站免费| 欧美日韩成人免费| 性欧美长视频免费观看不卡| 日本一区视频在线| 欧美高清性xxxxhd| 国产美女永久无遮挡| 91精品国产综合久久男男| 按摩亚洲人久久| 美女久久久久久久久久久| 亚洲 中文字幕 日韩 无码| 热99这里只有精品| 国产免费观看高清视频| 久久精品日产第一区二区三区乱码| 国产成人精品优优av| 欧美日韩国产第一页| 日本福利视频导航| 国产伦精品一区二区三区照片| 国产高清一区二区三区| 久久的精品视频| 亚洲精品电影在线一区| 狠狠色综合色区| 国产精品91免费在线| 国产精品久久久久久久久婷婷| 亚洲最大av网| 欧美日韩高清在线一区| 成年人网站国产| 国产精品视频一区二区三区四| 欧美精品九九久久| 欧美亚洲精品日韩| 68精品国产免费久久久久久婷婷| 国产精品久久久久久av福利| 性色av一区二区三区在线观看| 国产又大又长又粗又黄| 日韩中文字幕不卡视频| 九九热精品在线| 激情深爱综合网| 日韩在线视频观看| 天天爱天天做天天操| 国产精品永久入口久久久| 俺去了亚洲欧美日韩| 午夜肉伦伦影院| 国产精自产拍久久久久久蜜| 国产精品久久久久久久久久| 欧美在线激情网| 久久久婷婷一区二区三区不卡| 欧美日韩爱爱视频| 精品无码久久久久久久动漫 | 日韩国产精品一区二区| 99亚洲国产精品| 九九精品在线播放| 国产一区二区三区奇米久涩| 国产精品爽爽ⅴa在线观看| 日韩欧美一区二区在线观看| 97欧洲一区二区精品免费| 久久国产色av| 国产片侵犯亲女视频播放| 国产精品男人的天堂| 欧美中文在线观看| 久久久精品视频成人| 欧洲成人在线观看| www欧美日韩| 青青草国产免费| 国产高清在线一区| 日韩不卡视频一区二区| 久久久爽爽爽美女图片| 亚洲精品久久区二区三区蜜桃臀 | 日韩中文字幕在线精品| 日韩精品欧美在线| 色噜噜亚洲精品中文字幕| 欧在线一二三四区| 日韩在线中文字| 日韩国产在线一区| www.国产一区| 精品日本一区二区| 精品久久久久久无码国产| 国产一区二区在线视频播放| 国产精品果冻传媒潘| 国产综合视频在线观看| 欧美日韩第一视频| 99se婷婷在线视频观看| 欧美一区二区三区……| 久久久久久伊人| 欧美极品视频一区二区三区| 国产精品久久久久久久app| 国精产品一区一区三区视频 | 国产精品视频500部| 黄色www网站| 欧美日本高清一区| 91精品免费| 日韩av高清| 久久视频在线看| 国产伦精品一区二区三区视频孕妇| 在线观看免费91| 九色91在线视频| 精品视频在线观看一区二区 | 国产美女主播一区| 亚洲啪啪av| 国产成人拍精品视频午夜网站| 精品无码久久久久久久动漫| 亚洲一区三区电影在线观看| 国产成人一区二区三区小说| 欧美日韩精品综合| 欧美激情精品在线| 久久国产主播精品| 国产中文一区二区| 少妇人妻在线视频| 国产精品久久久久91| 国产精品av在线| 国内揄拍国内精品少妇国语| 亚洲巨乳在线观看| 国产成人免费电影| av免费观看网| 免费看又黄又无码的网站| 色综合影院在线观看| 久久综合免费视频| 久久99精品久久久久久青青日本| 免费久久久久久| 日本黄网站色大片免费观看| 欧美日韩成人精品| 久久精品一偷一偷国产| 久久久影院一区二区三区| 麻豆一区二区三区在线观看 | 欧美成人午夜剧场免费观看| 久久综合九色综合久99| 国产中文字幕日韩| 日韩欧美视频一区二区三区四区| 最新欧美日韩亚洲| 爽爽爽爽爽爽爽成人免费观看| 国产女精品视频网站免费| 日本成人精品在线| 亚洲乱码一区二区三区三上悠亚| 国产精品视频不卡| 国产成人a亚洲精品| 97久久精品人人澡人人爽缅北| 国产亚洲精品美女久久久m| 日韩精品一区在线视频| 亚洲aa中文字幕| 中文字幕日韩精品一区二区| 国产精品久久久久久久av大片| 日韩在线视频网| 91成人免费观看网站| 国产欧美va欧美va香蕉在线| 日韩av电影在线网| 亚洲精品乱码久久久久久自慰| 精品国产乱码久久久久久108| 国产精品视频免费一区| 色偷偷88888欧美精品久久久 | 久久久国产视频| 久久福利一区二区| 久久久久久综合网天天| 久久久久一区二区| 久久精品国产第一区二区三区最新章节| 国产欧美日韩高清| 国产日本欧美一区二区三区| 国产在线98福利播放视频| 蜜桃久久影院| 麻豆91蜜桃| 国产三区在线视频| 国产欧美在线观看| 国产精品一区二区三区免费观看 | 国产精品国产福利国产秒拍| www日韩中文字幕在线看| 久久青草精品视频免费观看| 久久久人成影片一区二区三区观看| 91禁国产网站| 久久久天堂国产精品女人| 久久这里只有精品8| 国产va免费精品高清在线观看| 日韩在线免费视频观看| 色黄久久久久久| 国产精品爽爽爽爽爽爽在线观看| 国产精品福利在线| 中文字幕日韩精品一区二区| 亚洲最大成人在线|