Đánh giá, nhận xét, review các công ty tuyển dụng
Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 12 kết quả

Đề tài: thuật toán TÌM ĐƯỜNG ĐI NGẮN NHẤT

  1. #1
    Ngày gia nhập
    02 2009
    Bài viết
    1

    Mặc định thuật toán TÌM ĐƯỜNG ĐI NGẮN NHẤT

    tôi là thành viên mới của diễn đàn nên tôi chưa bquen biết được người bạn thân nào cả nên bài viết này tôi xin được mọi người giúp đỡ để tôi có cơ hội hiểu hơn về các bạn
    tôi có lụm được một bí kíp tìm đường đi ngắn nhất nhưng tôi chưa biết phải sửa làm sao để được như ý mình
    tôi mong được mọi người giúp đỡ tôi
    tôi muốn xóa các mục như trên hình vẽ(complete,step,input files) và các nút như hình vẽ va đổi thành thuật toán Distra
    tôi làm hoài mà không được nên mong được mọi người giúp đỡ. tôi xin đập đầu cảm ơn .hiih
    Attached Thumbnails Attached Thumbnails untitled.JPG  
    Attached Files Attached Files

  2. #2
    Ngày gia nhập
    01 2009
    Nơi ở
    Hà Nội
    Bài viết
    205

    Chương trình viết bằng ngôn ngữ gì vậy bạn?

  3. #3
    Ngày gia nhập
    04 2008
    Bài viết
    336

    ặc cái này của bác zkday mà ...
    code ra gió bão

  4. #4
    Ngày gia nhập
    01 2009
    Nơi ở
    Hà Nội
    Bài viết
    205

    Trích dẫn Nguyên bản được gửi bởi 6220119 Xem bài viết
    ặc cái này của bác zkday mà ...
    Nói gì kỳ vậy. Chẳng lẽ cái này chỉ có 1 người mới được viết hay sao? Mà bác nói như vậy có nghĩa là bác bảo bạn kia "ăn cắp" hay là copy/paste của bác zkday hay sao?

  5. #5
    Ngày gia nhập
    04 2008
    Bài viết
    336

    Thấy ko hợp nên có ý kiến thế thôi.
    code ra gió bão

  6. #6
    Ngày gia nhập
    01 2009
    Nơi ở
    Hà Nội
    Bài viết
    205

    Mặc định thuật toán TÌM ĐƯỜNG ĐI NGẮN NHẤT

    Vậy cũng nên nói có tế nhị tý chứ.

  7. #7
    Ngày gia nhập
    04 2007
    Bài viết
    134

    Thì quả thật bạn đó copy đấy chứ, có gì đâu

  8. #8
    Ngày gia nhập
    03 2010
    Bài viết
    1

    co ai biet lam bai tim duong di ngan nhat trong do thi bang ngon ngu C ko z????

  9. #9
    Ngày gia nhập
    10 2010
    Bài viết
    7

    Có ai biết tìm thuật toán tìm đường đi ngắn nhất bằng ngôn ngữ C# không?Giúp em với

  10. #10
    Ngày gia nhập
    03 2008
    Nơi ở
    Ha Noi, Viet Nam
    Bài viết
    10

    Trích dẫn Nguyên bản được gửi bởi thaotkse Xem bài viết
    Có ai biết tìm thuật toán tìm đường đi ngắn nhất bằng ngôn ngữ C# không?Giúp em với
    HTML Code:
    //Function find way shortest with Dijkstra menthord... public bool Find_Way_Shortest() { index = 0; //Vi tri dau tien cua duong di ngan nhat sau khi phuc hoi lai. if (start == -1 || finish == -1) //Nếu start và finish là -1 do hàm thiết lâị 1 thì đây là cấp phát đỉnh tự động... { start = myRan.Next(DataSource.totalrow); do { finish = myRan.Next(DataSource.totalrow); } while (finish == start); //Cấp lại nếu finish = start (không được trùng đỉnh...)... } //Ngược lại nếu hàm thiết lập 2 được gọi thì start và finish sẽ được truyền vào... #region Kiem tra co ton tai duong di tu start toi finish hay khong... myDs.check_Type_Graphs(); if (DataSource.sttype == "Single") //Kiem tra dieu kien ton tai duong di tu start toi finish {//Neu la do do thi vo huong ma cac dinh start va finish co bac = 0 thi khong co duong di myDs.leve_Urban1(); if (DataSource.leve[start] == 0 || DataSource.leve[finish] == 0) return false; } else {//Neu la do do thi co huong ma cac dinh start co bac ra = 0 va finish co bac vao = 0 thi khong co duong di myDs.leve_Urban2(); if (DataSource.leveout[start] == 0 || DataSource.levein[finish] == 0) return false; } //Da chac chan co duong di tu start toi finish thif thuc hien cac buoc tiep theo... #endregion install_Data(); //Khoi tao va cap phat cac bien can su dung trong ham... for (v = 0; v < DataSource.totalrow; v++) { if (arMatrixTemp[start, v] != 0) //Neu co canh noi thi do dai duong di chinh bang trong so cua canh { //Đặt giá trị của độ dài đường đi từ v đến start chính bằng trọn số cạnh arRoadPrice[v] = arMatrixTemp[start, v]; arBefore[v] = start; //Khoi tao duong di ban dau la bang 0... } else //Neu nguoc lai khong tin tai duong di tu start toi v.... { arRoadPrice[v] = 1000000; //Dặt độ dài đường đi từ đinh s đến i là 1.000.000 thay cho vô cùng... arBefore[v] = -1; //Khoi tao duong di ban dau la bang 0... } final[v] = false; //Dat trang thai dinh nay la chua xet... } arBefore[start] = -1; //Duong di tu start -> start = 0.... arRoadPrice[start] = 0; //Do dai duong di tu start den start =0... final[start] = true; //Nut bat dau coi nhu da duoc xet va trang thai bang true... while (!final[finish]) //Khi finish chưa được duyệt thì tiếp tục tìm đường đi ngắn nhất nếu có... { min = 1000000; //Đặt min = 1.000.000 thay cho vô cùng for (v = 0; v < DataSource.totalrow; v++) //Tim trong tat ca cac dinh trong do thi { if (!final[v] && min > arRoadPrice[v])//Neu dinh nao con nhan la false ma gia tri no nho hom min { u = v; //dau bien u bang vi tri vua tim thay..... min = arRoadPrice[v]; //Gan min bang do dai duong ti tu start toi u.... } }//Nếu đồ thị có hướng sẽ có thể không tìm được đường tới finish nên hàm if sau sẽ kiểm tra việc đó... if (!final[finish] && min == 1000000) //Neu chua tim thay finish ma khong tim duoc mot gia tri nao < min(vô cùng) return false; //Thì báo là không tìm thấy đường đi nào nữa, nên từ start và finish sẽ ko có đường đi ngắn nhất final[u] = true; //Báo là đã duyệt đỉnh u này... if (!final[finish]) //Nếu đỉnh finish chưa dược duyệt... { for (v = 0; v < DataSource.totalrow; v++) { if (!final[v] && arMatrixTemp[u, v] != 0) //Neu chưa phải là đỉnh đã xét và đang có cạnh nối... { if (((arRoadPrice[u] + arMatrixTemp[u, v]) < arRoadPrice[v])) {//Giá trị đường từ start đến vị trí v nếu bé hơn giá trị tại vị trí min + độ dài đường đi từu min đến v arRoadPrice[v] = arRoadPrice[u] + arMatrixTemp[u, v]; //Gán lại giá trị đường đi từ start tới v... arBefore[v] = u; //lưu vết đỉnh nằm trước đỉnh v là đỉnh u min tìm được phía trên... } } } } } arWayShortest[index] = finish; //Vi tri dau tien cua duong di la dinh ket thuc (vet cuac duong di la vet nguoc)... t = finish; //Xac nhan nut ket thuc da vao trong danh sach duong di while (t != start) //Khi chưa tìm thấy start... { index++; //Đếm số phần tử của đường đi... t = arBefore[t]; //Lấy vị tri nút kề trước nút thứ t.... arWayShortest[index] = t; //Đẩy vi trí dỉnh đó vào danh sách đường di... } arWayShortest[++index] = start; //Đẩy nốt vị trí đỉnh bắt đầu start vào vị tris index + 1... return true; //Trả về thành công đã tìm được đường đi ngẵn nhất... }
    Phần còn lại e tự tìm hiểu nốt nha.

Các đề tài tương tự

  1. Mã nguồn C++ C++ :: SourceCode thuật toán A* (A sao) tìm đường đi ngắn nhất.
    Gửi bởi AnhPham trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 9
    Bài viết cuối: 09-12-2012, 04:55 PM
  2. Bài toán tìm đường đi ngắn nhất với thuật toán Dijsktra
    Gửi bởi biencuongtq1 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 17-03-2011, 02:51 AM
  3. Thuật toán bellman cho đồ thị có trọng số âm và đường đi ngắn nhất?
    Gửi bởi nkluan_gl trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 0
    Bài viết cuối: 05-12-2010, 08:26 PM
  4. Thảo luận về thuật toán tìm đường đi ngắn nhất (có chi phí ít nhất) trên ma trận
    Gửi bởi hunterphu trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 10
    Bài viết cuối: 10-08-2010, 12:05 AM
  5. Cho em hỏi về thuật toán đường đi ngắn nhất của quan mã.
    Gửi bởi bills_khoa trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 11
    Bài viết cuối: 26-02-2008, 10:27 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn